Updated to latest changes from private repo
parent
d8a895f7f3
commit
bc4e7d5aab
2
pom.xml
2
pom.xml
|
@ -5,7 +5,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>xyz.etztech</groupId>
|
<groupId>xyz.etztech</groupId>
|
||||||
<artifactId>mixtape</artifactId>
|
<artifactId>Mixtape</artifactId>
|
||||||
<version>1.0</version>
|
<version>1.0</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,8 @@ public final class Mixtape extends JavaPlugin {
|
||||||
private static Mixtape instance;
|
private static Mixtape instance;
|
||||||
public static FileConfiguration config;
|
public static FileConfiguration config;
|
||||||
|
|
||||||
|
private static int loops;
|
||||||
|
|
||||||
private static Map<String, Map<String, String>> chatAliases = new HashMap<>();
|
private static Map<String, Map<String, String>> chatAliases = new HashMap<>();
|
||||||
private static Map<String, Map<String, String>> commandAliases = new HashMap<>();
|
private static Map<String, Map<String, String>> commandAliases = new HashMap<>();
|
||||||
private static boolean global;
|
private static boolean global;
|
||||||
|
@ -45,6 +47,7 @@ public final class Mixtape extends JavaPlugin {
|
||||||
public void reloadConfig() {
|
public void reloadConfig() {
|
||||||
super.reloadConfig();
|
super.reloadConfig();
|
||||||
config = Bukkit.getPluginManager().getPlugin("Mixtape").getConfig();
|
config = Bukkit.getPluginManager().getPlugin("Mixtape").getConfig();
|
||||||
|
loops = config.getInt("loop");
|
||||||
validate();
|
validate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,6 +95,10 @@ public final class Mixtape extends JavaPlugin {
|
||||||
global = bool;
|
global = bool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getLoops() {
|
||||||
|
return loops;
|
||||||
|
}
|
||||||
|
|
||||||
private void validate() {
|
private void validate() {
|
||||||
List<String> errors = new ArrayList<>();
|
List<String> errors = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -13,10 +13,7 @@ import org.bukkit.event.server.ServerCommandEvent;
|
||||||
import xyz.etztech.mixtape.Mixtape;
|
import xyz.etztech.mixtape.Mixtape;
|
||||||
import xyz.etztech.mixtape.MixtapeUtil;
|
import xyz.etztech.mixtape.MixtapeUtil;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.*;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@ -25,6 +22,8 @@ public class CommandPreprocessListener implements Listener {
|
||||||
private final String ERROR = "Mixtape/Error";
|
private final String ERROR = "Mixtape/Error";
|
||||||
private final Pattern PATTERN = Pattern.compile("<([^>]+)>");
|
private final Pattern PATTERN = Pattern.compile("<([^>]+)>");
|
||||||
|
|
||||||
|
private static Map<String, Integer> loops = new HashMap<>();
|
||||||
|
|
||||||
Mixtape plugin;
|
Mixtape plugin;
|
||||||
|
|
||||||
public CommandPreprocessListener(Mixtape plugin) {
|
public CommandPreprocessListener(Mixtape plugin) {
|
||||||
|
@ -78,13 +77,20 @@ public class CommandPreprocessListener implements Listener {
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
|
|
||||||
|
if (!increment(player.getUniqueId().toString())) {
|
||||||
|
player.sendMessage(ChatColor.RED + "You went too deep! What is this, Inception?");
|
||||||
|
loops.put(player.getUniqueId().toString(), 0);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Command aliases
|
// Command aliases
|
||||||
Map<String, String> commands = Mixtape.getCommandAliases(player.getUniqueId().toString());
|
Map<String, String> commands = Mixtape.getCommandAliases(player.getUniqueId().toString());
|
||||||
for (String alias : commands.keySet()) {
|
for (String alias : commands.keySet()) {
|
||||||
if (alias.equalsIgnoreCase(base)) {
|
if (alias.equalsIgnoreCase(base)) {
|
||||||
String resolved = resolve(commands.get(alias), args);
|
String resolved = resolve(commands.get(alias), args);
|
||||||
|
resolved = resolved.startsWith("/") ? resolved : "/" + resolved;
|
||||||
if (!ERROR.equalsIgnoreCase(resolved)) {
|
if (!ERROR.equalsIgnoreCase(resolved)) {
|
||||||
Bukkit.dispatchCommand(player, resolved);
|
player.chat(resolved);
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(ChatColor.RED + usage(base, commands.get(alias)));
|
player.sendMessage(ChatColor.RED + usage(base, commands.get(alias)));
|
||||||
}
|
}
|
||||||
|
@ -106,6 +112,7 @@ public class CommandPreprocessListener implements Listener {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
loops.put(player.getUniqueId().toString(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -136,5 +143,13 @@ public class CommandPreprocessListener implements Listener {
|
||||||
return template.trim() + " " + StringUtils.join(Arrays.copyOfRange(parts, idx, parts.length), " ");
|
return template.trim() + " " + StringUtils.join(Arrays.copyOfRange(parts, idx, parts.length), " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean increment(String uuid) {
|
||||||
|
Integer current = loops.get(uuid);
|
||||||
|
current = current == null ? 1 : ++current;
|
||||||
|
loops.put(uuid, current);
|
||||||
|
return current <= Mixtape.getLoops();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,3 +4,7 @@
|
||||||
aliases:
|
aliases:
|
||||||
- alias: /donator
|
- alias: /donator
|
||||||
command: /lp user <username> parent addtemp donator <time> accumulate
|
command: /lp user <username> parent addtemp donator <time> accumulate
|
||||||
|
|
||||||
|
|
||||||
|
# How many times can an alias call another alias before aborting?
|
||||||
|
loop: 5
|
Loading…
Reference in New Issue