diff --git a/config.json b/config.json index 08bf46fe1..20da75a87 100644 --- a/config.json +++ b/config.json @@ -133,6 +133,7 @@ }, { "Name": "Discord", "Enabled": true, + "Description": "Generate a token to link your Discord account", "Prefix": "discord" } ], diff --git a/server/channelserver/handlers_cast_binary.go b/server/channelserver/handlers_cast_binary.go index 7fdfbe437..08ae74d7e 100644 --- a/server/channelserver/handlers_cast_binary.go +++ b/server/channelserver/handlers_cast_binary.go @@ -325,23 +325,15 @@ func parseChatCommand(s *Session, command string) { } case commands["Discord"].Prefix: if commands["Discord"].Enabled { - randToken := make([]byte, 4) - - _, err := rand.Read(randToken) + var _token string + err := s.server.db.QueryRow(`SELECT discord_token FROM users u WHERE u.id=(SELECT c.user_id FROM characters c WHERE c.id=$1)`, s.charID).Scan(&_token) if err != nil { - sendServerChatMessage(s, fmt.Sprint("An error occurred while processing this command")) - s.logger.Error(fmt.Sprint(err)) - return + randToken := make([]byte, 4) + rand.Read(randToken) + _token = fmt.Sprintf("%x-%x", randToken[:2], randToken[2:]) + 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)`, _token, s.charID) } - - discordToken := fmt.Sprintf("%x-%x", randToken[:2], randToken[2:]) - _, 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) - if err != nil { - sendServerChatMessage(s, fmt.Sprint("An error occurred while processing this command")) - s.logger.Error(fmt.Sprint(err)) - return - } - sendServerChatMessage(s, fmt.Sprintf(s.server.dict["commandDiscordSuccess"], discordToken)) + sendServerChatMessage(s, fmt.Sprintf(s.server.dict["commandDiscordSuccess"], _token)) } else { sendDisabledCommandMessage(s, commands["Discord"]) } diff --git a/server/channelserver/sys_language.go b/server/channelserver/sys_language.go index a5f326487..d173637f2 100644 --- a/server/channelserver/sys_language.go +++ b/server/channelserver/sys_language.go @@ -25,6 +25,8 @@ func getLangStrings(s *Server) map[string]string { strings["commandPSNSuccess"] = "PSN「%s」が連携されています" strings["commandPSNExists"] = "PSNは既存のユーザに接続されています" + strings["commandDiscordSuccess"] = "あなたのDiscordトークン:%s" + strings["commandRaviNoCommand"] = "ラヴィコマンドが指定されていません" strings["commandRaviStartSuccess"] = "大討伐を開始します" strings["commandRaviStartError"] = "大討伐は既に開催されています" @@ -78,7 +80,7 @@ func getLangStrings(s *Server) map[string]string { strings["commandPSNSuccess"] = "Connected PSN ID: %s" strings["commandPSNExists"] = "PSN ID is connected to another account!" - strings["commandDiscordSuccess"] = "Discord token has been generated: %s" + strings["commandDiscordSuccess"] = "Your Discord token: %s" strings["commandRaviNoCommand"] = "No Raviente command specified!" strings["commandRaviStartSuccess"] = "The Great Slaying will begin in a moment"