Compare commits
No commits in common. "master" and "v0.0.1" have entirely different histories.
@ -33,22 +33,23 @@ func init() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
messageContent := strings.Split(m.Content, " ")
|
messageContent := strings.Split(m.Content, " ")
|
||||||
if !strings.HasPrefix(strings.ToLower(messageContent[0]), prefix) {
|
if !strings.HasPrefix(messageContent[0], prefix) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
messageContent[0] = messageContent[0][len(prefix):]
|
messageContent[0] = messageContent[0][len(prefix):]
|
||||||
|
var response string
|
||||||
if fun, ok := dotCommandHandlers[messageContent[0]]; ok {
|
if fun, ok := dotCommandHandlers[messageContent[0]]; ok {
|
||||||
response := fun(messageContent[1:])
|
response = fun(messageContent[1:])
|
||||||
_, err := s.ChannelMessageSendComplex(m.ChannelID, &discordgo.MessageSend{
|
}
|
||||||
Content: response,
|
_, err := s.ChannelMessageSendComplex(m.ChannelID, &discordgo.MessageSend{
|
||||||
Reference: m.Reference(),
|
Content: response,
|
||||||
AllowedMentions: &discordgo.MessageAllowedMentions{
|
Reference: m.Reference(),
|
||||||
RepliedUser: false,
|
AllowedMentions: &discordgo.MessageAllowedMentions{
|
||||||
},
|
RepliedUser: false,
|
||||||
})
|
},
|
||||||
if err != nil {
|
})
|
||||||
log.Printf("Error sending message: %v", err)
|
if err != nil {
|
||||||
}
|
log.Fatalf("Error sending message: %v", err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,7 +33,7 @@ var (
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error responding to interaction: %s\n", err)
|
log.Fatalf("Error responding to interaction: %s\n", err)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -67,22 +67,18 @@ func roll(opts optionMap) string {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "Error rolling dice: " + err.Error()
|
return "Error rolling dice: " + err.Error()
|
||||||
}
|
}
|
||||||
roll, flat, err := d.Roll()
|
roll, err := d.Roll()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ret := fmt.Sprintf("Error rolling dice: %s", err)
|
ret := fmt.Sprintf("Error rolling dice: %s", err)
|
||||||
fmt.Println(ret)
|
fmt.Println(ret)
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
var ret strings.Builder
|
var ret strings.Builder
|
||||||
_, err = fmt.Fprintf(&ret, "Dice expression: `%s`\n", exp)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Sprintf("Error rolling dice: %s", err)
|
|
||||||
}
|
|
||||||
_, err = fmt.Fprint(&ret, "Rolled dice: `")
|
_, err = fmt.Fprint(&ret, "Rolled dice: `")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Sprintf("Error rolling dice: %s", err)
|
return fmt.Sprintf("Error rolling dice: %s", err)
|
||||||
}
|
}
|
||||||
total := flat
|
total := d.Add
|
||||||
for i, die := range roll {
|
for i, die := range roll {
|
||||||
_, err = fmt.Fprintf(&ret, "%v", die.Result)
|
_, err = fmt.Fprintf(&ret, "%v", die.Result)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -104,5 +100,5 @@ func roll(opts optionMap) string {
|
|||||||
if ret.Len() < 2000 {
|
if ret.Len() < 2000 {
|
||||||
return ret.String()
|
return ret.String()
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("Too many dice to display. Omitting.\nExpression: %s\nTotal: %v", exp, total)
|
return fmt.Sprintf("Too many dice to display. Omitting.\nTotal: %v", total)
|
||||||
}
|
}
|
||||||
|
|||||||
10
dice/dice.go
10
dice/dice.go
@ -22,14 +22,14 @@ type DieResult struct {
|
|||||||
Result int
|
Result int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d DieExp) Roll() ([]DieResult, int, error) {
|
func (d DieExp) Roll() ([]DieResult, error) {
|
||||||
results := make([]DieResult, 0)
|
results := make([]DieResult, 0)
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
for i := 0; i < d.Count; i++ {
|
for i := 0; i < d.Count; i++ {
|
||||||
results, err = addDice(d, results)
|
results, err = addDice(d, results)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ func (d DieExp) Roll() ([]DieResult, int, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if d.KeepLow > len(results) {
|
if d.KeepLow > len(results) {
|
||||||
return nil, 0, errors.New("keep low higher than remaining results")
|
return results, errors.New("keep low higher than remaining results")
|
||||||
}
|
}
|
||||||
|
|
||||||
if d.KeepLow != 0 {
|
if d.KeepLow != 0 {
|
||||||
@ -84,7 +84,7 @@ func (d DieExp) Roll() ([]DieResult, int, error) {
|
|||||||
alreadyRolled := len(results)
|
alreadyRolled := len(results)
|
||||||
results, err = addDice(d, results)
|
results, err = addDice(d, results)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, result := range results[alreadyRolled:] {
|
for _, result := range results[alreadyRolled:] {
|
||||||
if result.Result == result.Size {
|
if result.Result == result.Size {
|
||||||
@ -93,7 +93,7 @@ func (d DieExp) Roll() ([]DieResult, int, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return results, d.Add, nil
|
return results, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateFromExp(exp string) (DieExp, error) {
|
func CreateFromExp(exp string) (DieExp, error) {
|
||||||
|
|||||||
@ -78,7 +78,7 @@ func TestDieExp_roll(t *testing.T) {
|
|||||||
KeepLow: tt.fields.KeepLow,
|
KeepLow: tt.fields.KeepLow,
|
||||||
Explode: tt.fields.Explode,
|
Explode: tt.fields.Explode,
|
||||||
}
|
}
|
||||||
got, _, err := d.Roll()
|
got, err := d.Roll()
|
||||||
total := 0
|
total := 0
|
||||||
for _, v := range got {
|
for _, v := range got {
|
||||||
total += v.Result
|
total += v.Result
|
||||||
@ -102,7 +102,7 @@ func TestDieExp_roll_keep_high(t *testing.T) {
|
|||||||
KeepLow: 0,
|
KeepLow: 0,
|
||||||
Explode: false,
|
Explode: false,
|
||||||
}
|
}
|
||||||
got, _, err := d.Roll()
|
got, err := d.Roll()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("roll() error = %v", err)
|
t.Errorf("roll() error = %v", err)
|
||||||
return
|
return
|
||||||
@ -120,7 +120,7 @@ func TestDieExp_roll_keep_low(t *testing.T) {
|
|||||||
KeepLow: 2,
|
KeepLow: 2,
|
||||||
Explode: false,
|
Explode: false,
|
||||||
}
|
}
|
||||||
got, _, err := d.Roll()
|
got, err := d.Roll()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("roll() error = %v", err)
|
t.Errorf("roll() error = %v", err)
|
||||||
return
|
return
|
||||||
@ -138,7 +138,7 @@ func TestDieExp_roll_keep_high_low(t *testing.T) {
|
|||||||
KeepLow: 2,
|
KeepLow: 2,
|
||||||
Explode: false,
|
Explode: false,
|
||||||
}
|
}
|
||||||
got, _, err := d.Roll()
|
got, err := d.Roll()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("roll() error = %v", err)
|
t.Errorf("roll() error = %v", err)
|
||||||
return
|
return
|
||||||
@ -156,7 +156,7 @@ func TestDieExp_roll_keep_low_too_high(t *testing.T) {
|
|||||||
KeepLow: 5,
|
KeepLow: 5,
|
||||||
Explode: false,
|
Explode: false,
|
||||||
}
|
}
|
||||||
_, _, err := d.Roll()
|
_, err := d.Roll()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Errorf("expected roll error, got nil")
|
t.Errorf("expected roll error, got nil")
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
treerazer:
|
|
||||||
image: git.malmal200.xyz/malmal200/treerazer:test
|
|
||||||
environment:
|
|
||||||
COMMAND_PREFIX: "treereazer-test."
|
|
||||||
DISCORD_TOKEN: ""
|
|
||||||
Loading…
x
Reference in New Issue
Block a user