Split command in seperate for vanity and mesa
This commit is contained in:
parent
afca685481
commit
1e66f0d884
216
main.go
216
main.go
@ -145,8 +145,8 @@ var (
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "reset",
|
Name: "resetvanity",
|
||||||
Description: "Reset a user's HWID by username or UID",
|
Description: "Reset a user's HWID for Vanity by username or UID",
|
||||||
Options: []*discordgo.ApplicationCommandOption{
|
Options: []*discordgo.ApplicationCommandOption{
|
||||||
{
|
{
|
||||||
Type: discordgo.ApplicationCommandOptionString,
|
Type: discordgo.ApplicationCommandOptionString,
|
||||||
@ -154,15 +154,17 @@ var (
|
|||||||
Description: "Username or UID",
|
Description: "Username or UID",
|
||||||
Required: true,
|
Required: true,
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "resetmesa",
|
||||||
|
Description: "Reset a user's HWID for Mesa by username or UID",
|
||||||
|
Options: []*discordgo.ApplicationCommandOption{
|
||||||
{
|
{
|
||||||
Type: discordgo.ApplicationCommandOptionString,
|
Type: discordgo.ApplicationCommandOptionString,
|
||||||
Name: "cheat_type",
|
Name: "identifier",
|
||||||
Description: "Type of cheat (mesa or vanity)",
|
Description: "Username or UID",
|
||||||
Required: true,
|
Required: true,
|
||||||
Choices: []*discordgo.ApplicationCommandOptionChoice{
|
|
||||||
{Name: "mesa", Value: "mesa"},
|
|
||||||
{Name: "vanity", Value: "vanity"},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -231,100 +233,11 @@ var (
|
|||||||
log.Println("Error sending interaction response:", err)
|
log.Println("Error sending interaction response:", err)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"reset": func(client *discordgo.Session, i *discordgo.InteractionCreate) {
|
"resetvanity": func(client *discordgo.Session, i *discordgo.InteractionCreate) {
|
||||||
hasAdminPermission := false
|
resetCommandHandler(client, i, "vanity")
|
||||||
for _, roleID := range config.Discord.AdminRoles {
|
},
|
||||||
member, err := client.GuildMember(i.GuildID, i.Member.User.ID)
|
"resetmesa": func(client *discordgo.Session, i *discordgo.InteractionCreate) {
|
||||||
if err != nil {
|
resetCommandHandler(client, i, "mesa")
|
||||||
log.Println("Error fetching member info:", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, role := range member.Roles {
|
|
||||||
if role == roleID {
|
|
||||||
hasAdminPermission = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if hasAdminPermission {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if !hasAdminPermission {
|
|
||||||
err := client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
|
||||||
Type: discordgo.InteractionResponseChannelMessageWithSource,
|
|
||||||
Data: &discordgo.InteractionResponseData{
|
|
||||||
Content: "You do not have permission to run this command.",
|
|
||||||
Flags: discordgo.MessageFlagsEphemeral,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error sending interaction response:", err)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
identifier := i.ApplicationCommandData().Options[0].StringValue()
|
|
||||||
cheatType := i.ApplicationCommandData().Options[1].StringValue()
|
|
||||||
var userName string
|
|
||||||
var userUID int
|
|
||||||
|
|
||||||
if uid, err := strconv.Atoi(identifier); err == nil {
|
|
||||||
userUID = uid
|
|
||||||
} else {
|
|
||||||
userName = identifier
|
|
||||||
}
|
|
||||||
|
|
||||||
var tableName string
|
|
||||||
var baseURL string
|
|
||||||
var err error
|
|
||||||
|
|
||||||
if userName != "" {
|
|
||||||
_, baseURL = getTableNameAndBaseURL(cheatType)
|
|
||||||
userUID, err = fetchUserID(userName, baseURL)
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error fetching user ID:", err)
|
|
||||||
err = client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
|
||||||
Type: discordgo.InteractionResponseChannelMessageWithSource,
|
|
||||||
Data: &discordgo.InteractionResponseData{
|
|
||||||
Content: "Error fetching user ID.",
|
|
||||||
Flags: discordgo.MessageFlagsEphemeral,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error sending interaction response:", err)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tableName, _ = getTableNameAndBaseURL(cheatType)
|
|
||||||
success, err := resetAndVerify(tableName, userUID)
|
|
||||||
if err != nil || !success {
|
|
||||||
log.Println("Error resetting user:", err)
|
|
||||||
err = client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
|
||||||
Type: discordgo.InteractionResponseChannelMessageWithSource,
|
|
||||||
Data: &discordgo.InteractionResponseData{
|
|
||||||
Content: "Error resetting user.",
|
|
||||||
Flags: discordgo.MessageFlagsEphemeral,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error sending interaction response:", err)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
|
||||||
Type: discordgo.InteractionResponseChannelMessageWithSource,
|
|
||||||
Data: &discordgo.InteractionResponseData{
|
|
||||||
Content: fmt.Sprintf("Successfully reset %s's HWID.", identifier),
|
|
||||||
Flags: discordgo.MessageFlagsEphemeral,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error sending interaction response:", err)
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -564,6 +477,105 @@ var (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func resetCommandHandler(client *discordgo.Session, i *discordgo.InteractionCreate, softwareType string) {
|
||||||
|
hasAdminPermission := false
|
||||||
|
|
||||||
|
var userName string
|
||||||
|
var userUID int
|
||||||
|
var err error
|
||||||
|
var tableName string
|
||||||
|
var baseURL string
|
||||||
|
|
||||||
|
for _, roleID := range config.Discord.AdminRoles {
|
||||||
|
member, err := client.GuildMember(i.GuildID, i.Member.User.ID)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error fetching member info:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, role := range member.Roles {
|
||||||
|
if role == roleID {
|
||||||
|
hasAdminPermission = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if hasAdminPermission {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !hasAdminPermission {
|
||||||
|
err := client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
||||||
|
Type: discordgo.InteractionResponseChannelMessageWithSource,
|
||||||
|
Data: &discordgo.InteractionResponseData{
|
||||||
|
Content: "You do not have permission to run this command.",
|
||||||
|
Flags: discordgo.MessageFlagsEphemeral,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error sending interaction response:", err)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
identifier := i.ApplicationCommandData().Options[0].StringValue()
|
||||||
|
|
||||||
|
if uid, err := strconv.Atoi(identifier); err == nil {
|
||||||
|
userUID = uid
|
||||||
|
} else {
|
||||||
|
userName = identifier
|
||||||
|
}
|
||||||
|
|
||||||
|
if userName != "" {
|
||||||
|
_, baseURL = getTableNameAndBaseURL(softwareType)
|
||||||
|
userUID, err = fetchUserID(userName, baseURL)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error fetching user ID:", err)
|
||||||
|
err = client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
||||||
|
Type: discordgo.InteractionResponseChannelMessageWithSource,
|
||||||
|
Data: &discordgo.InteractionResponseData{
|
||||||
|
Content: "Error fetching user ID.",
|
||||||
|
Flags: discordgo.MessageFlagsEphemeral,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error sending interaction response:", err)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tableName, _ = getTableNameAndBaseURL(softwareType)
|
||||||
|
success, err := resetAndVerify(tableName, userUID)
|
||||||
|
if err != nil || !success {
|
||||||
|
log.Println("Error resetting user:", err)
|
||||||
|
err = client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
||||||
|
Type: discordgo.InteractionResponseChannelMessageWithSource,
|
||||||
|
Data: &discordgo.InteractionResponseData{
|
||||||
|
Content: "Error resetting user.",
|
||||||
|
Flags: discordgo.MessageFlagsEphemeral,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error sending interaction response:", err)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Printf("Reset the HWID of user %s with UID %d for %s", userName, userUID, softwareType)
|
||||||
|
|
||||||
|
err = client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
||||||
|
Type: discordgo.InteractionResponseChannelMessageWithSource,
|
||||||
|
Data: &discordgo.InteractionResponseData{
|
||||||
|
Content: fmt.Sprintf("Successfully reset %s's HWID.", identifier),
|
||||||
|
Flags: discordgo.MessageFlagsEphemeral,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error sending interaction response:", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func canCreateTicket(userName, softwareType string) bool {
|
func canCreateTicket(userName, softwareType string) bool {
|
||||||
guildChannels, err := client.GuildChannels(config.Discord.GuildID)
|
guildChannels, err := client.GuildChannels(config.Discord.GuildID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user