Skip to content

Commit 28f48f7

Browse files
committed
Added back being able to create new tricks
1 parent 4866526 commit 28f48f7

4 files changed

Lines changed: 62 additions & 16 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ dependencies {
7777
bootstrap("org.mangorage:mangobotbootstrap:1.0.84")
7878
launchtarget("org.mangorage:mangobotlaunchtarget:0.1.8")
7979

80-
plugin('org.mangorage:mangobot:12.0.101')
80+
plugin('org.mangorage:mangobot:12.0.103')
8181

8282
library('org.slf4j:slf4j-simple:2.0.13') // Use a recent version)
8383
library('org.luaj:luaj-jme:3.0.1')

src/main/java/org/mangorage/mangobotplugin/commands/trick/Trick.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
import org.mangorage.mangobotcore.api.util.data.FileName;
55
import org.mangorage.mangobotcore.api.util.data.IFileNameResolver;
66

7-
import java.util.HashMap;
8-
9-
public class Trick implements IFileNameResolver {
7+
public final class Trick implements IFileNameResolver {
108
@Expose
119
private long ownerID;
1210

@@ -50,44 +48,45 @@ public class Trick implements IFileNameResolver {
5048
private TrickType type;
5149

5250

53-
protected Trick(String trickID, long guildID) {
51+
public Trick(String trickID, long guildID) {
5452
this.trickID = trickID;
5553
this.guildID = guildID;
5654
this.created = System.currentTimeMillis();
5755
}
5856

59-
protected void setAliasTarget(String target) {
57+
public void setAliasTarget(String target) {
6058
this.aliasTarget = target;
6159
}
62-
protected void setSuppress(boolean suppress) {
60+
61+
public void setSuppress(boolean suppress) {
6362
this.suppress = suppress;
6463
}
6564

66-
protected void setType(TrickType type) {
65+
public void setType(TrickType type) {
6766
this.type = type;
6867
}
6968

70-
protected void setContent(String content) {
69+
public void setContent(String content) {
7170
this.content = content;
7271
}
7372

74-
protected void setScript(String script) {
73+
public void setScript(String script) {
7574
this.script = script;
7675
}
7776

78-
protected void setOwnerID(long ownerID) {
77+
public void setOwnerID(long ownerID) {
7978
this.ownerID = ownerID;
8079
}
8180

82-
protected void setLastUserEdited(long user) {
81+
public void setLastUserEdited(long user) {
8382
this.lastUserEdited = user;
8483
}
8584

86-
protected void setLock(boolean locked) {
85+
public void setLock(boolean locked) {
8786
this.locked = locked;
8887
}
8988

90-
protected void setLastEdited(long ms) {
89+
public void setLastEdited(long ms) {
9190
this.lastEdited = ms;
9291
}
9392

@@ -143,7 +142,7 @@ public boolean isSuppressed() {
143142
return suppress;
144143
}
145144

146-
protected void use() {
145+
public void use() {
147146
timesUsed++;
148147
}
149148

src/main/java/org/mangorage/mangobotplugin/commands/trick/TrickManager.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,8 @@ public boolean removeTrick(String trickID, long guildID) {
5252
return false;
5353
}
5454

55+
public void addTrick(Trick trick) {
56+
loadedTricks.put(new TrickKey(trick.getTrickID(), trick.getGuildID()), trick);
57+
TRICKS_DATA_HANDLER.save(plugin.getPluginDirectory(), trick);
58+
}
5559
}

src/main/java/org/mangorage/mangobotplugin/commands/trick/impl/TrickAddSubCommand.java

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,22 @@
22

33
import net.dv8tion.jda.api.entities.Message;
44
import org.mangorage.mangobotcore.api.command.v1.CommandParseResult;
5+
import org.mangorage.mangobotcore.api.command.v1.argument.RequiredArg;
6+
import org.mangorage.mangobotcore.api.command.v1.argument.types.BooleanArgumentType;
7+
import org.mangorage.mangobotcore.api.command.v1.argument.types.EnumArgumentType;
8+
import org.mangorage.mangobotcore.api.command.v1.argument.types.StringArgumentType;
59
import org.mangorage.mangobotcore.api.jda.command.v2.AbstractJDACommand;
610
import org.mangorage.mangobotcore.api.jda.command.v2.JDACommandResult;
11+
import org.mangorage.mangobotplugin.commands.trick.Trick;
712
import org.mangorage.mangobotplugin.commands.trick.TrickManager;
13+
import org.mangorage.mangobotplugin.commands.trick.TrickType;
814

915
public final class TrickAddSubCommand extends AbstractJDACommand {
1016
private final TrickManager trickManager;
17+
private final RequiredArg<String> trickArg = registerRequiredArgument("trick", "The trick to add", StringArgumentType.single());
18+
private final RequiredArg<TrickType> trickTypeArg = registerRequiredArgument("type", "The trick type", EnumArgumentType.of(TrickType.class));
19+
private final RequiredArg<Boolean> trickSuppressArg = registerRequiredArgument("suppress", "Whether to suppress output", BooleanArgumentType.INSTANCE);
20+
private final RequiredArg<String> trickDataArg = registerRequiredArgument("data", "The trick data", StringArgumentType.quote());
1121

1222
public TrickAddSubCommand(String name, TrickManager trickManager) {
1323
super(name);
@@ -16,7 +26,40 @@ public TrickAddSubCommand(String name, TrickManager trickManager) {
1626

1727
@Override
1828
public JDACommandResult run(Message context, String[] arguments, CommandParseResult commandParseResult) throws Throwable {
19-
context.reply("Adding tricks is under maintenance!").queue();
29+
final var trickName = trickArg.get(arguments, commandParseResult);
30+
final var trickType = trickTypeArg.get(arguments, commandParseResult);
31+
final var trickSuppress = trickSuppressArg.get(arguments, commandParseResult);
32+
final var trickData = trickDataArg.get(arguments, commandParseResult);
33+
34+
final var trick = new Trick(trickName, context.getGuildIdLong());
35+
36+
if (trickManager.getTrickForGuildByName(context.getGuildIdLong(), trickName) != null) {
37+
context.reply("A trick with that name already exists!").queue();
38+
return JDACommandResult.PASS;
39+
}
40+
41+
switch (trickType) {
42+
case NORMAL -> {
43+
trick.setType(TrickType.NORMAL);
44+
trick.setContent(trickData);
45+
}
46+
case ALIAS -> {
47+
trick.setType(TrickType.ALIAS);
48+
trick.setAliasTarget(trickData);
49+
}
50+
case SCRIPT -> {
51+
trick.setType(TrickType.SCRIPT);
52+
trick.setScript(trickData);
53+
}
54+
}
55+
56+
trick.setSuppress(trickSuppress);
57+
trick.setLastUserEdited(context.getAuthor().getIdLong());
58+
trick.setOwnerID(context.getAuthor().getIdLong());
59+
60+
trickManager.addTrick(trick);
61+
context.reply("Added Trick '" + trickName + "' of type '" + trickType + "'!").queue();
62+
2063
return JDACommandResult.PASS;
2164
}
2265
}

0 commit comments

Comments
 (0)