simplify candy claiming code
This commit is contained in:
parent
ec66a65c94
commit
53a5100aa6
143
main.go
143
main.go
|
@ -640,7 +640,7 @@ func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||
if m.Content == "🍬 ***Some candy has appeared! React to this message to claim it.*** 🍬" {
|
||||
s.MessageReactionAdd(m.ChannelID, m.Reference().MessageID, "🍬")
|
||||
}
|
||||
tickrate = 250 * time.Millisecond
|
||||
tickrate = 100 * time.Millisecond
|
||||
claimed = false
|
||||
for i := 0; i < 720; i++ {
|
||||
reactions, err := s.MessageReactions(m.ChannelID, m.Reference().MessageID, "🍬", 2, "", "")
|
||||
|
@ -649,90 +649,69 @@ func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||
i -= 1
|
||||
continue
|
||||
}
|
||||
if len(reactions) <= 1 {
|
||||
if len(reactions) == 0 {
|
||||
continue
|
||||
}
|
||||
if reactions[0].ID == s.State.User.ID {
|
||||
time.Sleep(tickrate)
|
||||
if tickrate < maxtickrate && i % 5 == 0 {
|
||||
tickrate += 20 * time.Millisecond
|
||||
}
|
||||
continue
|
||||
}
|
||||
var candyvalue int
|
||||
bufftype := "none"
|
||||
buffvalue := 0
|
||||
var candystr string
|
||||
switch m.Embeds[0].Footer.Text {
|
||||
case "candyMilky":
|
||||
candyvalue = 500
|
||||
bufftype = "tewi"
|
||||
case "candyMeta":
|
||||
candyvalue = 1000
|
||||
case "candyCaptain":
|
||||
candyvalue = 250
|
||||
case "candyRadmeal":
|
||||
candyvalue = -200
|
||||
case "candyXorcon":
|
||||
candyvalue = 50
|
||||
bufftype = "alpha"
|
||||
buffvalue = 1
|
||||
case "candyKornflake":
|
||||
candyvalue = 200
|
||||
case "candyKiko":
|
||||
candyvalue = 500
|
||||
default:
|
||||
candyvalue = 100
|
||||
}
|
||||
maxcandy, _ := topUserCandy()
|
||||
multiplier := "(1x)"
|
||||
if checkUserCandy(reactions[0].ID) < (maxcandy/4) {
|
||||
multiplier = "(4x)"
|
||||
candyvalue = candyvalue * 4
|
||||
} else if checkUserCandy(reactions[0].ID) < (maxcandy/2) {
|
||||
multiplier = "(2x)"
|
||||
candyvalue = candyvalue * 2
|
||||
}
|
||||
if !math.Signbit(float64(candyvalue)) {
|
||||
candystr = "+" + fmt.Sprint(candyvalue)
|
||||
} else { candystr = fmt.Sprint(candyvalue) }
|
||||
msg := reactions[0].Username + " has claimed the candy! (" + candystr + " 🍬) " + multiplier
|
||||
switch bufftype {
|
||||
case "tewi":
|
||||
msg += "\n*Good luck!* Global candy droprate temporarily increased!"
|
||||
case "alpha":
|
||||
msg += "\n*Bash!* Crit chance permanently increased!"
|
||||
}
|
||||
if !checkUser(reactions[0].ID) {
|
||||
addUser(reactions[0].ID, candyvalue, buffvalue)
|
||||
} else {
|
||||
blocked := false
|
||||
blockfile, err := ioutil.ReadFile("blocklist.txt")
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
}
|
||||
blocklist := strings.Split(string(blockfile), "\n")
|
||||
for _, j := range blocklist {
|
||||
if j == reactions[0].ID && reactions[0].ID != "228911057316347905" {
|
||||
blocked = true
|
||||
s.MessageReactionRemove(m.ChannelID, m.Reference().MessageID, "🍬", j)
|
||||
s.ChannelMessageSend(m.ChannelID, "1 blocked reaction")
|
||||
i -= 1
|
||||
k := 0
|
||||
reactions = append(reactions[:k], reactions[k+1:]...)
|
||||
blocked = false
|
||||
}
|
||||
}
|
||||
if reactions[0].ID == s.State.User.ID {
|
||||
continue
|
||||
}
|
||||
if blocked == false {
|
||||
var candyvalue int
|
||||
bufftype := "none"
|
||||
buffvalue := 0
|
||||
var candystr string
|
||||
switch m.Embeds[0].Footer.Text {
|
||||
case "candyMilky":
|
||||
candyvalue = 500
|
||||
bufftype = "tewi"
|
||||
case "candyMeta":
|
||||
candyvalue = 1000
|
||||
case "candyCaptain":
|
||||
candyvalue = 250
|
||||
case "candyRadmeal":
|
||||
candyvalue = -200
|
||||
case "candyXorcon":
|
||||
candyvalue = 50
|
||||
bufftype = "alpha"
|
||||
buffvalue = 1
|
||||
case "candyKornflake":
|
||||
candyvalue = 200
|
||||
case "candyKiko":
|
||||
candyvalue = 500
|
||||
default:
|
||||
candyvalue = 100
|
||||
}
|
||||
maxcandy, _ := topUserCandy()
|
||||
multiplier := "(1x)"
|
||||
if checkUserCandy(reactions[0].ID) < (maxcandy/4) {
|
||||
multiplier = "(4x)"
|
||||
candyvalue = candyvalue * 4
|
||||
} else if checkUserCandy(reactions[0].ID) < (maxcandy/2) {
|
||||
multiplier = "(2x)"
|
||||
candyvalue = candyvalue * 2
|
||||
}
|
||||
if !math.Signbit(float64(candyvalue)) {
|
||||
candystr = "+" + fmt.Sprint(candyvalue)
|
||||
} else { candystr = fmt.Sprint(candyvalue) }
|
||||
msg := reactions[0].Username + " has claimed the candy! (" + candystr + " 🍬) " + multiplier
|
||||
switch bufftype {
|
||||
case "tewi":
|
||||
msg += "\n*Good luck!* Global candy droprate temporarily increased!"
|
||||
case "alpha":
|
||||
msg += "\n*Bash!* Crit chance permanently increased!"
|
||||
}
|
||||
if !checkUser(reactions[0].ID) {
|
||||
addUser(reactions[0].ID, candyvalue, buffvalue)
|
||||
} else {
|
||||
addCandy(reactions[0].ID, candyvalue)
|
||||
addBuff(reactions[0].ID, buffvalue)
|
||||
}
|
||||
s.ChannelMessageSend(m.ChannelID, msg)
|
||||
s.ChannelMessageSend(m.ChannelID, "`DEBUG: " + fmt.Sprint(tickrate) + "`")
|
||||
claimed = true
|
||||
}
|
||||
if claimed { break }
|
||||
}
|
||||
time.Sleep(tickrate)
|
||||
if tickrate < maxtickrate {
|
||||
tickrate += 10 * time.Millisecond
|
||||
addCandy(reactions[0].ID, candyvalue)
|
||||
addBuff(reactions[0].ID, buffvalue)
|
||||
}
|
||||
s.ChannelMessageSend(m.ChannelID, msg)
|
||||
s.ChannelMessageSend(m.ChannelID, "`DEBUG: " + fmt.Sprint(tickrate) + "`")
|
||||
claimed = true
|
||||
if claimed { break }
|
||||
}
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue