Skip to content

Commit

Permalink
Lots of improvements on command system and general events
Browse files Browse the repository at this point in the history
  • Loading branch information
Despical committed Jul 20, 2022
1 parent e8927e2 commit 0d924e6
Show file tree
Hide file tree
Showing 24 changed files with 111 additions and 117 deletions.
4 changes: 2 additions & 2 deletions .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ To add this project as a dependency to your project, add the following to your p
<dependency>
<groupId>com.github.Despical</groupId>
<artifactId>KOTL</artifactId>
<version>2.1.3</version>
<version>2.2.0</version>
<scope>compile</scope>
</dependency>
```
Expand All @@ -51,7 +51,7 @@ repositories {
```
```
dependencies {
compileOnly group: "com.github.Despical", name: "KOTL", version: "2.1.3;
compileOnly group: "com.github.Despical", name: "KOTL", version: "2.2.0;
}
```

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>me.despical</groupId>
<artifactId>king-of-the-ladder</artifactId>
<version>2.1.3</version>
<version>2.2.0</version>
<name>King of the Ladder</name>

<properties>
Expand Down
20 changes: 10 additions & 10 deletions src/main/java/me/despical/kotl/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,25 +70,24 @@ public class Main extends JavaPlugin {

@Override
public void onEnable() {
if (getDescription().getVersion().contains("debug") || getConfig().getBoolean("Debug-Messages")) {
LogUtils.setLoggerName("KOTL");
LogUtils.enableLogging();
}

if ((forceDisable = !validateIfPluginShouldStart())) {
getServer().getPluginManager().disablePlugin(this);
return;
}

if (getConfig().getBoolean("Debug-Messages")) {
LogUtils.setLoggerName("KOTL");
LogUtils.enableLogging();
LogUtils.log("Initialization started!");
}

exceptionLogHandler = new ExceptionLogHandler(this);
exceptionLogHandler.setMainPackage("me.despical");
exceptionLogHandler.addBlacklistedClass("me.despical.kotl.user.data.MysqlManager", "me.despical.commons.database.MysqlDatabase");
exceptionLogHandler.setRecordMessage("[KOTL] We have found a bug in the code. Contact us at our official Discord server (link: https://discord.gg/rVkaGmyszE) with the following error given above!");

configPreferences = new ConfigPreferences(this);

LogUtils.log("Initialization started!");

long start = System.currentTimeMillis();

setupFiles();
Expand Down Expand Up @@ -254,13 +253,14 @@ public UserManager getUserManager() {

private void saveAllUserStatistics() {
for (Player player : getServer().getOnlinePlayers()) {
User user = userManager.getUser(player);
final User user = userManager.getUser(player);

if (userManager.getDatabase() instanceof MysqlManager) {
StringBuilder update = new StringBuilder(" SET ");

for (StatsStorage.StatisticType stat : StatsStorage.StatisticType.values()) {
if (!stat.isPersistent()) continue;

int val = user.getStat(stat);

if (update.toString().equalsIgnoreCase(" SET ")) {
Expand All @@ -270,8 +270,8 @@ private void saveAllUserStatistics() {
update.append(", ").append(stat.getName()).append("'='").append(val);
}

String finalUpdate = update.toString();
MysqlManager database = ((MysqlManager) userManager.getDatabase());
final String finalUpdate = update.toString();
final MysqlManager database = ((MysqlManager) userManager.getDatabase());
database.getDatabase().executeUpdate("UPDATE " + database.getTableName() + finalUpdate + " WHERE UUID='" + user.getUniqueId().toString() + "';");
continue;
}
Expand Down
15 changes: 8 additions & 7 deletions src/main/java/me/despical/kotl/command/CommandHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,10 @@ public CommandHandler(Main plugin) {
this.plugin = plugin;
this.subCommands = new HashSet<>();

SubCommand[] cmds = {new CreateCommand(), new DeleteCommand(), new EditCommand(), new ListCommand(),
new ReloadCommand(), new HelpCommand(), new StatsCommand(), new TopPlayersCommand()};
SubCommand[] commands = {new CreateCommand(), new DeleteCommand(), new EditCommand(), new ListCommand(), new ReloadCommand(), new HelpCommand(), new StatsCommand(), new TopPlayersCommand()};

for (SubCommand cmd : cmds) {
registerSubCommand(cmd);
for (SubCommand command : commands) {
registerSubCommand(command);
}

Optional.ofNullable(plugin.getCommand("kotl")).ifPresent(command -> {
Expand All @@ -57,6 +56,8 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N

if (sender.hasPermission("kotl.admin")) {
sender.sendMessage(plugin.getChatManager().coloredRawMessage("&3Commands: &b/" + label + " help"));
sender.sendMessage(plugin.getChatManager().coloredRawMessage("&3If you liked this version then consider buying the premium one with better performance and additional features."));
sender.sendMessage(plugin.getChatManager().coloredRawMessage("&3>> &bhttps://www.spigotmc.org/resources/king-of-the-ladder-premium-1-8-1-19.102644/"));
}

return true;
Expand All @@ -69,7 +70,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N
return true;
}

if (subCommand.getSenderType() == SubCommand.SenderType.PLAYER && !(sender instanceof Player)) {
if (subCommand.getSenderType() == 0 && !(sender instanceof Player)) {
sender.sendMessage(plugin.getChatManager().prefixedMessage("commands.only_by_player"));
return true;
}
Expand All @@ -80,15 +81,15 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N
} catch (CommandException exception) {
sender.sendMessage(plugin.getChatManager().coloredRawMessage("&c" + exception.getMessage()));
}
} else if (subCommand.getType() == SubCommand.CommandType.GENERIC) {
} else if (subCommand.getType() == 0) {
sender.sendMessage(plugin.getChatManager().coloredRawMessage("&cUsage: /" + label + " " + subCommand.getName() + " " + (subCommand.getPossibleArguments().length() > 0 ? subCommand.getPossibleArguments() : "")));
}

return true;
}
}

List<StringMatcher.Match> matches = StringMatcher.match(args[0], subCommands.stream().map(SubCommand::getName).collect(Collectors.toList()));
final List<StringMatcher.Match> matches = StringMatcher.match(args[0], subCommands.stream().map(SubCommand::getName).collect(Collectors.toList()));

if (!matches.isEmpty()) {
sender.sendMessage(plugin.getChatManager().message("commands.did_you_mean").replace("%command%", label + " " + matches.get(0).getMatch()));
Expand Down
13 changes: 3 additions & 10 deletions src/main/java/me/despical/kotl/command/SubCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public abstract class SubCommand {
protected final Main plugin;
protected final FileConfiguration config;
protected final ChatManager chatManager;
protected final int GENERIC = 0, HIDDEN = 1, PLAYER = 0, BOTH = 1;

public SubCommand(String name) {
this.name = name;
Expand Down Expand Up @@ -48,15 +49,7 @@ public final boolean hasPermission(CommandSender sender) {

public abstract String getTutorial();

public abstract CommandType getType();
public abstract int getType();

public abstract SenderType getSenderType();

public enum CommandType {
GENERIC, HIDDEN
}

public enum SenderType {
PLAYER, BOTH
}
public abstract int getSenderType();
}
10 changes: 5 additions & 5 deletions src/main/java/me/despical/kotl/command/admin/CreateCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,17 +69,17 @@ public String getTutorial() {
}

@Override
public CommandType getType() {
return CommandType.GENERIC;
public int getType() {
return GENERIC;
}

@Override
public SenderType getSenderType() {
return SenderType.PLAYER;
public int getSenderType() {
return PLAYER;
}

private void setupDefaultConfiguration(String id) {
String path = "instances." + id + ".", def = LocationSerializer.SERIALIZED_LOCATION;
final String path = "instances." + id + ".", def = LocationSerializer.SERIALIZED_LOCATION;

config.set(path + "endlocation", def);
config.set(path + "areaMin", def);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,12 +101,12 @@ public String getTutorial() {
}

@Override
public CommandType getType() {
return CommandType.GENERIC;
public int getType() {
return GENERIC;
}

@Override
public SenderType getSenderType() {
return SenderType.BOTH;
public int getSenderType() {
return BOTH;
}
}
10 changes: 5 additions & 5 deletions src/main/java/me/despical/kotl/command/admin/EditCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public int getMinimumArguments() {

@Override
public void execute(CommandSender sender, String label, String[] args) {
Arena arena = ArenaRegistry.getArena(args[0]);
final Arena arena = ArenaRegistry.getArena(args[0]);

if (arena == null) {
sender.sendMessage(chatManager.prefixedMessage("commands.no_arena_like_that"));
Expand All @@ -48,12 +48,12 @@ public String getTutorial() {
}

@Override
public CommandType getType() {
return CommandType.GENERIC;
public int getType() {
return GENERIC;
}

@Override
public SenderType getSenderType() {
return SenderType.PLAYER;
public int getSenderType() {
return PLAYER;
}
}
12 changes: 5 additions & 7 deletions src/main/java/me/despical/kotl/command/admin/HelpCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,9 @@ public void execute(CommandSender sender, String label, String[] args) {
sender.sendMessage("");
sender.sendMessage(chatManager.coloredRawMessage("&3&l---- King of the Ladder Admin Commands ----"));
sender.sendMessage("");
sender.sendMessage(chatManager.coloredRawMessage("&3Join our Discord server: &bhttps://discord.gg/rVkaGmyszE"));
sender.sendMessage("");

for (SubCommand subCommand : plugin.getCommandHandler().getSubCommands()) {
if (subCommand.getType() == SubCommand.CommandType.GENERIC) {
if (subCommand.getType() == GENERIC) {
String usage = "/" + label + " " + subCommand.getName() + (subCommand.getPossibleArguments() != null ? " " + subCommand.getPossibleArguments() : "");

if (sender instanceof Player) {
Expand Down Expand Up @@ -85,12 +83,12 @@ public String getTutorial() {
}

@Override
public CommandType getType() {
return CommandType.HIDDEN;
public int getType() {
return HIDDEN;
}

@Override
public SenderType getSenderType() {
return SenderType.BOTH;
public int getSenderType() {
return BOTH;
}
}
12 changes: 6 additions & 6 deletions src/main/java/me/despical/kotl/command/admin/ListCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,14 @@ public int getMinimumArguments() {

@Override
public void execute(CommandSender sender, String label, String[] args) {
Set<Arena> arenas = ArenaRegistry.getArenas();
final Set<Arena> arenas = ArenaRegistry.getArenas();

if (arenas.isEmpty()) {
sender.sendMessage(chatManager.prefixedMessage("commands.list_command.no_arenas_created"));
return;
}

String arenaNames = arenas.stream().map(Arena::getId).collect(Collectors.joining(", "));
final String arenaNames = arenas.stream().map(Arena::getId).collect(Collectors.joining(", "));
sender.sendMessage(chatManager.prefixedMessage("commands.list_command.format").replace("%list%", arenaNames));
}

Expand All @@ -50,12 +50,12 @@ public String getTutorial() {
}

@Override
public CommandType getType() {
return CommandType.GENERIC;
public int getType() {
return GENERIC;
}

@Override
public SenderType getSenderType() {
return SenderType.BOTH;
public int getSenderType() {
return BOTH;
}
}
12 changes: 6 additions & 6 deletions src/main/java/me/despical/kotl/command/admin/ReloadCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public int getMinimumArguments() {
public void execute(CommandSender sender, String label, String[] args) {
LogUtils.log("Initialized plugin reload by {0}.", sender.getName());

long start = System.currentTimeMillis();
final long start = System.currentTimeMillis();

plugin.reloadConfig();
plugin.getChatManager().reloadConfig();
Expand All @@ -46,6 +46,7 @@ public void execute(CommandSender sender, String label, String[] args) {
LogUtils.log("Stopping arena called {0}.", arena.getId());

arena.deleteHologram();
arena.getScoreboardManager().stopAllScoreboards();

for (Player player : arena.getPlayers()) {
player.setWalkSpeed(0.2f);
Expand All @@ -59,7 +60,6 @@ public void execute(CommandSender sender, String label, String[] args) {
}

arena.doBarAction(Arena.BarAction.REMOVE, player);
arena.getScoreboardManager().removeScoreboard(player);
AttributeUtils.resetAttackCooldown(player);
}

Expand All @@ -79,12 +79,12 @@ public String getTutorial() {
}

@Override
public CommandType getType() {
return CommandType.GENERIC;
public int getType() {
return GENERIC;
}

@Override
public SenderType getSenderType() {
return SenderType.BOTH;
public int getSenderType() {
return BOTH;
}
}
14 changes: 7 additions & 7 deletions src/main/java/me/despical/kotl/command/player/StatsCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,15 @@ public int getMinimumArguments() {

@Override
public void execute(CommandSender sender, String label, String[] args) {
Player player = args.length == 0 ? (Player) sender : plugin.getServer().getPlayer(args[0]);
final Player player = args.length == 0 ? (Player) sender : plugin.getServer().getPlayer(args[0]);

if (player == null) {
sender.sendMessage(chatManager.prefixedMessage("commands.player_not_found"));
return;
}

User user = plugin.getUserManager().getUser(player);
String path = "commands.stats_command.";
final User user = plugin.getUserManager().getUser(player);
final String path = "commands.stats_command.";

if (player.equals(sender)) {
sender.sendMessage(chatManager.message(path + "header", player));
Expand All @@ -56,12 +56,12 @@ public String getTutorial() {
}

@Override
public CommandType getType() {
return CommandType.HIDDEN;
public int getType() {
return HIDDEN;
}

@Override
public SubCommand.SenderType getSenderType() {
return SubCommand.SenderType.PLAYER;
public int getSenderType() {
return PLAYER;
}
}
Loading

0 comments on commit 0d924e6

Please sign in to comment.