Skip to content

Commit 92f0e52

Browse files
committed
Change JDA API Version (5.0.0 Alpha 16 -> 4.4.0.350)
Finished "server start" console command (for proxys and servers) Created Command.java abstract class to manage Bot's Commands Create StartCmd.java (start command for the bot) Adding a Message Listener to the Discord Bot Completing the Bot Configuration Creating ServicesStarter.java class to start the differents services
1 parent 6577ab9 commit 92f0e52

18 files changed

+331
-31
lines changed

.idea/artifacts/dnapitest_jar.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/JDA_4_4_0_350_withDependencies.xml

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/JDA_5_0_0_alpha_16_withDependencies.xml

Lines changed: 0 additions & 9 deletions
This file was deleted.

dnapitest.iml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<orderEntry type="sourceFolder" forTests="false" />
1010
<orderEntry type="library" name="DreamNetwork-api" level="project" />
1111
<orderEntry type="library" name="lombok" level="project" />
12-
<orderEntry type="library" name="JDA-5.0.0-alpha.16-withDependencies" level="project" />
1312
<orderEntry type="library" name="json-simple-1.1.1" level="project" />
13+
<orderEntry type="library" name="JDA-4.4.0_350-withDependencies" level="project" />
1414
</component>
1515
</module>

src/fr/benjimania74/dnapitest/Main.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,27 @@
33
import be.alexandre01.dreamnetwork.api.DNClientAPI;
44
import be.alexandre01.dreamnetwork.api.addons.Addon;
55
import be.alexandre01.dreamnetwork.api.addons.DreamExtension;
6+
import be.alexandre01.dreamnetwork.api.connection.core.communication.IClient;
67
import be.alexandre01.dreamnetwork.client.console.Console;
78
import be.alexandre01.dreamnetwork.client.console.colors.Colors;
89
import fr.benjimania74.dnapitest.bot.BotMain;
910
import fr.benjimania74.dnapitest.registers.CommandsRegister;
1011
import fr.benjimania74.dnapitest.registers.ListenerRegister;
1112
import fr.benjimania74.dnapitest.utils.FilesManager;
1213

14+
import java.util.ArrayList;
15+
import java.util.List;
16+
1317
public class Main extends DreamExtension {
1418
public static DNClientAPI clientAPI;
1519
public static String addonName;
20+
public static List<IClient> clients;
1621

1722
@Override
1823
public void onLoad() {
1924
super.onLoad();
2025
addonName = getAddon().getDreamyName();
26+
clients = new ArrayList<>();
2127
new FilesManager();
2228
if(!new BotMain().create()){
2329
//stop();

src/fr/benjimania74/dnapitest/bot/BotConfig.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ public class BotConfig {
2323
public String getStatus() {return status;}
2424
public void setStatus(String status) {this.status = status;}
2525

26+
private String prefix = "d!";
27+
public String getPrefix() {return prefix;}
28+
public void setPrefix(String prefix) {this.prefix = prefix;}
29+
2630
private HashMap<String, String> links = new HashMap<>();
2731
public HashMap<String, String> getLinks() {return links;}
2832
public void setLinks(HashMap<String, String> links) {this.links = links;}
@@ -32,6 +36,7 @@ public BotConfig(){
3236
object = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(FilesManager.getInstance().read("config"))));
3337
setActivity((String) object.get("activity"));
3438
setStatus((String) object.get("status"));
39+
setPrefix((String) object.get("prefix"));
3540

3641
JSONObject connectionsList = (JSONObject) object.get("link");
3742
HashMap<String, String> list = new HashMap<>();
@@ -50,10 +55,11 @@ public BotConfig(){
5055
instance = this;
5156
}
5257

53-
public boolean save(){
58+
public void save(){
5459
try {
5560
object.put("activity", getActivity());
5661
object.put("status", getStatus());
62+
object.put("prefix", getPrefix());
5763

5864
JSONObject list = new JSONObject();
5965
getLinks().forEach((key, value) -> {
@@ -62,15 +68,11 @@ public boolean save(){
6268

6369
object.put("link", list);
6470

65-
System.out.println(object);
66-
6771
FilesManager.getInstance().write("config", Base64.getEncoder().encodeToString(object.toJSONString().getBytes()));
6872

6973
Console.print(Colors.GREEN + "The Configuration File has been saved");
70-
return true;
7174
}catch (Exception e){
7275
Console.print(Colors.RED + "Can't save the Configuration File");
73-
return false;
7476
}
7577
}
7678
}

src/fr/benjimania74/dnapitest/bot/BotMain.java

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,54 @@
22

33
import be.alexandre01.dreamnetwork.client.console.Console;
44
import be.alexandre01.dreamnetwork.client.console.colors.Colors;
5+
import fr.benjimania74.dnapitest.bot.cmd.Command;
6+
import fr.benjimania74.dnapitest.bot.listeners.MessageListener;
57
import fr.benjimania74.dnapitest.utils.FilesManager;
68
import net.dv8tion.jda.api.JDA;
79
import net.dv8tion.jda.api.JDABuilder;
810
import net.dv8tion.jda.api.OnlineStatus;
911
import net.dv8tion.jda.api.entities.Activity;
12+
import net.dv8tion.jda.api.requests.GatewayIntent;
13+
14+
import java.util.ArrayList;
15+
import java.util.Arrays;
16+
import java.util.List;
1017

1118
public class BotMain {
1219
public static BotMain instance;
13-
public static JDA jda;
20+
public JDA jda;
21+
public static List<Command> commandsList;
1422

1523
public boolean create(){
24+
instance = this;
25+
commandsList = new ArrayList<>();
26+
1627
try{
1728
new BotConfig();
29+
1830
String token = FilesManager.getInstance().read("token");
19-
JDABuilder builder = JDABuilder.createDefault(token);
20-
builder.setStatus(OnlineStatus.fromKey(BotConfig.getInstance().getStatus()));
21-
builder.setActivity(Activity.playing(BotConfig.getInstance().getActivity()));
31+
new CommandsRegister().register();
32+
33+
JDABuilder builder = JDABuilder.createDefault(token)
34+
.enableIntents(GatewayIntent.GUILD_MESSAGES)
35+
.setStatus(OnlineStatus.fromKey(BotConfig.getInstance().getStatus()))
36+
.setActivity(Activity.playing(BotConfig.getInstance().getActivity()));
37+
2238
jda = builder.build();
23-
instance = this;
39+
jda.addEventListener(new MessageListener());
40+
2441
Console.print(Colors.GREEN_BACKGROUND + "The Bot is started");
2542
return true;
2643
}catch (Exception e){
2744
Console.print(Colors.RED_BACKGROUND + "The Bot can't be started");
45+
e.printStackTrace();
2846
return false;
2947
}
3048
}
49+
50+
public void registerCommand(Command command, Command... commands){
51+
commandsList.add(command);
52+
commandsList.addAll(Arrays.asList(commands));
53+
}
54+
public void unregisterCommand(Command command){commandsList.remove(command);}
3155
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package fr.benjimania74.dnapitest.bot;
2+
3+
import fr.benjimania74.dnapitest.bot.cmd.services.StartCmd;
4+
import fr.benjimania74.dnapitest.bot.cmd.services.StopCmd;
5+
6+
public class CommandsRegister {
7+
public void register(){
8+
BotMain.instance.registerCommand(new StartCmd("start", "Start services command"),
9+
new StopCmd("stop", "Strop services command"));
10+
}
11+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package fr.benjimania74.dnapitest.bot.cmd;
2+
3+
import be.alexandre01.dreamnetwork.api.DNClientAPI;
4+
import fr.benjimania74.dnapitest.Main;
5+
import fr.benjimania74.dnapitest.bot.BotConfig;
6+
import net.dv8tion.jda.api.entities.Message;
7+
import net.dv8tion.jda.api.entities.TextChannel;
8+
9+
public abstract class Command {
10+
String name;
11+
String description;
12+
13+
public Command(String name, String description){
14+
this.name = name;
15+
this.description = description;
16+
}
17+
18+
public String getName() {
19+
return name;
20+
}
21+
public String getDescription() {
22+
return description;
23+
}
24+
public String getPrefix(){
25+
return BotConfig.getInstance().getPrefix();
26+
}
27+
public String getAddonName(){
28+
return Main.addonName;
29+
}
30+
31+
public abstract void execute(TextChannel channel, DNClientAPI clientAPI, Message message);
32+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package fr.benjimania74.dnapitest.bot.cmd.services;
2+
3+
import be.alexandre01.dreamnetwork.api.DNClientAPI;
4+
import fr.benjimania74.dnapitest.bot.BotMain;
5+
import fr.benjimania74.dnapitest.bot.cmd.Command;
6+
import fr.benjimania74.dnapitest.utils.ServicesStarter;
7+
import net.dv8tion.jda.api.EmbedBuilder;
8+
import net.dv8tion.jda.api.MessageBuilder;
9+
import net.dv8tion.jda.api.entities.Message;
10+
import net.dv8tion.jda.api.entities.TextChannel;
11+
12+
import java.awt.*;
13+
14+
public class StartCmd extends Command {
15+
16+
public StartCmd(String name, String description) {super(name, description);}
17+
18+
@Override
19+
public void execute(TextChannel channel, DNClientAPI clientAPI, Message message) {
20+
EmbedBuilder eb = new EmbedBuilder()
21+
.setColor(Color.RED)
22+
.setTitle("Invalid Command")
23+
.setDescription("Usage: " + getPrefix() + getName() + " <service name to start> [<server | proxy>]")
24+
.setFooter(getAddonName() + " by benjimania74", BotMain.instance.jda.getSelfUser().getAvatarUrl());
25+
26+
String args[];
27+
28+
try{
29+
args = message.getContentRaw().substring(getPrefix().length() + getName().length() + 1).split(" ");
30+
}catch (Exception e){
31+
channel.sendMessageEmbeds(eb.build()).queue();
32+
return;
33+
}
34+
35+
if(args.length < 1){
36+
channel.sendMessageEmbeds(eb.build()).queue();
37+
return;
38+
}
39+
40+
message.getChannel().sendMessageEmbeds(
41+
new ServicesStarter().startB(args).setFooter(getAddonName() + " by benjimania74", BotMain.instance.jda.getSelfUser().getAvatarUrl()).build()
42+
).queue();
43+
}
44+
}

0 commit comments

Comments
 (0)