mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-14 07:55:33 +01:00
refactor: Change to using rand.Read instead of whatever the hell else was before
This commit is contained in:
2
main.go
2
main.go
@@ -114,7 +114,7 @@ func main() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "passwordreset",
|
Name: "password",
|
||||||
Description: "Reset your account password on Erupe",
|
Description: "Reset your account password on Erupe",
|
||||||
Options: []*discordgo.ApplicationCommandOption{
|
Options: []*discordgo.ApplicationCommandOption{
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
package channelserver
|
package channelserver
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto"
|
"crypto/rand"
|
||||||
"encoding/binary"
|
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"erupe-ce/common/byteframe"
|
"erupe-ce/common/byteframe"
|
||||||
"erupe-ce/common/mhfcourse"
|
"erupe-ce/common/mhfcourse"
|
||||||
@@ -322,14 +321,10 @@ func parseChatCommand(s *Session, command string) {
|
|||||||
}
|
}
|
||||||
case commands["Discord"].Prefix:
|
case commands["Discord"].Prefix:
|
||||||
if commands["Discord"].Enabled {
|
if commands["Discord"].Enabled {
|
||||||
tokenHash := crypto.MD5.New()
|
discordToken := make([]byte, 8)
|
||||||
tokenSalt := fmt.Sprint(s.charID) + fmt.Sprint(s.server.ID)
|
_, err := rand.Read(discordToken)
|
||||||
tokenData := make([]byte, 4)
|
s.logger.Info(fmt.Sprint(discordToken))
|
||||||
binary.LittleEndian.PutUint32(tokenData, uint32(time.Now().Second()))
|
_, err = s.server.db.Exec("UPDATE users u SET discord_token = $1 WHERE u.id=(SELECT c.user_id FROM characters c WHERE c.id=$2)", fmt.Sprint(discordToken), s.charID)
|
||||||
tokenHash.Write([]byte(fmt.Sprintf("%s%s", tokenSalt, tokenData)))
|
|
||||||
discordToken := fmt.Sprint(tokenHash)[4:12]
|
|
||||||
s.logger.Info(discordToken)
|
|
||||||
_, err := s.server.db.Exec("UPDATE users u SET discord_token = $1 WHERE u.id=(SELECT c.user_id FROM characters c WHERE c.id=$2)", discordToken, s.charID)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
sendServerChatMessage(s, fmt.Sprint("An error occurred while processing this command"))
|
sendServerChatMessage(s, fmt.Sprint("An error occurred while processing this command"))
|
||||||
s.logger.Error(fmt.Sprint(err))
|
s.logger.Error(fmt.Sprint(err))
|
||||||
|
|||||||
@@ -86,10 +86,11 @@ func (s *Server) onInteraction(ds *discordgo.Session, i *discordgo.InteractionCr
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case "passwordreset":
|
case "password":
|
||||||
password, _ := bcrypt.GenerateFromPassword([]byte(i.ApplicationCommandData().Options[0].StringValue()), 10)
|
password, _ := bcrypt.GenerateFromPassword([]byte(i.ApplicationCommandData().Options[0].StringValue()), 10)
|
||||||
_, err := s.db.Exec("UPDATE users SET password = $1 WHERE discord_id = $2", password, i.Member.User.ID)
|
_, err := s.db.Exec("UPDATE users SET password = $1 WHERE discord_id = $2", password, i.Member.User.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
s.logger.Error(fmt.Sprint(err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
err = ds.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
err = ds.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
||||||
|
|||||||
Reference in New Issue
Block a user