diff --git a/pom.xml b/pom.xml
index 7b4f34f..cb9feb3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
xyz.etztech
Mixtape
- 2.1
+ 2.2
jar
Mixtape
@@ -70,7 +70,7 @@
org.spigotmc
spigot-api
- 1.14.3-R0.1-SNAPSHOT
+ 1.15.2-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/xyz/etztech/mixtape/Mixtape.java b/src/main/java/xyz/etztech/mixtape/Mixtape.java
index 6b03502..aa5f6b1 100644
--- a/src/main/java/xyz/etztech/mixtape/Mixtape.java
+++ b/src/main/java/xyz/etztech/mixtape/Mixtape.java
@@ -5,7 +5,6 @@ import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
import xyz.etztech.mixtape.commands.CommandAlias;
import xyz.etztech.mixtape.commands.CommandMixtape;
-import xyz.etztech.mixtape.commands.CommandSlashAlias;
import xyz.etztech.mixtape.listeners.CommandPreprocessListener;
import java.util.ArrayList;
@@ -35,8 +34,8 @@ public final class Mixtape extends JavaPlugin {
database = new Database(this);
this.getCommand("mixtape").setExecutor(new CommandMixtape(this));
- this.getCommand("alias").setExecutor(new CommandAlias(this));
- this.getCommand("/alias").setExecutor(new CommandSlashAlias(this));
+ this.getCommand("alias").setExecutor(new CommandAlias(this, Database.AliasType.CHAT));
+ this.getCommand("/alias").setExecutor(new CommandAlias(this, Database.AliasType.COMMAND));
getServer().getPluginManager().registerEvents(new CommandPreprocessListener(this), this);
}
diff --git a/src/main/java/xyz/etztech/mixtape/MixtapeUtil.java b/src/main/java/xyz/etztech/mixtape/MixtapeUtil.java
index 91231dc..cfdbac9 100644
--- a/src/main/java/xyz/etztech/mixtape/MixtapeUtil.java
+++ b/src/main/java/xyz/etztech/mixtape/MixtapeUtil.java
@@ -22,7 +22,7 @@ public class MixtapeUtil {
if (permission.getPermission().startsWith("mixtape.limit.") && permission.getValue()) {
try {
int p = Integer.parseInt(permission.getPermission().replaceFirst("mixtape.limit.", ""));
- limit = limit > p ? limit : p;
+ limit = Math.max(limit, p);
} catch (Exception ignored) {}
}
}
diff --git a/src/main/java/xyz/etztech/mixtape/commands/CommandAlias.java b/src/main/java/xyz/etztech/mixtape/commands/CommandAlias.java
index 96b2676..58763e6 100644
--- a/src/main/java/xyz/etztech/mixtape/commands/CommandAlias.java
+++ b/src/main/java/xyz/etztech/mixtape/commands/CommandAlias.java
@@ -1,6 +1,7 @@
package xyz.etztech.mixtape.commands;
import org.apache.commons.lang.StringUtils;
+import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@@ -15,9 +16,11 @@ import java.util.Arrays;
public class CommandAlias implements CommandExecutor {
Mixtape plugin;
+ Database.AliasType aliasType;
- public CommandAlias(Mixtape plugin) {
+ public CommandAlias(Mixtape plugin, Database.AliasType aliasType) {
this.plugin = plugin;
+ this.aliasType = aliasType;
}
@Override
@@ -27,13 +30,17 @@ public class CommandAlias implements CommandExecutor {
return true;
}
Player player = (Player) sender;
- if (!player.hasPermission("mixtape.alias.chat")) {
- player.sendMessage(ChatColor.RED + "You do not have permission to create chat aliases.");
+
+ boolean isChat = this.aliasType == Database.AliasType.CHAT;
+ String aliasType = isChat ? "chat" : "command";
+
+ if (!player.hasPermission(String.format("mixtape.alias.%s", aliasType))) {
+ player.sendMessage(ChatColor.RED + String.format("You do not have permission to create %s aliases.", aliasType));
return true;
}
if (args.length < 2) {
- player.sendMessage(ChatColor.RED + "/alias ");
+ player.sendMessage(ChatColor.RED + (isChat ? "/" : "//") + String.format("alias <%s>", aliasType));
return true;
}
@@ -46,9 +53,13 @@ public class CommandAlias implements CommandExecutor {
String command = StringUtils.join(Arrays.copyOfRange(args, 1, args.length), " ");
- Mixtape.getDatabase().insert(player.getUniqueId().toString(), alias, command, Database.AliasType.CHAT);
- player.sendMessage(ChatColor.GREEN + "Chat alias created.");
+ if (command.length() > 200) {
+ player.sendMessage(ChatColor.RED + "This alias is too large. Aliases are limited to 200 characters.");
+ return true;
+ }
+ Mixtape.getDatabase().insert(player.getUniqueId().toString(), alias, command, isChat ? Database.AliasType.CHAT : Database.AliasType.COMMAND);
+ player.sendMessage(ChatColor.GREEN + String.format("%s alias created.", StringUtils.capitalize(aliasType)));
return true;
}
}
diff --git a/src/main/java/xyz/etztech/mixtape/commands/CommandSlashAlias.java b/src/main/java/xyz/etztech/mixtape/commands/CommandSlashAlias.java
deleted file mode 100644
index 4607770..0000000
--- a/src/main/java/xyz/etztech/mixtape/commands/CommandSlashAlias.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package xyz.etztech.mixtape.commands;
-
-import org.apache.commons.lang.StringUtils;
-import org.bukkit.ChatColor;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-import xyz.etztech.mixtape.Database;
-import xyz.etztech.mixtape.Mixtape;
-import xyz.etztech.mixtape.MixtapeUtil;
-
-import java.util.Arrays;
-
-public class CommandSlashAlias implements CommandExecutor {
-
- Mixtape plugin;
-
- public CommandSlashAlias(Mixtape plugin) {
- this.plugin = plugin;
- }
-
- @Override
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
- if (!(sender instanceof Player)) {
- sender.sendMessage(ChatColor.RED + "This command is not supported in Console.");
- return true;
- }
- Player player = (Player) sender;
- if (!player.hasPermission("mixtape.alias.command")) {
- player.sendMessage(ChatColor.RED + "You do not have permission to create command aliases.");
- return true;
- }
-
- if (args.length < 2) {
- player.sendMessage(ChatColor.RED + "//alias ");
- return true;
- }
-
- if (MixtapeUtil.isLimited(player)) {
- player.sendMessage(ChatColor.RED + "You have hit your limit of allowed aliases. Delete one and try again.");
- return true;
- }
-
- String alias = MixtapeUtil.stripSlash(args[0]);
-
- String command = StringUtils.join(Arrays.copyOfRange(args, 1, args.length), " ");
-
- Mixtape.getDatabase().insert(player.getUniqueId().toString(), alias, command, Database.AliasType.COMMAND);
- player.sendMessage(ChatColor.GREEN + "Command alias created.");
-
- return true;
- }
-}
diff --git a/src/main/java/xyz/etztech/mixtape/listeners/CommandPreprocessListener.java b/src/main/java/xyz/etztech/mixtape/listeners/CommandPreprocessListener.java
index 63e8d54..14cd259 100644
--- a/src/main/java/xyz/etztech/mixtape/listeners/CommandPreprocessListener.java
+++ b/src/main/java/xyz/etztech/mixtape/listeners/CommandPreprocessListener.java
@@ -52,15 +52,14 @@ public class CommandPreprocessListener implements Listener {
String[] args = command.trim().length() == base.trim().length() ? new String[0] : command.substring(base.length()+1).split(" ");
event.setCancelled(handleEvent(event.getPlayer(), base, args));
-
}
private boolean handleEvent(CommandSender sender, String base, String[] args) {
// Global aliases
if (Mixtape.getGlobal()) {
- List> configs = plugin.getConfig().getList("aliases");
- for (int i = 0; i < configs.size(); i++) {
- LinkedHashMap config = (LinkedHashMap) configs.get(i);
+ List> configs = plugin.getConfig().getList("aliases", new ArrayList<>());
+ for (Object c : configs) {
+ LinkedHashMap config = (LinkedHashMap) c;
String configBase = MixtapeUtil.stripSlash(config.get("alias"));
if (configBase.equalsIgnoreCase(base)) {
String configCommand = MixtapeUtil.stripSlash(config.get("command"));