mirror of
https://github.com/BGHDDevelopment/PlayerBalancer.git
synced 2024-11-09 04:20:32 +01:00
Finished implementation of some channels, fixed some stuff up, added regex caching
This commit is contained in:
parent
0e5ee0e2e2
commit
8db9300820
@ -91,12 +91,12 @@ public class PlayerBalancer extends Plugin {
|
||||
}
|
||||
|
||||
try {
|
||||
CommentedConfigurationNode node = loader.load();
|
||||
settings = node.getValue(TypeToken.of(SettingsHolder.class));
|
||||
|
||||
mainCommand = new MainCommand(this);
|
||||
getProxy().getPluginManager().registerCommand(this, mainCommand);
|
||||
|
||||
CommentedConfigurationNode node = loader.load();
|
||||
settings = node.getValue(TypeToken.of(SettingsHolder.class));
|
||||
|
||||
if (settings.getGeneralProps().isEnabled()) {
|
||||
if (settings.getGeneralProps().isSilent()) {
|
||||
getLogger().setLevel(Level.WARNING);
|
||||
|
@ -40,7 +40,7 @@ public abstract class AbstractMoveCommand extends Command {
|
||||
MessageUtils.send(player, messages.getInvalidInputMessage());
|
||||
} else {
|
||||
ServerInfo server = Iterables.get(target.getServers(), number - 1);
|
||||
ConnectionIntent.direct(plugin, player, server, (response, throwable) -> {});
|
||||
ConnectionIntent.direct(plugin, player, server, null);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
MessageUtils.send(player, messages.getInvalidInputMessage());
|
||||
|
@ -34,7 +34,7 @@ public class MainCommand extends Command {
|
||||
if (sender.hasPermission("playerbalancer.admin")) {
|
||||
sender.sendMessage(new ComponentBuilder("Reloading the configuration, this may take a while...").color(ChatColor.GREEN).create());
|
||||
if (plugin.reloadPlugin()) {
|
||||
sender.sendMessage(new ComponentBuilder("The plugin has successfully reloaded").color(ChatColor.GREEN).create());
|
||||
sender.sendMessage(new ComponentBuilder("The plugin has been successfully reloaded").color(ChatColor.GREEN).create());
|
||||
} else {
|
||||
sender.sendMessage(new ComponentBuilder("Something went badly while reloading the plugin").color(ChatColor.RED).create());
|
||||
}
|
||||
|
@ -146,11 +146,22 @@ public class ManageCommand extends Command {
|
||||
.color(ChatColor.GRAY)
|
||||
.append(section.getCommand().getName())
|
||||
.color(ChatColor.AQUA)
|
||||
.event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Permission: ")
|
||||
.event(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
|
||||
new ComponentBuilder("Name: ")
|
||||
.color(ChatColor.GRAY)
|
||||
.append(section.getCommand().getName())
|
||||
.color(ChatColor.AQUA)
|
||||
.append("\n")
|
||||
|
||||
.append("Permission: ")
|
||||
.color(ChatColor.GRAY)
|
||||
.append("\"")
|
||||
.append(section.getCommand().getPermission())
|
||||
.color(ChatColor.AQUA)
|
||||
.append(section.getCommand().getPermission())
|
||||
.color(ChatColor.RED)
|
||||
.append("\"")
|
||||
.color(ChatColor.AQUA)
|
||||
|
||||
.append("\n")
|
||||
.append("Aliases: ")
|
||||
.color(ChatColor.GRAY)
|
||||
|
@ -116,6 +116,8 @@ public abstract class ConnectionIntent {
|
||||
plugin.getProxy().getScheduler().schedule(plugin, () -> {
|
||||
PlayerLocker.unlock(player);
|
||||
}, 5, TimeUnit.SECONDS);
|
||||
|
||||
if (callback != null)
|
||||
callback.done(result, throwable);
|
||||
});
|
||||
}
|
||||
|
@ -20,7 +20,6 @@ import net.md_5.bungee.event.EventHandler;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class PluginMessageListener implements Listener {
|
||||
private final PlayerBalancer plugin;
|
||||
@ -212,10 +211,12 @@ public class PluginMessageListener implements Listener {
|
||||
if (server == null)
|
||||
break;
|
||||
|
||||
PlayerLocker.lock(player);
|
||||
plugin.getProxy().getScheduler().schedule(plugin, () -> {
|
||||
PlayerLocker.unlock(player);
|
||||
}, 5, TimeUnit.SECONDS);
|
||||
ConnectionIntent.direct(
|
||||
plugin,
|
||||
player,
|
||||
server,
|
||||
null
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import com.google.common.io.ByteStreams;
|
||||
import com.jaimemartz.playerbalancer.PlayerBalancer;
|
||||
import com.jaimemartz.playerbalancer.section.ServerSection;
|
||||
import com.jaimemartz.playerbalancer.settings.props.features.ServerCheckerProps;
|
||||
import com.jaimemartz.playerbalancer.utils.RegExUtils;
|
||||
import net.md_5.bungee.api.config.ServerInfo;
|
||||
import net.md_5.bungee.api.connection.Server;
|
||||
import net.md_5.bungee.api.event.PluginMessageEvent;
|
||||
@ -108,7 +109,7 @@ public class StatusManager implements Listener {
|
||||
}
|
||||
|
||||
for (String pattern : props.getMarkerDescs()) {
|
||||
if (status.getDescription().matches(pattern)) {
|
||||
if (RegExUtils.matches(status.getDescription(), pattern)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -32,4 +32,6 @@ public final class DigitUtils {
|
||||
|
||||
return Integer.parseInt(builder.toString());
|
||||
}
|
||||
|
||||
private DigitUtils() {}
|
||||
}
|
||||
|
@ -25,4 +25,6 @@ public final class MessageUtils {
|
||||
public static String revertColor(String string) {
|
||||
return string.replace(ChatColor.COLOR_CHAR, '&');
|
||||
}
|
||||
|
||||
private MessageUtils() {}
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
package com.jaimemartz.playerbalancer.utils;
|
||||
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public final class RegExUtils {
|
||||
private static final LoadingCache<String, Pattern> COMPILED_PATTERNS = CacheBuilder.newBuilder().build(new CacheLoader<String, Pattern>() {
|
||||
@Override
|
||||
public Pattern load(String string) throws Exception {
|
||||
return Pattern.compile(string);
|
||||
}
|
||||
});
|
||||
|
||||
public static Pattern getPattern(String regexp) {
|
||||
try {
|
||||
return COMPILED_PATTERNS.get(regexp);
|
||||
} catch (ExecutionException e) {
|
||||
throw new RuntimeException("Error while getting a pattern from the cache");
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean matches(String string, String expression) {
|
||||
return getMatcher(string, expression).matches();
|
||||
}
|
||||
|
||||
private static Matcher getMatcher(String string, String expression) {
|
||||
Pattern pattern = getPattern(expression);
|
||||
return pattern.matcher(string);
|
||||
}
|
||||
|
||||
private RegExUtils() {}
|
||||
}
|
@ -11,7 +11,7 @@
|
||||
|
||||
<name>PlayerBalancer Addon</name>
|
||||
<artifactId>playerbalancer-addon</artifactId>
|
||||
<version>1.3 for 2.1.3+</version>
|
||||
<version>1.3 for 2.1.4+</version>
|
||||
|
||||
<build>
|
||||
<finalName>PlayerBalancerAddon</finalName>
|
||||
|
@ -168,6 +168,7 @@ public class PluginMessageManager implements PluginMessageListener {
|
||||
public void bypassConnect(Player player, String server) {
|
||||
ByteArrayDataOutput out = ByteStreams.newDataOutput();
|
||||
out.writeUTF("BypassConnect");
|
||||
out.writeUTF(server);
|
||||
player.sendPluginMessage(plugin, "PlayerBalancer", out.toByteArray());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user