Skip to content
This repository has been archived by the owner on Jan 13, 2025. It is now read-only.

Commit

Permalink
Refactor code
Browse files Browse the repository at this point in the history
  • Loading branch information
ungarscool1 committed Aug 18, 2020
1 parent ce36b08 commit 87f5522
Show file tree
Hide file tree
Showing 13 changed files with 293 additions and 150 deletions.
49 changes: 25 additions & 24 deletions src/main/java/com/github/ungarscool1/Roboto/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,14 @@
import java.util.HashMap;
import java.util.Locale;

import com.github.ungarscool1.Roboto.listeners.commands.AdminCommand;
import com.github.ungarscool1.Roboto.listeners.commands.admin.AdminHelpCommand;
import com.github.ungarscool1.Roboto.listeners.commands.admin.BanCommand;
import com.github.ungarscool1.Roboto.listeners.commands.admin.LangCommand;
import com.github.ungarscool1.Roboto.listeners.commands.owner.ChangeGameCommand;
import com.github.ungarscool1.Roboto.listeners.commands.owner.MaintenanceCommand;
import com.github.ungarscool1.Roboto.listeners.commands.owner.OwnerInfoCommand;
import com.github.ungarscool1.Roboto.listeners.servers.JoinListener;
import com.github.ungarscool1.Roboto.listeners.servers.LeaveListener;
import org.discordbots.api.client.DiscordBotListAPI;
import org.javacord.api.DiscordApi;
import org.javacord.api.DiscordApiBuilder;
Expand All @@ -19,7 +26,7 @@
public class Main {

public static HashMap<Server, Locale> locByServ = new HashMap<>();
private static DiscordBotListAPI dbl;
public static DiscordBotListAPI dbl;

public static void main(String[] args) {
new DiscordApiBuilder()
Expand Down Expand Up @@ -48,37 +55,31 @@ private static void onShardLogin(DiscordApi api) {
l = serverLanguage.getServerLanguage(server).split("_");
locByServ.put(server, new Locale(l[0], l[1]));
} catch (Exception e) {
// Set by default english if not found
System.err.println("Le serveur " + server.getName() + " ( " + server.getIdAsString() + " )" + " n'a pas été trouvé");
locByServ.put(server, new Locale("en", "US"));
new ServerLanguage().addServer(server);
}

api.updateActivity(ActivityType.LISTENING, api.getServers().size() + " servers");
});

api.addServerJoinListener(event -> {
ServerLanguage serverLanguage = new ServerLanguage();
locByServ.put(event.getServer(), new Locale("en", "US"));
serverLanguage.addServer(event.getServer());
api.updateActivity(ActivityType.LISTENING, api.getServers().size() + " servers");
dbl.setStats(api.getCurrentShard(), api.getTotalShards(), api.getServers().size());
});

api.addServerLeaveListener(event -> {
ServerLanguage serverLanguage = new ServerLanguage();
locByServ.remove(event.getServer());
serverLanguage.removeServer(event.getServer());
api.updateActivity(ActivityType.LISTENING, api.getServers().size() + " servers");
dbl.setStats(api.getCurrentShard(), api.getTotalShards(), api.getServers().size());
});
api.addServerJoinListener(new JoinListener());
api.addServerLeaveListener(new LeaveListener());

api.addMessageCreateListener(new VoteCommand());
api.addMessageCreateListener(new GameCommand(api));
api.addMessageCreateListener(new UtilsCommand(api));
api.addMessageCreateListener(new AdminCommand());

api.addReactionAddListener(new ReacListener());
/**
* Admin commands
*/
api.addMessageCreateListener(new AdminHelpCommand());
api.addMessageCreateListener(new BanCommand());
api.addMessageCreateListener(new LangCommand());
/**
* Owner commands
*/
api.addMessageCreateListener(new ChangeGameCommand());
api.addMessageCreateListener(new MaintenanceCommand());
api.addMessageCreateListener(new OwnerInfoCommand());

api.addReactionAddListener(new ReacListener());
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public void setServerLanguage(Server server, String lang) {
}
}

String getServerLanguage(Server server) {
public String getServerLanguage(Server server) {
JsonObject object = gson.fromJson(reader, JsonObject.class);
String lang;
try {
Expand All @@ -54,7 +54,7 @@ String getServerLanguage(Server server) {
return lang;
}

void addServer(Server server) {
public void addServer(Server server) {
JsonObject object = gson.fromJson(reader, JsonObject.class);
object.addProperty(server.getIdAsString(), "en_US");
try (Writer writer = new FileWriter("serversLanguage.json")) {
Expand All @@ -64,7 +64,7 @@ void addServer(Server server) {
}
}

void removeServer(Server server) {
public void removeServer(Server server) {
JsonObject object = gson.fromJson(reader,JsonObject.class);
object.remove(server.getIdAsString());
try (Writer writer = new FileWriter("serversLanguage.json")) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ public GameCommand(DiscordApi api) {

public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage();
// Ignore if the message is sent in PM
if (!message.getServer().isPresent() || message.getAuthor().isBotUser()) {
return;
}
Expand All @@ -37,7 +36,6 @@ public void onMessageCreate(MessageCreateEvent event) {

if (message.getContent().contains("!game")) {
if (message.getContent().length() > 5) {
// !game pfc 10
String[] args = message.getContent().substring(6).split(" ");
if (args[0].equalsIgnoreCase("pfc") || args[0].equalsIgnoreCase("rps")) {
int manche = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,25 +66,6 @@ public void onMessageCreate(MessageCreateEvent event) {
message.getChannel().sendMessage(embed);
}

if ((message.getContent().contains("@lang") || message.getContent().contains("@language") || message.getContent().contains("@langue")) && message.getAuthor().isServerAdmin()) {
EmbedBuilder embed = new EmbedBuilder();
if (message.getContent().contains("en_US") || message.getContent().contains("fr_FR") || message.getContent().contains("es_ES")) {
String lang = message.getContent().substring(message.getContent().indexOf(" ") + 1);
lang = lang.substring(0, message.getContent().indexOf(" "));
String[] l;
l = lang.split("_");
new ServerLanguage().setServerLanguage(message.getServer().get(), l[0] + "_" + l[1]);
Main.locByServ.replace(message.getServer().get(), new Locale(l[0], l[1]));
language = ResourceBundle.getBundle("lang.lang", new Locale(l[0], l[1]));
embed.setTitle(language.getString("lang.changed.name"))
.setDescription(language.getString("lang.changed.desc"));
} else {
embed.setTitle(language.getString("lang.help.name"))
.addField(language.getString("lang.help.languages"), String.format("- fr_FR (%s)\n- en_US (%s)\n- es_ES (%s)", language.getString("lang.help.french.name"), language.getString("lang.help.english.name"), language.getString("lang.help.spanish.name")));
}
message.getChannel().sendMessage(embed);
}

if (message.getContent().equalsIgnoreCase("!ver") || message.getContent().equalsIgnoreCase("!version")) {
EmbedBuilder embedBuilder = new EmbedBuilder();
int users = api.getServers().stream().mapToInt(Server::getMemberCount).sum();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.github.ungarscool1.Roboto.listeners.commands.admin;

import com.github.ungarscool1.Roboto.Main;
import org.javacord.api.entity.message.Message;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener;

import java.util.ResourceBundle;

public class AdminHelpCommand implements MessageCreateListener {
@Override
public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage();
ResourceBundle language = ResourceBundle.getBundle("lang.lang", Main.locByServ.get(message.getServer().get()));

if (!message.getServer().isPresent() || message.getAuthor().isBotUser())
return;
if (message.getAuthor().canBanUsersFromServer() && message.getContent().equalsIgnoreCase("@help")) {
EmbedBuilder embed = new EmbedBuilder();
embed.setTitle(language.getString("admin.help.name"))
.addField(language.getString("admin.help.ban.name"), language.getString("admin.help.ban.desc"))
.addField("@lang <lang>", language.getString("help.lang.desc"))
.setFooter("Roboto admin mode");
message.getChannel().sendMessage(embed);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package com.github.ungarscool1.Roboto.listeners.commands.admin;

import com.github.ungarscool1.Roboto.Main;
import org.javacord.api.entity.message.Message;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.user.User;
import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener;

import java.awt.*;
import java.util.ResourceBundle;

public class BanCommand implements MessageCreateListener {
@Override
public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage();
ResourceBundle language = ResourceBundle.getBundle("lang.lang", Main.locByServ.get(message.getServer().get()));

if (!message.getServer().isPresent() || message.getAuthor().isBotUser())
return;
if (message.getAuthor().canBanUsersFromServer() && message.getContent().contains("@ban")) {
String[] args = message.getContent().split(" ");
EmbedBuilder embed = new EmbedBuilder();
if (args.length == 1) {
embed.setTitle(language.getString("admin.ban.name"))
.setDescription(language.getString("admin.ban.missingargs"))
.setColor(Color.RED)
.setFooter("Roboto v.3 by Ungarscool1");
message.getChannel().sendMessage(embed);
return;
}
if (args.length > 1) {
User toBan = message.getMentionedUsers().get(0);
String description;
StringBuilder reason = new StringBuilder();
if (args.length == 2)
description = String.format(language.getString("admin.ban.desc.default"), toBan.getDiscriminatedName());
else {
for (int i = 2; i < args.length; i++)
reason.append(args[i] + " ");
description = String.format(language.getString("admin.ban.desc"), toBan.getDiscriminatedName(), reason.toString());
}
embed.setTitle(language.getString("admin.ban.name"))
.setDescription(description)
.setAuthor(message.getAuthor())
.setFooter("Roboto v.3 by Ungarscool1")
.setColor(Color.GREEN);
if (args.length == 2)
description = language.getString("admin.ban.toBan.desc.default");
else
description = String.format(language.getString("admin.ban.toBan.desc"), reason.toString());
toBan.sendMessage(new EmbedBuilder().setTitle(language.getString("admin.ban.toBan.name"))
.setDescription(description)
.setAuthor(message.getAuthor())
.setColor(Color.RED));
message.getChannel().sendMessage(embed);
message.getServer().get().banUser(toBan, 0, reason.toString());
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.github.ungarscool1.Roboto.listeners.commands.admin;

import com.github.ungarscool1.Roboto.Main;
import com.github.ungarscool1.Roboto.ServerLanguage;
import org.javacord.api.entity.message.Message;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener;

import java.util.Locale;
import java.util.ResourceBundle;

public class LangCommand implements MessageCreateListener {
@Override
public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage();
ResourceBundle language = ResourceBundle.getBundle("lang.lang", Main.locByServ.get(message.getServer().get()));

if (!message.getServer().isPresent() || message.getAuthor().isBotUser())
return;
if ((message.getContent().contains("@lang") || message.getContent().contains("@language") || message.getContent().contains("@langue")) && message.getAuthor().isServerAdmin()) {
EmbedBuilder embed = new EmbedBuilder();
if (message.getContent().contains("en_US") || message.getContent().contains("fr_FR") || message.getContent().contains("es_ES")) {
String lang = message.getContent().substring(message.getContent().indexOf(" ") + 1);
lang = lang.substring(0, message.getContent().indexOf(" "));
String[] l;
l = lang.split("_");
new ServerLanguage().setServerLanguage(message.getServer().get(), l[0] + "_" + l[1]);
Main.locByServ.replace(message.getServer().get(), new Locale(l[0], l[1]));
language = ResourceBundle.getBundle("lang.lang", new Locale(l[0], l[1]));
embed.setTitle(language.getString("lang.changed.name"))
.setDescription(language.getString("lang.changed.desc"));
} else {
embed.setTitle(language.getString("lang.help.name"))
.addField(language.getString("lang.help.languages"), String.format("- fr_FR (%s)\n- en_US (%s)\n- es_ES (%s)", language.getString("lang.help.french.name"), language.getString("lang.help.english.name"), language.getString("lang.help.spanish.name")));
}
message.getChannel().sendMessage(embed);
}
}
}
Loading

0 comments on commit 87f5522

Please sign in to comment.