forked from SteamWar/SteamWar
Format code
This commit is contained in:
@@ -195,26 +195,28 @@ public class Persistent {
|
||||
CommandManager commandManager = proxy.getCommandManager();
|
||||
for (String alias : commandManager.getAliases()) {
|
||||
CommandMeta meta = commandManager.getCommandMeta(alias);
|
||||
if (meta != null && meta.getPlugin() == plugin)
|
||||
if (meta != null && meta.getPlugin() == plugin) {
|
||||
commandManager.unregister(meta);
|
||||
}
|
||||
}
|
||||
|
||||
proxy.getEventManager().unregisterListeners(plugin);
|
||||
proxy.getScheduler().tasksByPlugin(plugin).forEach(ScheduledTask::cancel);
|
||||
|
||||
container.getExecutorService().shutdown();
|
||||
if (!container.getExecutorService().awaitTermination(100, TimeUnit.MILLISECONDS))
|
||||
if (!container.getExecutorService().awaitTermination(100, TimeUnit.MILLISECONDS)) {
|
||||
logger.log(Level.WARNING, "ExecutorService termination took longer than 100ms, continuing.");
|
||||
}
|
||||
|
||||
for (Thread thread : Thread.getAllStackTraces().keySet()) {
|
||||
if (thread.getClass().getClassLoader() != classLoader)
|
||||
continue;
|
||||
if (thread.getClass().getClassLoader() != classLoader) continue;
|
||||
|
||||
thread.interrupt();
|
||||
thread.join(100);
|
||||
|
||||
if (thread.isAlive())
|
||||
if (thread.isAlive()) {
|
||||
logger.log(Level.WARNING, "Could not stop thread %s of plugin %s. Still running".formatted(thread.getName(), container.getDescription().getId()));
|
||||
}
|
||||
}
|
||||
|
||||
//TODO close all log handlers
|
||||
|
||||
@@ -65,8 +65,7 @@ public class Subserver {
|
||||
public static Subserver getSubserver(Player p) {
|
||||
synchronized (serverList) {
|
||||
for (int i = serverList.size() - 1; i >= 0; i--) {
|
||||
if (serverList.get(i).onServer(p))
|
||||
return serverList.get(i);
|
||||
if (serverList.get(i).onServer(p)) return serverList.get(i);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@@ -142,8 +141,9 @@ public class Subserver {
|
||||
public void stop() {
|
||||
try {
|
||||
long pid = process.pid();
|
||||
if (checkpoint)
|
||||
if (checkpoint) {
|
||||
pid = process.children().findAny().map(ProcessHandle::pid).orElse(pid);
|
||||
}
|
||||
|
||||
Runtime.getRuntime().exec(new String[]{"kill", "-SIGUSR1", Long.toString(pid)});
|
||||
} catch (IOException e) {
|
||||
@@ -156,8 +156,7 @@ public class Subserver {
|
||||
process.destroyForcibly();
|
||||
}
|
||||
|
||||
if (thread.isAlive())
|
||||
thread.join();
|
||||
if (thread.isAlive()) thread.join();
|
||||
} catch (InterruptedException e) {
|
||||
logger.log(Level.SEVERE, "Subserver stop interrupted!", e);
|
||||
Thread.currentThread().interrupt();
|
||||
@@ -186,8 +185,9 @@ public class Subserver {
|
||||
started = test.test(line);
|
||||
}
|
||||
|
||||
if (line == null)
|
||||
if (line == null) {
|
||||
throw new IOException(serverName + " did not start correctly!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -225,18 +225,18 @@ public class Subserver {
|
||||
} else {
|
||||
sendProgress(0);
|
||||
start(process.getInputStream(), line -> {
|
||||
if (line.contains("Loading libraries, please wait"))
|
||||
if (line.contains("Loading libraries, please wait")) {
|
||||
sendProgress(2);
|
||||
else if (line.contains("Starting Minecraft server on"))
|
||||
} else if (line.contains("Starting Minecraft server on")) {
|
||||
sendProgress(5);
|
||||
else if (line.contains("Preparing start region"))
|
||||
} else if (line.contains("Preparing start region")) {
|
||||
sendProgress(8);
|
||||
}
|
||||
return line.contains("Done (");
|
||||
});
|
||||
}
|
||||
|
||||
if (!started)
|
||||
return;
|
||||
if (!started) return;
|
||||
|
||||
sendProgress(10);
|
||||
for (Player cachedPlayer : cachedPlayers) {
|
||||
@@ -253,8 +253,7 @@ public class Subserver {
|
||||
} finally {
|
||||
unregister();
|
||||
shutdownCallback.run();
|
||||
if (ex != null)
|
||||
failureCallback.accept(ex);
|
||||
if (ex != null) failureCallback.accept(ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -84,8 +84,7 @@ public class SWCommand extends AbstractSWCommand<Chatter> {
|
||||
@Override
|
||||
public List<String> suggest(Invocation invocation) {
|
||||
String[] args = invocation.arguments();
|
||||
if (args.length == 0)
|
||||
args = new String[]{""};
|
||||
if (args.length == 0) args = new String[]{""};
|
||||
|
||||
return SWCommand.this.tabComplete(Chatter.of(invocation.source()), invocation.alias(), args);
|
||||
}
|
||||
@@ -99,8 +98,7 @@ public class SWCommand extends AbstractSWCommand<Chatter> {
|
||||
|
||||
@Override
|
||||
public void unregister() {
|
||||
if (command == null)
|
||||
return;
|
||||
if (command == null) return;
|
||||
|
||||
VelocityCore.getProxy().getCommandManager().unregister(name);
|
||||
DiscordBot.getCommands().remove(name);
|
||||
@@ -108,8 +106,7 @@ public class SWCommand extends AbstractSWCommand<Chatter> {
|
||||
|
||||
@Override
|
||||
public void register() {
|
||||
if (command == null)
|
||||
return;
|
||||
if (command == null) return;
|
||||
|
||||
VelocityCore.getProxy().getCommandManager().register(VelocityCore.getProxy().getCommandManager().metaBuilder(name).aliases(aliases).plugin(VelocityCore.get()).build(), command);
|
||||
DiscordBot.getCommands().put(name, this);
|
||||
|
||||
@@ -86,10 +86,11 @@ public interface Chatter {
|
||||
|
||||
default <T> T withPlayerOrOffline(Function<Player, T> withPlayer, Supplier<T> withOffline) {
|
||||
Player player = getPlayer();
|
||||
if (player == null)
|
||||
if (player == null) {
|
||||
return withOffline.get();
|
||||
else
|
||||
} else {
|
||||
return withPlayer.apply(player);
|
||||
}
|
||||
}
|
||||
|
||||
default void withPlayerOrOffline(Consumer<Player> withPlayer, Runnable withOffline) {
|
||||
@@ -128,10 +129,12 @@ public interface Chatter {
|
||||
|
||||
default void send(boolean prefixed, Message onHover, ClickEvent onClick, Message message) {
|
||||
Component msg = parse(prefixed, message);
|
||||
if (onHover != null)
|
||||
if (onHover != null) {
|
||||
msg = msg.hoverEvent(HoverEvent.showText(parse(false, onHover)));
|
||||
if (onClick != null)
|
||||
}
|
||||
if (onClick != null) {
|
||||
msg = msg.clickEvent(onClick);
|
||||
}
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
@@ -167,8 +170,9 @@ public interface Chatter {
|
||||
Locale locale = getLocale();
|
||||
ResourceBundle resourceBundle = SteamwarResourceBundle.getResourceBundle(locale);
|
||||
String pattern = "";
|
||||
if (prefixed)
|
||||
if (prefixed) {
|
||||
pattern = resourceBundle.getObject("PREFIX") + " ";
|
||||
}
|
||||
pattern += (String) resourceBundle.getObject(message.format());
|
||||
|
||||
MessageFormat format = new MessageFormat(pattern, locale);
|
||||
@@ -200,8 +204,7 @@ public interface Chatter {
|
||||
}
|
||||
|
||||
static Chatter of(CommandSource sender) {
|
||||
if (sender instanceof Player player)
|
||||
return of(player);
|
||||
if (sender instanceof Player player) return of(player);
|
||||
|
||||
//Console
|
||||
return new PlayerlessChatter() {
|
||||
@@ -232,8 +235,7 @@ public interface Chatter {
|
||||
|
||||
static Chatter of(UUID uuid, boolean playerlessChatShown) {
|
||||
Player player = VelocityCore.getProxy().getPlayer(uuid).orElse(null);
|
||||
if (player != null)
|
||||
return Chatter.of(player);
|
||||
if (player != null) return Chatter.of(player);
|
||||
|
||||
return new PlayerlessChatter() {
|
||||
@Override
|
||||
|
||||
@@ -46,8 +46,7 @@ public class PlayerChatter implements Chatter {
|
||||
|
||||
@Override
|
||||
public boolean chatShown() {
|
||||
if (!player.hasSentPlayerSettings())
|
||||
return false;
|
||||
if (!player.hasSentPlayerSettings()) return false;
|
||||
|
||||
return player.getPlayerSettings().getChatMode() == PlayerSettings.ChatMode.SHOWN;
|
||||
}
|
||||
|
||||
@@ -36,8 +36,7 @@ public class SteamwarResourceBundle extends PropertyResourceBundle {
|
||||
private static synchronized ResourceBundle getResourceBundle(String locale, ResourceBundle parent) {
|
||||
return bundles.computeIfAbsent(locale, locale1 -> {
|
||||
InputStream inputStream = Message.class.getResourceAsStream(BASE_PATH + ("".equals(locale) ? "" : "_" + locale) + ".properties");
|
||||
if (inputStream == null)
|
||||
return parent;
|
||||
if (inputStream == null) return parent;
|
||||
try {
|
||||
return new SteamwarResourceBundle(inputStream, parent);
|
||||
} catch (IOException e) {
|
||||
|
||||
@@ -50,8 +50,7 @@ public class ArenaMode {
|
||||
allModes.clear();
|
||||
|
||||
File folder = new File(VelocityCore.get().getDataDirectory().getParent().toFile(), "FightSystem");
|
||||
if (!folder.exists())
|
||||
return;
|
||||
if (!folder.exists()) return;
|
||||
|
||||
GameModeConfig.init();
|
||||
SchematicType.init();
|
||||
@@ -82,8 +81,9 @@ public class ArenaMode {
|
||||
public static List<String> getAllChatNames(boolean historic) {
|
||||
List<String> chatNames = new LinkedList<>();
|
||||
for (GameModeConfig<String, String> mode : byInternal.values()) {
|
||||
if (mode.isActive() && historic == mode.Server.Historic)
|
||||
if (mode.isActive() && historic == mode.Server.Historic) {
|
||||
chatNames.addAll(mode.Server.ChatNames);
|
||||
}
|
||||
}
|
||||
return chatNames;
|
||||
}
|
||||
|
||||
@@ -34,15 +34,16 @@ public class Broadcaster {
|
||||
private int lastBroadCast = 0;
|
||||
|
||||
public Broadcaster() {
|
||||
if (!broadcasts.isEmpty())
|
||||
if (!broadcasts.isEmpty()) {
|
||||
VelocityCore.schedule(this::broadcast).repeat(10, TimeUnit.MINUTES).schedule();
|
||||
}
|
||||
}
|
||||
|
||||
private void broadcast() {
|
||||
if (!VelocityCore.getProxy().getAllPlayers().isEmpty())
|
||||
if (!VelocityCore.getProxy().getAllPlayers().isEmpty()) {
|
||||
Chatter.broadcast().system("PLAIN_STRING", broadcasts.get(lastBroadCast++));
|
||||
}
|
||||
|
||||
if (lastBroadCast == broadcasts.size())
|
||||
lastBroadCast = 0;
|
||||
if (lastBroadCast == broadcasts.size()) lastBroadCast = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,21 +53,20 @@ public class ErrorLogger extends AbstractAppender {
|
||||
|
||||
@Override
|
||||
public void append(LogEvent event) {
|
||||
if (event.getLevel().intLevel() > Level.WARN.intLevel())
|
||||
return;
|
||||
if (event.getLevel().intLevel() > Level.WARN.intLevel()) return;
|
||||
|
||||
String message = event.getMessage().getFormattedMessage();
|
||||
for (String reason : filteredMessages)
|
||||
if (message.contains(reason))
|
||||
return;
|
||||
for (String reason : filteredMessages) {
|
||||
if (message.contains(reason)) return;
|
||||
}
|
||||
|
||||
ByteArrayOutputStream stacktraceOutput = new ByteArrayOutputStream();
|
||||
if (event.getThrown() != null)
|
||||
event.getThrown().printStackTrace(new PrintStream(stacktraceOutput));
|
||||
String stacktrace = stacktraceOutput.toString();
|
||||
for (String reason : filteredStacktraces)
|
||||
if (stacktrace.contains(reason))
|
||||
return;
|
||||
for (String reason : filteredStacktraces) {
|
||||
if (stacktrace.contains(reason)) return;
|
||||
}
|
||||
|
||||
SWException.log(message, stacktrace);
|
||||
}
|
||||
|
||||
@@ -97,11 +97,9 @@ public class EventStarter {
|
||||
|
||||
private EventFight nextFight(Queue<EventFight> fights) {
|
||||
EventFight next = fights.peek();
|
||||
if (next == null)
|
||||
return null;
|
||||
if (next == null) return null;
|
||||
|
||||
if (!next.getStartTime().before(new Timestamp(System.currentTimeMillis())))
|
||||
return null;
|
||||
if (!next.getStartTime().before(new Timestamp(System.currentTimeMillis()))) return null;
|
||||
|
||||
return fights.poll();
|
||||
}
|
||||
|
||||
@@ -54,8 +54,7 @@ public abstract class Node {
|
||||
|
||||
public static Node getNode() {
|
||||
for (Node node : nodes) {
|
||||
if (node.belowLoadLimit)
|
||||
return node;
|
||||
if (node.belowLoadLimit) return node;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -99,10 +98,11 @@ public abstract class Node {
|
||||
}
|
||||
|
||||
protected void constructServerstart(File directory, List<String> cmd, String serverJar, String worldDir, String levelName, int port, String... dParams) {
|
||||
if (JAVA_8.contains(serverJar))
|
||||
if (JAVA_8.contains(serverJar)) {
|
||||
cmd.add("/usr/lib/jvm/openj9-8/bin/java");
|
||||
else
|
||||
} else {
|
||||
cmd.add("/usr/lib/jvm/openj9-21/bin/java");
|
||||
}
|
||||
|
||||
for (String param : dParams) {
|
||||
cmd.add("-D" + param);
|
||||
@@ -203,14 +203,16 @@ public abstract class Node {
|
||||
protected void calcLoadLimit() {
|
||||
try {
|
||||
Process process = prepareExecution("cat /proc/meminfo").start();
|
||||
if (!process.waitFor(1, TimeUnit.SECONDS))
|
||||
if (!process.waitFor(1, TimeUnit.SECONDS)) {
|
||||
throw new IOException(hostname + " timeout");
|
||||
}
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
|
||||
calcLoadLimit(reader);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
if (belowLoadLimit)
|
||||
if (belowLoadLimit) {
|
||||
VelocityCore.getLogger().log(Level.SEVERE, "Could read remote load", e);
|
||||
}
|
||||
belowLoadLimit = false;
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
|
||||
@@ -166,10 +166,11 @@ public class ServerStarter {
|
||||
if (!world.exists()) {
|
||||
File storage = new File(version.getWorldFolder(WORLDS_STORAGE_BASE_PATH), worldName);
|
||||
|
||||
if (storage.exists())
|
||||
if (storage.exists()) {
|
||||
node.execute("mv", storage.getPath(), world.getPath());
|
||||
else
|
||||
} else {
|
||||
copyWorld(node, new File(directory, "Bauwelt").getPath(), world.getPath());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -208,12 +209,10 @@ public class ServerStarter {
|
||||
|
||||
// Stop existing build server
|
||||
startCondition = () -> {
|
||||
if (startingBau(owner))
|
||||
return false;
|
||||
if (startingBau(owner)) return false;
|
||||
|
||||
Bauserver subserver = Bauserver.get(owner.getUniqueId());
|
||||
if (subserver != null && subserver.isStarted())
|
||||
subserver.stop();
|
||||
if (subserver != null && subserver.isStarted()) subserver.stop();
|
||||
|
||||
return !startingBau(owner);
|
||||
};
|
||||
@@ -261,8 +260,9 @@ public class ServerStarter {
|
||||
public ServerStarter send(Player player) {
|
||||
playersToSend.add(player);
|
||||
|
||||
if (!(responsible instanceof Player))
|
||||
if (!(responsible instanceof Player)) {
|
||||
responsible = player;
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
@@ -275,8 +275,7 @@ public class ServerStarter {
|
||||
public void start() {
|
||||
VelocityCore.schedule(() -> {
|
||||
synchronized (responsible) {
|
||||
if (!startCondition.getAsBoolean())
|
||||
return;
|
||||
if (!startCondition.getAsBoolean()) return;
|
||||
|
||||
int port = portrange.freePort();
|
||||
String serverName = serverNameProvider.apply(port);
|
||||
@@ -285,21 +284,24 @@ public class ServerStarter {
|
||||
if (node == null) {
|
||||
node = Node.getNode();
|
||||
if (node == null) {
|
||||
for (Player p : playersToSend)
|
||||
for (Player p : playersToSend) {
|
||||
Chatter.of(p).system("SERVER_START_OVERLOAD");
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (worldName == null)
|
||||
if (worldName == null) {
|
||||
worldName = serverToWorldName(serverName);
|
||||
}
|
||||
|
||||
worldSetup.run();
|
||||
arguments.put("logPath", worldName);
|
||||
|
||||
File checkpointDir = new File("/tmp/" + System.getProperty("user.name") + ".checkpoints/" + directory.getName() + "/" + worldName);
|
||||
if (checkpoint)
|
||||
if (checkpoint) {
|
||||
arguments.put("checkpoint", checkpointDir.getPath());
|
||||
}
|
||||
|
||||
((VelocityViaConfig) Via.getConfig()).getVelocityServerProtocols().put(serverName, version.getProtocolVersion().getProtocol());
|
||||
if (checkpoint && checkpointDir.exists()) {
|
||||
@@ -371,9 +373,7 @@ public class ServerStarter {
|
||||
|
||||
private void increment() {
|
||||
current++;
|
||||
|
||||
if (current == end)
|
||||
current = start;
|
||||
if (current == end) current = start;
|
||||
}
|
||||
|
||||
private synchronized int freePort() {
|
||||
|
||||
@@ -53,7 +53,8 @@ public class SubserverSystem {
|
||||
|
||||
public static void sendPlayer(Subserver subserver, Player player) {
|
||||
subserver.sendPlayer(player);
|
||||
if (!subserver.isStarted() && FightInfoHandler.onLobby(player))
|
||||
if (!subserver.isStarted() && FightInfoHandler.onLobby(player)) {
|
||||
NetworkSender.send(player, new StartingServerPacket(SteamwarUser.get(player.getUniqueId()).getId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,8 +206,9 @@ public class VelocityCore implements ReloadablePlugin {
|
||||
bot.getJda().getHttpClient().connectionPool().evictAll();
|
||||
bot.getJda().getHttpClient().dispatcher().executorService().shutdown();
|
||||
try {
|
||||
if (!bot.getJda().awaitShutdown(1, TimeUnit.SECONDS))
|
||||
if (!bot.getJda().awaitShutdown(1, TimeUnit.SECONDS)) {
|
||||
logger.log(Level.SEVERE, "Could not await discord bot shutdown");
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
@@ -233,8 +234,9 @@ public class VelocityCore implements ReloadablePlugin {
|
||||
List<String> cmds = server.getCommands();
|
||||
String cmd = cmds.remove(0);
|
||||
|
||||
if (server.getSpectatePort() != 0)
|
||||
if (server.getSpectatePort() != 0) {
|
||||
EventStarter.addSpectateServer(server.getSpectatePort(), cmd);
|
||||
}
|
||||
|
||||
new ServerSwitchCommand(cmd, entry.getKey(), server.getSpectatePort() != 0, cmds.toArray(new String[0]));
|
||||
}
|
||||
|
||||
@@ -42,7 +42,8 @@ public class AlertCommand extends SWCommand {
|
||||
String s = String.join(" ", message);
|
||||
Chatter.broadcast().system("ALERT", s.replace('&', '§'));
|
||||
|
||||
if ("-discord".equals(sendToDiscord))
|
||||
if ("-discord".equals(sendToDiscord)) {
|
||||
DiscordBot.withBot(bot -> bot.getAnnouncementChannel().send(s));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,8 +161,9 @@ public class BauCommand extends SWCommand {
|
||||
setter.accept(target);
|
||||
|
||||
Bauserver bauserver = Bauserver.get(owner.user().getUUID());
|
||||
if (bauserver != null)
|
||||
if (bauserver != null) {
|
||||
bauserver.getRegisteredServer().getPlayersConnected().stream().findAny().ifPresent(player -> NetworkSender.send(player, new BaumemberUpdatePacket()));
|
||||
}
|
||||
|
||||
Chatter.of(user.getUUID()).system("BAU_MEMBER_SET_TARGET", owner, new Message(permName));
|
||||
owner.system("BAU_MEMBER_SET", new Message(permName));
|
||||
@@ -177,12 +178,14 @@ public class BauCommand extends SWCommand {
|
||||
Bauserver bauserver = Bauserver.get(owner.user().getUUID());
|
||||
Chatter member = Chatter.of(user.getUUID());
|
||||
member.withPlayer(player -> {
|
||||
if (bauserver != null && bauserver.getRegisteredServer().getPlayersConnected().contains(player))
|
||||
if (bauserver != null && bauserver.getRegisteredServer().getPlayersConnected().contains(player)) {
|
||||
player.createConnectionRequest(VelocityCore.get().getConfig().lobbyserver()).fireAndForget();
|
||||
}
|
||||
});
|
||||
|
||||
if (bauserver != null)
|
||||
if (bauserver != null) {
|
||||
bauserver.getRegisteredServer().getPlayersConnected().stream().findAny().ifPresent(player -> NetworkSender.send(player, new BaumemberUpdatePacket()));
|
||||
}
|
||||
|
||||
member.system("BAU_DELMEMBER_DELETED_TARGET", owner);
|
||||
owner.system("BAU_DELMEMBER_DELETED");
|
||||
@@ -211,8 +214,9 @@ public class BauCommand extends SWCommand {
|
||||
VelocityCore.schedule(() -> {
|
||||
sender.system("BAU_STOPPING");
|
||||
Bauserver subserver = Bauserver.get(sender.user().getUUID());
|
||||
if (subserver != null)
|
||||
if (subserver != null) {
|
||||
subserver.stop();
|
||||
}
|
||||
|
||||
sender.system("BAU_STOPPED");
|
||||
}).schedule();
|
||||
@@ -227,8 +231,9 @@ public class BauCommand extends SWCommand {
|
||||
|
||||
VelocityCore.schedule(() -> {
|
||||
Bauserver subserver = Bauserver.get(sender.user().getUUID());
|
||||
if (subserver != null)
|
||||
if (subserver != null) {
|
||||
subserver.stop();
|
||||
}
|
||||
|
||||
SubserverSystem.deleteFolder(VelocityCore.local, world);
|
||||
sender.system("BAU_DELETE_DELETED");
|
||||
|
||||
@@ -114,8 +114,9 @@ public class BuilderCloudCommand extends SWCommand {
|
||||
File folder = getWorldFolder(previousArguments, 1);
|
||||
|
||||
String[] files;
|
||||
if (folder == null || (files = folder.list()) == null)
|
||||
if (folder == null || (files = folder.list()) == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
return Arrays.stream(files).filter(file -> new File(folder, file).isDirectory()).filter(file -> s.startsWith(".") || !file.startsWith(".")).toList();
|
||||
}
|
||||
@@ -129,17 +130,16 @@ public class BuilderCloudCommand extends SWCommand {
|
||||
return new TypeMapper<File>() {
|
||||
@Override
|
||||
public File map(Chatter sender, PreviousArguments previousArguments, String s) {
|
||||
if (s.isEmpty())
|
||||
return null;
|
||||
if (s.isEmpty()) return null;
|
||||
|
||||
File folder = getWorldFolder(previousArguments, 2);
|
||||
|
||||
if (folder == null)
|
||||
throw new SecurityException();
|
||||
if (folder == null) throw new SecurityException();
|
||||
|
||||
File generator = new File(folder, s + ".dat");
|
||||
if (!generator.exists() || !generator.isFile())
|
||||
if (!generator.exists() || !generator.isFile()) {
|
||||
throw new SecurityException();
|
||||
}
|
||||
|
||||
return generator;
|
||||
}
|
||||
@@ -149,8 +149,9 @@ public class BuilderCloudCommand extends SWCommand {
|
||||
File folder = getWorldFolder(previousArguments, 2);
|
||||
|
||||
String[] files;
|
||||
if (folder == null || (files = folder.list()) == null)
|
||||
if (folder == null || (files = folder.list()) == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
return Arrays.stream(files).filter(file -> new File(folder, file).isFile()).filter(file -> file.endsWith(".dat")).map(file -> file.substring(0, file.length() - 4)).toList();
|
||||
}
|
||||
@@ -163,8 +164,7 @@ public class BuilderCloudCommand extends SWCommand {
|
||||
|
||||
private File getWorldFolder(PreviousArguments previousArguments, int offset) {
|
||||
ServerVersion v = ServerVersion.get(previousArguments.userArgs[previousArguments.userArgs.length - offset]);
|
||||
if (v == null)
|
||||
return null;
|
||||
if (v == null) return null;
|
||||
return new File(v.getWorldFolder(ServerStarter.BUILDER_BASE_PATH));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,8 +77,7 @@ public class CheckCommand extends SWCommand {
|
||||
|
||||
public static void sendReminder(Chatter chatter) {
|
||||
List<SchematicNode> schematics = getSchemsToCheck();
|
||||
if (schematics.size() == currentCheckers.size())
|
||||
return;
|
||||
if (schematics.size() == currentCheckers.size()) return;
|
||||
|
||||
chatter.system("CHECK_REMINDER", new Message("CHECK_REMINDER_HOVER"), ClickEvent.runCommand("/check list"), schematics.size() - currentCheckers.size());
|
||||
}
|
||||
@@ -167,8 +166,7 @@ public class CheckCommand extends SWCommand {
|
||||
}
|
||||
|
||||
public static void abort(Player player) {
|
||||
if (notChecking(player))
|
||||
return;
|
||||
if (notChecking(player)) return;
|
||||
|
||||
Chatter.of(player).system("CHECK_ABORT");
|
||||
currentCheckers.get(player.getUniqueId()).abort();
|
||||
@@ -176,8 +174,7 @@ public class CheckCommand extends SWCommand {
|
||||
|
||||
@Register(value = "next", description = "CHECK_HELP_NEXT")
|
||||
public void next(PlayerChatter sender) {
|
||||
if (notChecking(sender.getPlayer()))
|
||||
return;
|
||||
if (notChecking(sender.getPlayer())) return;
|
||||
|
||||
currentCheckers.get(sender.getPlayer().getUniqueId()).next();
|
||||
}
|
||||
@@ -189,16 +186,14 @@ public class CheckCommand extends SWCommand {
|
||||
|
||||
@Register(value = "decline", description = "CHECK_HELP_DECLINE")
|
||||
public void decline(PlayerChatter sender) {
|
||||
if (notChecking(sender.getPlayer()))
|
||||
return;
|
||||
if (notChecking(sender.getPlayer())) return;
|
||||
|
||||
currentCheckers.get(sender.getPlayer().getUniqueId()).markDeclined();
|
||||
}
|
||||
|
||||
@Register(value = "decline", description = "CHECK_HELP_DECLINE")
|
||||
public void decline(PlayerChatter sender, String... message) {
|
||||
if (notChecking(sender.getPlayer()))
|
||||
return;
|
||||
if (notChecking(sender.getPlayer())) return;
|
||||
|
||||
currentCheckers.get(sender.getPlayer().getUniqueId()).decline(String.join(" ", message));
|
||||
}
|
||||
@@ -207,8 +202,9 @@ public class CheckCommand extends SWCommand {
|
||||
List<SchematicNode> schematicList = new ArrayList<>();
|
||||
|
||||
for (SchematicType type : SchematicType.values()) {
|
||||
if (type.check())
|
||||
if (type.check()) {
|
||||
schematicList.addAll(SchematicNode.getAllSchematicsOfType(type));
|
||||
}
|
||||
}
|
||||
return schematicList;
|
||||
}
|
||||
@@ -395,8 +391,7 @@ public class CheckCommand extends SWCommand {
|
||||
remove();
|
||||
VelocityCore.schedule(() -> {
|
||||
Bauserver subserver = Bauserver.get(checker.user().getUUID());
|
||||
if (subserver != null)
|
||||
subserver.stop();
|
||||
if (subserver != null) subserver.stop();
|
||||
}).schedule();
|
||||
}
|
||||
|
||||
|
||||
@@ -77,8 +77,7 @@ public class DevCommand extends SWCommand {
|
||||
|
||||
@Register(value = "reloadmodes")
|
||||
public void reloadModes(Chatter sender) {
|
||||
if (!sender.user().hasPerm(UserPerm.ADMINISTRATION))
|
||||
return;
|
||||
if (!sender.user().hasPerm(UserPerm.ADMINISTRATION)) return;
|
||||
|
||||
try {
|
||||
ArenaMode.init();
|
||||
@@ -148,8 +147,7 @@ public class DevCommand extends SWCommand {
|
||||
String name = "Dev " + user.getUserName();
|
||||
((VelocityViaConfig) Via.getConfig()).getVelocityServerProtocols().put(name, ServerVersion.get(devServerVersions.get(username)).getProtocolVersion().getProtocol());
|
||||
|
||||
if (devServers.containsKey(username))
|
||||
return;
|
||||
if (devServers.containsKey(username)) return;
|
||||
devServers.put(user.getUserName().toLowerCase(), VelocityCore.getProxy().registerServer(new ServerInfo(name, new InetSocketAddress("127.0.0.1", value))));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -55,8 +55,7 @@ public class EventCommand extends SWCommand {
|
||||
sender.system("EVENT_NO_CURRENT");
|
||||
|
||||
List<Event> coming = Event.getComing();
|
||||
if (coming.isEmpty())
|
||||
return;
|
||||
if (coming.isEmpty()) return;
|
||||
|
||||
sender.system("EVENT_COMING");
|
||||
|
||||
@@ -65,16 +64,19 @@ public class EventCommand extends SWCommand {
|
||||
for (Event e : coming) {
|
||||
sender.prefixless("EVENT_COMING_EVENT", e.getStart().toLocalDateTime().format(format), e.getEnd().toLocalDateTime().format(format), e.getEventName());
|
||||
|
||||
if (now.isBefore(e.getDeadline().toInstant()))
|
||||
if (now.isBefore(e.getDeadline().toInstant())) {
|
||||
sender.prefixless("EVENT_COMING_DEADLINE", e.getDeadline());
|
||||
}
|
||||
|
||||
SchematicType schemType = e.getSchematicType();
|
||||
if (schemType != null && schemType.getDeadline() != null && now.isBefore(schemType.getDeadline().toInstant()))
|
||||
if (schemType != null && schemType.getDeadline() != null && now.isBefore(schemType.getDeadline().toInstant())) {
|
||||
sender.prefixless("EVENT_COMING_SCHEM_DEADLINE", schemType.getDeadline());
|
||||
}
|
||||
|
||||
Set<Team> teams = TeamTeilnahme.getTeams(e.getEventID());
|
||||
if (!teams.isEmpty())
|
||||
if (!teams.isEmpty()) {
|
||||
sender.prefixless("EVENT_COMING_TEAMS", teams.stream().map(team -> sender.parseToLegacy("EVENT_COMING_TEAM", team.getTeamColor(), team.getTeamKuerzel())).collect(Collectors.joining(" ")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,8 +152,9 @@ public class EventCommand extends SWCommand {
|
||||
@ClassMapper(value = Team.class, local = true)
|
||||
public TypeMapper<Team> eventTeams() {
|
||||
return eventTeam(eventFight -> {
|
||||
if (eventFight.getStartTime().after(new Timestamp(System.currentTimeMillis())))
|
||||
if (eventFight.getStartTime().after(new Timestamp(System.currentTimeMillis()))) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return List.of(eventFight.getTeamBlue(), eventFight.getTeamRed());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -53,8 +53,7 @@ public class EventRescheduleCommand extends SWCommand {
|
||||
Timestamp now = Timestamp.from(new Date().toInstant());
|
||||
while (it.hasPrevious()) {
|
||||
EventFight fight = it.previous();
|
||||
if (fight.getStartTime().after(now))
|
||||
continue;
|
||||
if (fight.getStartTime().after(now)) continue;
|
||||
|
||||
if (fight.getTeamBlue() == teamBlue.getTeamId() && fight.getTeamRed() == teamRed.getTeamId()) {
|
||||
sender.system("EVENTRESCHEDULE_STARTING");
|
||||
|
||||
@@ -50,8 +50,7 @@ public class FightCommand extends SWCommand {
|
||||
private static void getModes(Chatter sender, String precommand, boolean historic) {
|
||||
Component start = Component.empty();
|
||||
for (GameModeConfig<String, String> mode : ArenaMode.getAllModes()) {
|
||||
if (!mode.isActive() || mode.Server.Historic != historic)
|
||||
continue;
|
||||
if (!mode.isActive() || mode.Server.Historic != historic) continue;
|
||||
|
||||
String command = precommand + mode.getChatName();
|
||||
start = start.append(Component
|
||||
@@ -71,8 +70,9 @@ public class FightCommand extends SWCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
if (map == null)
|
||||
if (map == null) {
|
||||
map = arenaMode.getRandomMap();
|
||||
}
|
||||
|
||||
if (!allowMerging) {
|
||||
callback.run(sender, arenaMode, map);
|
||||
|
||||
@@ -208,8 +208,7 @@ public class GDPRQuery extends SWCommand {
|
||||
|
||||
private void copyBauwelt(SteamwarUser user, ZipOutputStream out, String inDir, String outDir) throws IOException {
|
||||
File world = new File(inDir);
|
||||
if (!world.exists())
|
||||
return;
|
||||
if (!world.exists()) return;
|
||||
|
||||
copy(new File(world, "level.dat"), out, outDir + "/level.dat");
|
||||
|
||||
@@ -226,8 +225,9 @@ public class GDPRQuery extends SWCommand {
|
||||
}
|
||||
|
||||
File playerdata = new File(world, "playerdata/" + user.getUUID().toString() + ".dat");
|
||||
if (playerdata.exists())
|
||||
if (playerdata.exists()) {
|
||||
copy(playerdata, out, outDir + "/playerdata/" + user.getUUID().toString() + ".dat");
|
||||
}
|
||||
}
|
||||
|
||||
private void copyPlayerdata(SteamwarUser user, ZipOutputStream out, String inDir, String outDir) throws IOException {
|
||||
@@ -237,8 +237,7 @@ public class GDPRQuery extends SWCommand {
|
||||
int i = 0;
|
||||
for (File world : worlds.listFiles()) {
|
||||
File playerdata = new File(world, path);
|
||||
if (!playerdata.exists())
|
||||
continue;
|
||||
if (!playerdata.exists()) continue;
|
||||
|
||||
copy(playerdata, out, outDir + "/" + (i++) + "/" + user.getUUID().toString() + ".dat");
|
||||
}
|
||||
|
||||
@@ -44,8 +44,7 @@ public class ListCommand extends SWCommand {
|
||||
SortedMap<String, List<Player>> playerMap = new TreeMap<>();
|
||||
for (Player player : VelocityCore.getProxy().getAllPlayers()) {
|
||||
ServerConnection pserver = player.getCurrentServer().orElse(null);
|
||||
if (pserver == null)
|
||||
continue;
|
||||
if (pserver == null) continue;
|
||||
|
||||
if (Subserver.isBuild(Subserver.getSubserver(pserver.getServerInfo()))) {
|
||||
playerMap.computeIfAbsent("Bau", s -> new ArrayList<>()).add(player);
|
||||
|
||||
@@ -115,8 +115,7 @@ public class PunishmentCommand {
|
||||
public PunishmentCommand(String command, Punishment.PunishmentType punishmentType) {
|
||||
new PunishCommand(command, punishmentType);
|
||||
|
||||
if (punishmentType.getUnpunishmentMessage() == null)
|
||||
return;
|
||||
if (punishmentType.getUnpunishmentMessage() == null) return;
|
||||
|
||||
new UnpunishCommand("un" + command, punishmentType);
|
||||
}
|
||||
@@ -188,24 +187,20 @@ public class PunishmentCommand {
|
||||
|
||||
private SteamwarUser unsafeUser(Chatter sender, String arg) {
|
||||
SteamwarUser target = getOrCreateOfflinePlayer(arg);
|
||||
if (target == null)
|
||||
sender.system("UNKNOWN_PLAYER");
|
||||
if (target == null) sender.system("UNKNOWN_PLAYER");
|
||||
return target;
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Chatter sender, @Mapper("toPunish") String toPunish, String date, @ErrorMessage(allowEAs = false, value = "PUNISHMENT_USAGE_REASON") String... message) {
|
||||
SteamwarUser punisher = sender.user();
|
||||
if (!punisher.hasPerm(punishmentType.getUserPerm()))
|
||||
return;
|
||||
if (!punisher.hasPerm(punishmentType.getUserPerm())) return;
|
||||
|
||||
SteamwarUser target = unsafeUser(sender, toPunish);
|
||||
if (target == null)
|
||||
return;
|
||||
if (target == null) return;
|
||||
|
||||
Timestamp banTime = parseTime(sender, date);
|
||||
if (banTime == null)
|
||||
return;
|
||||
if (banTime == null) return;
|
||||
|
||||
boolean isPerma = date.equalsIgnoreCase("perma");
|
||||
String msg = String.join(" ", message);
|
||||
@@ -254,8 +249,7 @@ public class PunishmentCommand {
|
||||
@Register
|
||||
public void genericCommand(Chatter sender, @ErrorMessage("UNKNOWN_PLAYER") SteamwarUser target) {
|
||||
SteamwarUser punisher = sender.user();
|
||||
if (!punisher.hasPerm(punishmentType.getUserPerm()))
|
||||
return;
|
||||
if (!punisher.hasPerm(punishmentType.getUserPerm())) return;
|
||||
|
||||
if (!target.isPunished(punishmentType)) {
|
||||
sender.system(punishmentType.getUsageNotPunished());
|
||||
@@ -263,8 +257,9 @@ public class PunishmentCommand {
|
||||
}
|
||||
|
||||
target.punish(punishmentType, Timestamp.from(new Date().toInstant()), command, sender.user().getId(), false);
|
||||
if (punishmentType == Punishment.PunishmentType.Ban)
|
||||
if (punishmentType == Punishment.PunishmentType.Ban) {
|
||||
BannedUserIPs.unbanIPs(target.getId());
|
||||
}
|
||||
|
||||
sender.system(punishmentType.getUnpunishmentMessage(), target.getUserName());
|
||||
}
|
||||
|
||||
@@ -56,8 +56,7 @@ public class ReplayCommand extends SWCommand {
|
||||
|
||||
@Register
|
||||
public void genericCommand(PlayerChatter sender, @OptionalValue("") String optionalMap) {
|
||||
if (PunishmentCommand.isPunishedWithMessage(sender, Punishment.PunishmentType.NoFightServer))
|
||||
return;
|
||||
if (PunishmentCommand.isPunishedWithMessage(sender, Punishment.PunishmentType.NoFightServer)) return;
|
||||
|
||||
new SWStreamInv<>(sender, new Message("REPLAY_TITLE"), (click, fight) -> {
|
||||
startReplay(sender, click.isShiftClick(), optionalMap, fight);
|
||||
@@ -65,8 +64,7 @@ public class ReplayCommand extends SWCommand {
|
||||
}
|
||||
|
||||
private void startReplay(PlayerChatter sender, boolean isAdmin, String optionalMap, Fight fight) {
|
||||
if (PunishmentCommand.isPunishedWithMessage(sender, Punishment.PunishmentType.NoFightServer))
|
||||
return;
|
||||
if (PunishmentCommand.isPunishedWithMessage(sender, Punishment.PunishmentType.NoFightServer)) return;
|
||||
|
||||
GameModeConfig<String, String> mode = ArenaMode.getBySchemType(fight.getSchemType());
|
||||
ServerStarter starter = new ServerStarter().replay(fight.getFightID()).blueLeader(sender.getPlayer());
|
||||
@@ -96,12 +94,14 @@ public class ReplayCommand extends SWCommand {
|
||||
lore.add(new Message("REPLAY_TIME", fight.getStartTime()));
|
||||
lore.add(new Message("SPACER"));
|
||||
lore.add(new Message("REPLAY_SERVER", fight.getServer(), Integer.toString(fight.getFightID())));
|
||||
if (!fight.replayAllowed())
|
||||
if (!fight.replayAllowed()) {
|
||||
lore.add(new Message("REPLAY_UNAVAILABLE"));
|
||||
}
|
||||
item.setLore(lore);
|
||||
|
||||
if (fight.replayAllowed())
|
||||
if (fight.replayAllowed()) {
|
||||
item.setEnchanted(true);
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
@@ -43,8 +43,7 @@ public class StatCommand extends SWCommand {
|
||||
try {
|
||||
Process process = new ProcessBuilder("ps", "x").start();
|
||||
new BufferedReader(new InputStreamReader(process.getInputStream())).lines().forEach(s -> {
|
||||
if (!s.contains("--port"))
|
||||
return;
|
||||
if (!s.contains("--port")) return;
|
||||
serverCount.compute(
|
||||
s.contains("ssh -L") ? s.substring(s.indexOf("ssh -L") + 6).split(" ")[2] : "sw",
|
||||
(server, count) -> (count != null ? count : 0) + 1
|
||||
|
||||
@@ -65,8 +65,9 @@ public class TeamCommand extends SWCommand {
|
||||
} else {
|
||||
helpMessages(sender, "TEAM_HELP_CHAT", "TEAM_HELP_EVENT", "TEAM_HELP_LEAVE");
|
||||
|
||||
if (user.isLeader())
|
||||
if (user.isLeader()) {
|
||||
helpMessages(sender, "TEAM_HELP_INVITE", "TEAM_HELP_REMOVE", "TEAM_HELP_KUERZEL", "TEAM_HELP_NAME", "TEAM_HELP_COLOR", "TEAM_HELP_LEADER", "TEAM_HELP_STEP_BACK", "TEAM_HELP_SERVER");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,8 +81,9 @@ public class TeamCommand extends SWCommand {
|
||||
SteamwarUser user = sender.user();
|
||||
Team team = Team.byId(user.getTeam());
|
||||
|
||||
if (checkTeamKuerzel(sender, team, kuerzel) || checkTeamName(sender, team, name))
|
||||
if (checkTeamKuerzel(sender, team, kuerzel) || checkTeamName(sender, team, name)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Team.create(kuerzel, name);
|
||||
user.setTeam(Team.get(kuerzel).getTeamId());
|
||||
@@ -93,8 +95,7 @@ public class TeamCommand extends SWCommand {
|
||||
public void join(@Validator("isNotInTeam") Chatter sender, String... args) {
|
||||
SteamwarUser user = sender.user();
|
||||
|
||||
if (notDuringEvent(sender))
|
||||
return;
|
||||
if (notDuringEvent(sender)) return;
|
||||
|
||||
if (!teamInvitations.containsKey(user.getId())) {
|
||||
sender.system("TEAM_JOIN_NO_INVITE");
|
||||
@@ -164,8 +165,7 @@ public class TeamCommand extends SWCommand {
|
||||
|
||||
user.setTeam(0);
|
||||
|
||||
if (teamSize == 1)
|
||||
team.disband(user);
|
||||
if (teamSize == 1) team.disband(user);
|
||||
|
||||
sender.system("TEAM_LEAVE_LEFT");
|
||||
}
|
||||
@@ -179,8 +179,7 @@ public class TeamCommand extends SWCommand {
|
||||
public void invite(@Validator("isLeader") Chatter sender, @ErrorMessage("TEAM_INVITE_NO_PLAYER") SteamwarUser target) {
|
||||
Team team = Team.byId(sender.user().getTeam());
|
||||
|
||||
if (notDuringEvent(sender))
|
||||
return;
|
||||
if (notDuringEvent(sender)) return;
|
||||
|
||||
if (target.getTeam() != 0) {
|
||||
sender.system("TEAM_INVITE_IN_TEAM");
|
||||
@@ -246,11 +245,9 @@ public class TeamCommand extends SWCommand {
|
||||
public void changekuerzel(@Validator("isLeader") Chatter sender, @Length(min = 2, max = 4) @ErrorMessage("TEAM_KUERZEL_LENGTH") String kuerzel) {
|
||||
Team team = Team.byId(sender.user().getTeam());
|
||||
|
||||
if (notDuringEvent(sender))
|
||||
return;
|
||||
if (notDuringEvent(sender)) return;
|
||||
|
||||
if (checkTeamKuerzel(sender, team, kuerzel))
|
||||
return;
|
||||
if (checkTeamKuerzel(sender, team, kuerzel)) return;
|
||||
|
||||
team.setTeamKuerzel(kuerzel);
|
||||
sender.system("TEAM_KUERZEL_CHANGED");
|
||||
@@ -260,11 +257,9 @@ public class TeamCommand extends SWCommand {
|
||||
public void changename(@Validator("isLeader") Chatter sender, @Length(min = 4, max = 15) @ErrorMessage("TEAM_NAME_LENGTH") String name) {
|
||||
Team team = Team.byId(sender.user().getTeam());
|
||||
|
||||
if (notDuringEvent(sender))
|
||||
return;
|
||||
if (notDuringEvent(sender)) return;
|
||||
|
||||
if (checkTeamName(sender, team, name))
|
||||
return;
|
||||
if (checkTeamName(sender, team, name)) return;
|
||||
|
||||
team.setTeamName(name);
|
||||
sender.system("TEAM_NAME_CHANGED");
|
||||
@@ -272,8 +267,7 @@ public class TeamCommand extends SWCommand {
|
||||
|
||||
@Register(value = "promote", description = "TEAM_LEADER_USAGE")
|
||||
public void promote(@Validator("isLeader") Chatter sender, @ErrorMessage("TEAM_LEADER_NOT_USER") @Mapper("memberList") SteamwarUser target) {
|
||||
if (notDuringEvent(sender))
|
||||
return;
|
||||
if (notDuringEvent(sender)) return;
|
||||
|
||||
if (target.getTeam() != sender.user().getTeam()) {
|
||||
sender.system("TEAM_LEADER_NOT_MEMBER");
|
||||
@@ -297,8 +291,9 @@ public class TeamCommand extends SWCommand {
|
||||
sender.prefixless("TEAM_INFO_LEADER", users.stream().filter(SteamwarUser::isLeader).count(), getMemberList(users, true));
|
||||
|
||||
String members = getMemberList(users, false);
|
||||
if (!members.isEmpty())
|
||||
if (!members.isEmpty()) {
|
||||
sender.prefixless("TEAM_INFO_MEMBER", users.stream().filter(u -> !u.isLeader()).count(), members);
|
||||
}
|
||||
|
||||
Set<Event> events = TeamTeilnahme.getEvents(team.getTeamId());
|
||||
if (!events.isEmpty()) {
|
||||
@@ -371,17 +366,19 @@ public class TeamCommand extends SWCommand {
|
||||
Component beforePage = Component
|
||||
.text("«« ")
|
||||
.color(page > 1 ? NamedTextColor.YELLOW : NamedTextColor.DARK_GRAY);
|
||||
if (page > 1)
|
||||
if (page > 1) {
|
||||
beforePage = beforePage
|
||||
.hoverEvent(HoverEvent.showText(sender.parse("TEAM_LIST_PREV")))
|
||||
.clickEvent(ClickEvent.runCommand("/team list " + (page - 1)));
|
||||
}
|
||||
|
||||
Component nextPage = sender.parse("TEAM_LIST_PAGE")
|
||||
.color(page > 1 ? NamedTextColor.YELLOW : NamedTextColor.DARK_GRAY);
|
||||
if (page < lastPage)
|
||||
if (page < lastPage) {
|
||||
nextPage = nextPage
|
||||
.hoverEvent(HoverEvent.showText(sender.parse("TEAM_LIST_NEXT")))
|
||||
.clickEvent(ClickEvent.runCommand("/team list " + (page + 1)));
|
||||
}
|
||||
|
||||
sender.sendMessage(beforePage.append(nextPage));
|
||||
}
|
||||
@@ -404,8 +401,7 @@ public class TeamCommand extends SWCommand {
|
||||
public void event(@Validator("isLeader") Chatter sender, Event event) {
|
||||
Team team = Team.byId(sender.user().getTeam());
|
||||
|
||||
if (notDuringEvent(sender))
|
||||
return;
|
||||
if (notDuringEvent(sender)) return;
|
||||
|
||||
if (Instant.now().isAfter(event.getDeadline().toInstant())) {
|
||||
sender.system("TEAM_EVENT_OVER");
|
||||
@@ -450,8 +446,7 @@ public class TeamCommand extends SWCommand {
|
||||
public void changeColor(@Validator("isLeader") PlayerChatter sender) {
|
||||
Team team = Team.byId(sender.user().getTeam());
|
||||
|
||||
if (notDuringEvent(sender))
|
||||
return;
|
||||
if (notDuringEvent(sender)) return;
|
||||
|
||||
SWListInv<String> inv = new SWListInv<>(sender, new Message("TEAM_COLOR_TITLE"), COLOR_CODES.entrySet().stream().map(entry -> new SWListInv.SWListEntry<>(new SWItem(entry.getValue(), new Message("PLAIN_STRING", "§" + entry.getKey() + team.getTeamKuerzel())), entry.getKey())).toList(), (click, element) -> {
|
||||
});
|
||||
|
||||
@@ -115,8 +115,9 @@ public class TpCommand extends SWCommand {
|
||||
}
|
||||
|
||||
if (Subserver.isArena(subserver)) {
|
||||
if (PunishmentCommand.isPunishedWithMessage(sender, Punishment.PunishmentType.NoFightServer))
|
||||
if (PunishmentCommand.isPunishedWithMessage(sender, Punishment.PunishmentType.NoFightServer)) {
|
||||
return;
|
||||
}
|
||||
} else if (Subserver.isBuild(subserver)) {
|
||||
Bauserver bauserver = (Bauserver) subserver;
|
||||
Player checker = VelocityCore.getProxy().getPlayer(bauserver.getOwner()).orElse(null);
|
||||
@@ -149,16 +150,18 @@ public class TpCommand extends SWCommand {
|
||||
|
||||
//Get target player server
|
||||
Player target = VelocityCore.getProxy().getPlayer(arg).orElse(null);
|
||||
if (target != null)
|
||||
if (target != null) {
|
||||
server = target.getCurrentServer().map(ServerConnection::getServer).orElse(server);
|
||||
}
|
||||
|
||||
//Get target team event arena
|
||||
if (server == null) {
|
||||
Team team = Team.get(arg);
|
||||
if (team != null) {
|
||||
Subserver eventArena = EventStarter.getEventServer().get(team.getTeamId());
|
||||
if (eventArena != null && Subserver.getServerList().contains(eventArena))
|
||||
if (eventArena != null && Subserver.getServerList().contains(eventArena)) {
|
||||
server = eventArena.getRegisteredServer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -69,15 +69,15 @@ public class WhoisCommand extends SWCommand {
|
||||
sender.system("WHOIS_PREFIX", user.prefix().getColorCode() + user.prefix().getChatPrefix());
|
||||
sender.system("WHOIS_TEAM", new Message("WHOIS_TEAM_HOVER", team.getTeamName()), ClickEvent.runCommand("/team info " + team.getTeamName()), team.getTeamColor(), team.getTeamKuerzel(), team.getTeamName());
|
||||
|
||||
if (!sender.user().hasPerm(UserPerm.TEAM))
|
||||
return;
|
||||
if (!sender.user().hasPerm(UserPerm.TEAM)) return;
|
||||
|
||||
sender.system("WHOIS_STREAMING", !StreamingCommand.isNotStreaming(user));
|
||||
if (sender.user().hasPerm(UserPerm.MODERATION) || sender.user().hasPerm(UserPerm.PREFIX_DEVELOPER)) {
|
||||
sender.system("WHOIS_ID", user.getId());
|
||||
sender.system("WHOIS_UUID", new Message("WHOIS_UUID_HOVER"), ClickEvent.copyToClipboard(user.getUUID().toString()), user.getUUID().toString());
|
||||
if (user.getDiscordId() != null)
|
||||
if (user.getDiscordId() != null) {
|
||||
sender.system("WHOIS_DISCORD_ID", user.getDiscordId());
|
||||
}
|
||||
|
||||
sender.system("WHOIS_PERMS", user.perms().stream().map(Enum::name).collect(Collectors.joining(", ")));
|
||||
}
|
||||
@@ -90,10 +90,12 @@ public class WhoisCommand extends SWCommand {
|
||||
}
|
||||
Timestamp lastOnline = user.getLastOnline();
|
||||
|
||||
if (firstJoin != null)
|
||||
if (firstJoin != null) {
|
||||
sender.system("WHOIS_JOINED_FIRST", firstJoin.toString());
|
||||
if (lastOnline != null)
|
||||
}
|
||||
if (lastOnline != null) {
|
||||
sender.system("WHOIS_LAST_ONLINE", lastOnline.toString());
|
||||
}
|
||||
sender.system("WHOIS_HOURS_PLAYED", new DecimalFormat("###.##").format(onlineTime / 3600d));
|
||||
|
||||
if (target != null) {
|
||||
@@ -102,8 +104,9 @@ public class WhoisCommand extends SWCommand {
|
||||
sender.system("WHOIS_CURRENT_PROTOCOL", target.getProtocolVersion().getMostRecentSupportedVersion());
|
||||
|
||||
List<Mod> mods = ModUtils.getPlayerModMap().get(user.getUUID());
|
||||
if (mods == null)
|
||||
if (mods == null) {
|
||||
mods = Collections.emptyList();
|
||||
}
|
||||
|
||||
sender.system("WHOIS_PLATFORM", mods.isEmpty() ? "Vanilla" : mods.get(0).getPlatform().toString());
|
||||
|
||||
@@ -137,10 +140,11 @@ public class WhoisCommand extends SWCommand {
|
||||
}
|
||||
|
||||
private Message duration(Chatter sender, Timestamp timestamp, boolean perma) {
|
||||
if (perma)
|
||||
if (perma) {
|
||||
return new Message("PUNISHMENT_PERMA");
|
||||
else
|
||||
} else {
|
||||
return new Message("PLAIN_STRING", timestamp.toLocalDateTime().format(DateTimeFormatter.ofPattern(sender.parseToPlain("TIMEFORMAT"))));
|
||||
}
|
||||
}
|
||||
|
||||
@ClassMapper(value = WhoisParameterTypes.class, local = true)
|
||||
|
||||
@@ -70,8 +70,7 @@ public class DiscordBot {
|
||||
private final OptionData commandArgument = new OptionData(OptionType.STRING, ARGUMENT_NAME, "Command arguments", false);
|
||||
|
||||
public static void withBot(Consumer<DiscordBot> consumer) {
|
||||
if (instance != null)
|
||||
consumer.accept(instance);
|
||||
if (instance != null) consumer.accept(instance);
|
||||
}
|
||||
|
||||
public static Guild getGuild() {
|
||||
@@ -143,8 +142,9 @@ public class DiscordBot {
|
||||
ActionRow.of(Button.link("https://steamwar.de", "Website"), Button.link("https://steamwar.de/youtube", "YouTube")),
|
||||
ActionRow.of(Button.primary("auth", Emoji.fromUnicode("U+2705")).withLabel("Minecraft verknüpfen"))
|
||||
), event -> {
|
||||
if (event.getComponentId().equals("auth"))
|
||||
if (event.getComponentId().equals("auth")) {
|
||||
event.reply("Gebe innerhalb der nächsten 10 Minuten ``/verify " + AuthManager.createDiscordAuthToken(event.getUser()) + "`` auf dem Minecraft Server ein").setEphemeral(true).queue();
|
||||
}
|
||||
});
|
||||
|
||||
List<ActionRow> actionRows = new ArrayList<>();
|
||||
|
||||
@@ -36,8 +36,7 @@ public class DiscordConfig {
|
||||
|
||||
public static DiscordConfig load() {
|
||||
File file = new File(System.getProperty("user.home"), "discord.yml");
|
||||
if (!file.exists() || VelocityCore.get().getConfig().isEventmode())
|
||||
return null;
|
||||
if (!file.exists() || VelocityCore.get().getConfig().isEventmode()) return null;
|
||||
|
||||
return Config.load(DiscordConfig.class, file, description -> description.addPropertyParameters("roles", String.class, DiscordRole.class));
|
||||
}
|
||||
|
||||
@@ -42,8 +42,7 @@ import java.util.stream.Collectors;
|
||||
public class EventChannel {
|
||||
|
||||
public MessageCreateBuilder get() {
|
||||
if (Event.get() == null)
|
||||
return updateComing();
|
||||
if (Event.get() == null) return updateComing();
|
||||
|
||||
return updateCurrent();
|
||||
}
|
||||
|
||||
@@ -53,10 +53,11 @@ public class InteractionReply extends DiscordChannel {
|
||||
return;
|
||||
}
|
||||
|
||||
if (interaction.getHook().isExpired())
|
||||
if (interaction.getHook().isExpired()) {
|
||||
super.sendMessage(msg);
|
||||
else
|
||||
} else {
|
||||
interaction.getHook().sendMessage(PlainTextComponentSerializer.plainText().serialize(msg)).queue();
|
||||
}
|
||||
}
|
||||
|
||||
public void submit() {
|
||||
|
||||
@@ -46,18 +46,15 @@ public class ChannelListener extends ListenerAdapter {
|
||||
|
||||
@Override
|
||||
public void onMessageReceived(@NotNull MessageReceivedEvent event) {
|
||||
if (event.getAuthor().isBot())
|
||||
return;
|
||||
if (event.getAuthor().isBot()) return;
|
||||
|
||||
DiscordChannel channel = channels.get(event.getChannel());
|
||||
if (channel != null)
|
||||
channel.received(event);
|
||||
if (channel != null) channel.received(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGenericComponentInteractionCreate(@NotNull GenericComponentInteractionCreateEvent event) {
|
||||
if (event.getType() != InteractionType.COMPONENT)
|
||||
return;
|
||||
if (event.getType() != InteractionType.COMPONENT) return;
|
||||
|
||||
DiscordChannel channel = channels.get(event.getChannel());
|
||||
if (channel != null) {
|
||||
@@ -65,27 +62,27 @@ public class ChannelListener extends ListenerAdapter {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getChannelType() == ChannelType.PRIVATE && event.getComponentId().equals("tada"))
|
||||
if (event.getChannelType() == ChannelType.PRIVATE && event.getComponentId().equals("tada")) {
|
||||
event.reply(":tada:").queue();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent event) {
|
||||
if (event.getGuild().getIdLong() == 1241489896909180998L) return;
|
||||
InteractionReply.reply(event, sender -> {
|
||||
if (sender.user().getDiscordId() == null)
|
||||
return;
|
||||
if (sender.user().getDiscordId() == null) return;
|
||||
|
||||
OptionMapping option = event.getOption(DiscordBot.ARGUMENT_NAME);
|
||||
String args = "";
|
||||
if (option != null)
|
||||
if (option != null) {
|
||||
args = option.getAsString();
|
||||
}
|
||||
|
||||
VelocityCore.getLogger().log(Level.INFO, "%s -> executed Discord command /%s %s".formatted(sender.user().getUserName(), event.getName(), args));
|
||||
SWCommand command = DiscordBot.getCommands().get(event.getName());
|
||||
UserPerm permission = command.getPermission();
|
||||
if (permission != null && !sender.user().perms().contains(permission))
|
||||
return;
|
||||
if (permission != null && !sender.user().perms().contains(permission)) return;
|
||||
|
||||
command.execute(sender, args.isEmpty() ? new String[0] : args.split(" "));
|
||||
});
|
||||
|
||||
@@ -52,8 +52,7 @@ public class DiscordSchemUpload extends ListenerAdapter {
|
||||
if (event.isFromGuild()) return;
|
||||
|
||||
Message message = event.getMessage();
|
||||
if (message.getAttachments().isEmpty())
|
||||
return;
|
||||
if (message.getAttachments().isEmpty()) return;
|
||||
|
||||
DiscordChannel sender = new DiscordChannel(event.getAuthor());
|
||||
SteamwarUser user = sender.user();
|
||||
@@ -82,8 +81,9 @@ public class DiscordSchemUpload extends ListenerAdapter {
|
||||
}
|
||||
|
||||
SchematicNode node = SchematicNode.getSchematicNode(user.getId(), name, (Integer) null);
|
||||
if (node == null)
|
||||
if (node == null) {
|
||||
node = SchematicNode.createSchematic(user.getId(), name, null);
|
||||
}
|
||||
|
||||
try (InputStream in = attachment.getProxy().download().get()) {
|
||||
byte[] bytes = in.readAllBytes();
|
||||
|
||||
@@ -33,8 +33,7 @@ public class DiscordTeamEvent extends ListenerAdapter {
|
||||
|
||||
@Override
|
||||
public void onStringSelectInteraction(@NotNull StringSelectInteractionEvent event) {
|
||||
if (!event.getChannel().getId().equals(eventsChannel))
|
||||
return;
|
||||
if (!event.getChannel().getId().equals(eventsChannel)) return;
|
||||
|
||||
if (event.getSelectedOptions().isEmpty()) {
|
||||
event.deferReply(true).queue();
|
||||
|
||||
+3
-3
@@ -151,14 +151,14 @@ public class DiscordTicketHandler extends ListenerAdapter {
|
||||
!channel.getId().equals(TICKET_CHANNEL) &&
|
||||
!channel.getId().equals(TICKET_LOG)
|
||||
) {
|
||||
if (event.getAuthor().isBot())
|
||||
return;
|
||||
if (event.getAuthor().isBot()) return;
|
||||
|
||||
ChatterGroup receivers = new ChatterGroup(Chatter.allStream().filter(player -> player.user().hasPerm(UserPerm.TICKET_LOG)));
|
||||
try {
|
||||
SteamwarUser user = SteamwarUser.get(Long.parseLong(textChannel.getTopic()));
|
||||
if (user != null && !user.perms().contains(UserPerm.TEAM))
|
||||
if (user != null && !user.perms().contains(UserPerm.TEAM)) {
|
||||
receivers = new ChatterGroup(receivers, Chatter.of(user));
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
//ignored
|
||||
}
|
||||
|
||||
@@ -57,8 +57,7 @@ public class AuthManager {
|
||||
|
||||
public User connectAuth(SteamwarUser user, String code) {
|
||||
User dcUser = TOKENS.remove(code);
|
||||
if (dcUser == null)
|
||||
return null;
|
||||
if (dcUser == null) return null;
|
||||
|
||||
user.setDiscordId(dcUser.getIdLong());
|
||||
|
||||
|
||||
@@ -40,12 +40,10 @@ public class DiscordAlert {
|
||||
public static void send(Chatter player, Color color, Message title, Message description, boolean success) {
|
||||
DiscordBot.withBot(bot -> {
|
||||
Long discordId = player.user().getDiscordId();
|
||||
if (discordId == null)
|
||||
return;
|
||||
if (discordId == null) return;
|
||||
|
||||
User user = DiscordBot.getInstance().getJda().retrieveUserById(discordId).complete();
|
||||
if (user == null)
|
||||
return;
|
||||
if (user == null) return;
|
||||
|
||||
MessageCreateBuilder builder = new MessageCreateBuilder()
|
||||
.setEmbeds(new EmbedBuilder()
|
||||
@@ -55,8 +53,9 @@ public class DiscordAlert {
|
||||
.setDescription(player.parseToPlain(description))
|
||||
.setTimestamp(Instant.now())
|
||||
.build());
|
||||
if (success)
|
||||
if (success) {
|
||||
builder.setComponents(ActionRow.of(Button.success("tada", Emoji.fromUnicode("U+1F389"))));
|
||||
}
|
||||
|
||||
new DiscordChannel(user).send(builder);
|
||||
});
|
||||
|
||||
@@ -38,8 +38,7 @@ public class DiscordRanks {
|
||||
private final Map<UserPerm.Prefix, String> prefixToPermName = UserPerm.prefixes.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, entry -> entry.getKey().name().toLowerCase()));
|
||||
|
||||
public void update(SteamwarUser user) {
|
||||
if (user.getDiscordId() == null)
|
||||
return;
|
||||
if (user.getDiscordId() == null) return;
|
||||
|
||||
Set<String> swRoles = new HashSet<>(DiscordBot.getInstance().getConfig().getRanks().values());
|
||||
|
||||
@@ -51,11 +50,13 @@ public class DiscordRanks {
|
||||
.filter(role -> !role.getId().equals(prefixRole))
|
||||
.forEach(role -> guild.removeRoleFromMember(member, role).queue());
|
||||
|
||||
if (prefixRole != null && member.getRoles().stream().noneMatch(role -> role.getId().equals(prefixRole)))
|
||||
if (prefixRole != null && member.getRoles().stream().noneMatch(role -> role.getId().equals(prefixRole))) {
|
||||
guild.addRoleToMember(member, guild.getRoleById(prefixRole)).queue();
|
||||
}
|
||||
}, e -> {
|
||||
if (e instanceof ErrorResponseException err && err.getErrorCode() == 10007)
|
||||
if (e instanceof ErrorResponseException err && err.getErrorCode() == 10007) {
|
||||
user.setDiscordId(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,8 +78,7 @@ public class SWInventory {
|
||||
public void handleClose() {
|
||||
if (processingClick.compareAndSet(false, true)) {
|
||||
InventoryCallbackHandler.inventoryHashMap.remove(player.user().getId(), this);
|
||||
if (close != null)
|
||||
close.clicked(null);
|
||||
if (close != null) close.clicked(null);
|
||||
processingClick.set(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,6 @@ public class SWItem {
|
||||
private List<Message> lore = new ArrayList<>();
|
||||
@Getter
|
||||
private InvCallback callback;
|
||||
private int color = 0;
|
||||
private int customModelData = 0;
|
||||
|
||||
public SWItem(String material, Message title) {
|
||||
@@ -70,14 +69,15 @@ public class SWItem {
|
||||
object.addProperty("material", material);
|
||||
object.addProperty("position", position);
|
||||
object.addProperty("title", player.parseToLegacy(title));
|
||||
if (skullOwner != null)
|
||||
if (skullOwner != null) {
|
||||
object.addProperty("skullOwner", skullOwner);
|
||||
if (enchanted)
|
||||
}
|
||||
if (enchanted) {
|
||||
object.addProperty("enchanted", true);
|
||||
if (hideAttributes)
|
||||
}
|
||||
if (hideAttributes) {
|
||||
object.addProperty("hideAttributes", true);
|
||||
if (color != 0)
|
||||
object.addProperty("color", color);
|
||||
}
|
||||
if (lore != null) {
|
||||
JsonArray array = new JsonArray();
|
||||
for (Message lores : lore) {
|
||||
|
||||
@@ -43,22 +43,24 @@ public class SWListInv<T> extends SWInventory {
|
||||
@Override
|
||||
public void open() {
|
||||
if (elements.size() > 54) {
|
||||
if (page != 0)
|
||||
if (page != 0) {
|
||||
addItem(45, new SWItem("LIME_DYE", new Message("INV_PAGE_BACK", "e")), (InvCallback.ClickType click) -> {
|
||||
page--;
|
||||
open();
|
||||
});
|
||||
else
|
||||
} else {
|
||||
addItem(45, new SWItem("GRAY_DYE", new Message("INV_PAGE_BACK", "7")), (InvCallback.ClickType click) -> {
|
||||
});
|
||||
if (page < elements.size() / 45)
|
||||
}
|
||||
if (page < elements.size() / 45) {
|
||||
addItem(53, new SWItem("LIME_DYE", new Message("INV_PAGE_NEXT", "e")), (InvCallback.ClickType click) -> {
|
||||
page++;
|
||||
open();
|
||||
});
|
||||
else
|
||||
} else {
|
||||
addItem(53, new SWItem("GRAY_DYE", new Message("INV_PAGE_NEXT", "7")), (InvCallback.ClickType click) -> {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
int ipageLimit = elements.size() - page * 45;
|
||||
|
||||
@@ -41,23 +41,25 @@ public class SWStreamInv<T> extends SWInventory {
|
||||
public void open() {
|
||||
List<SWListInv.SWListEntry<T>> entries = constructor.apply(page);
|
||||
|
||||
if (page != 0)
|
||||
if (page != 0) {
|
||||
addItem(45, new SWItem("LIME_DYE", new Message("INV_PAGE_BACK", "e")), (InvCallback.ClickType click) -> {
|
||||
page--;
|
||||
open();
|
||||
});
|
||||
else
|
||||
} else {
|
||||
addItem(45, new SWItem("GRAY_DYE", new Message("INV_PAGE_BACK", "7")), (InvCallback.ClickType click) -> {
|
||||
});
|
||||
}
|
||||
|
||||
if (entries.size() == 45)
|
||||
if (entries.size() == 45) {
|
||||
addItem(53, new SWItem("LIME_DYE", new Message("INV_PAGE_NEXT", "e")), (InvCallback.ClickType click) -> {
|
||||
page++;
|
||||
open();
|
||||
});
|
||||
else
|
||||
} else {
|
||||
addItem(53, new SWItem("GRAY_DYE", new Message("INV_PAGE_NEXT", "7")), (InvCallback.ClickType click) -> {
|
||||
});
|
||||
}
|
||||
|
||||
for (int i = 0; i < entries.size(); i++) {
|
||||
SWListInv.SWListEntry<T> item = entries.get(i);
|
||||
|
||||
@@ -65,8 +65,9 @@ public class BanListener extends BasicListener {
|
||||
perma = true;
|
||||
break;
|
||||
}
|
||||
if (ban.getEndTime().after(highestBan))
|
||||
if (ban.getEndTime().after(highestBan)) {
|
||||
highestBan = ban.getEndTime();
|
||||
}
|
||||
}
|
||||
}
|
||||
ClickEvent clickEvent = ClickEvent.runCommand("/ban " + user.getUserName() + " "
|
||||
|
||||
@@ -67,10 +67,11 @@ public class ChatListener extends BasicListener {
|
||||
command = "/" + command.substring(1);
|
||||
|
||||
CommandExecuteEvent.CommandResult result = e.getResult();
|
||||
if (result.isForwardToServer())
|
||||
if (result.isForwardToServer()) {
|
||||
result = CommandExecuteEvent.CommandResult.forwardToServer(command);
|
||||
else if (result.isAllowed())
|
||||
} else if (result.isAllowed()) {
|
||||
result = CommandExecuteEvent.CommandResult.command(command);
|
||||
}
|
||||
|
||||
e.setResult(result);
|
||||
}
|
||||
@@ -132,8 +133,9 @@ public class ChatListener extends BasicListener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (isMistypedCommand(player, message))
|
||||
if (isMistypedCommand(player, message)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Subserver subserver = Subserver.getSubserver(player);
|
||||
String serverName = AuditLog.SERVER_NAME_VELOCITY;
|
||||
@@ -156,12 +158,12 @@ public class ChatListener extends BasicListener {
|
||||
String command = message.substring(1);
|
||||
boolean isCommand = message.startsWith("7") && command.matches("^[7/]?[A-Za-z]+");
|
||||
if (isCommand && Boolean.FALSE.equals(VelocityCore.getProxy().getCommandManager().executeAsync(player, command).join())) {
|
||||
if (command.startsWith("7"))
|
||||
if (command.startsWith("7")) {
|
||||
command = "/" + command.substring(1);
|
||||
}
|
||||
message = "/" + command;
|
||||
|
||||
if (filteredCommand(Chatter.of(player), message))
|
||||
return true;
|
||||
if (filteredCommand(Chatter.of(player), message)) return true;
|
||||
|
||||
player.spoofChatInput(message);
|
||||
}
|
||||
@@ -172,15 +174,13 @@ public class ChatListener extends BasicListener {
|
||||
public static void sendChat(Chatter sender, ChatterGroup receivers, String format, Chatter msgReceiver, String message) {
|
||||
SteamwarUser user = sender.user();
|
||||
final String coloredMessage = user.hasPerm(UserPerm.COLOR_CHAT) ? message.replace('&', '§') : message;
|
||||
if (chatFilter(sender, coloredMessage))
|
||||
return;
|
||||
if (chatFilter(sender, coloredMessage)) return;
|
||||
|
||||
boolean noReceiver = true;
|
||||
for (Chatter player : receivers.getChatters()) {
|
||||
if (player.chatShown()) {
|
||||
chatToReciever(player, msgReceiver, user, format, coloredMessage);
|
||||
if (sender.user().getId() != player.user().getId())
|
||||
noReceiver = false;
|
||||
if (sender.user().getId() != player.user().getId()) noReceiver = false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -200,11 +200,9 @@ public class ChatListener extends BasicListener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (ChatListener.filteredCommand(sender, message))
|
||||
return;
|
||||
if (ChatListener.filteredCommand(sender, message)) return;
|
||||
|
||||
if (!message.startsWith("/") && chatFilter(sender, message))
|
||||
return;
|
||||
if (!message.startsWith("/") && chatFilter(sender, message)) return;
|
||||
|
||||
sender.getPlayer().spoofChatInput(message);
|
||||
}
|
||||
@@ -226,15 +224,17 @@ public class ChatListener extends BasicListener {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (PunishmentCommand.isPunishedWithMessage(sender, Punishment.PunishmentType.Mute))
|
||||
return true;
|
||||
if (PunishmentCommand.isPunishedWithMessage(sender, Punishment.PunishmentType.Mute)) return true;
|
||||
|
||||
if (message.contains("LIXFEL"))
|
||||
if (message.contains("LIXFEL")) {
|
||||
specialAlert(sender, "Lixfel", "CHAT_LIXFEL_", 3, 6, 11, 12, 15);
|
||||
if (message.contains("YOYONOW"))
|
||||
}
|
||||
if (message.contains("YOYONOW")) {
|
||||
specialAlert(sender, "YoyoNow", "CHAT_YOYONOW_", 3, 6, 11, 12);
|
||||
if (message.contains("CHAOSCAOT"))
|
||||
}
|
||||
if (message.contains("CHAOSCAOT")) {
|
||||
specialAlert(sender, "Chaoscaot", "CHAT_CHAOSCAOT_", 3, 6, 11, 12, 15, 17);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -271,8 +271,7 @@ public class ChatListener extends BasicListener {
|
||||
}
|
||||
|
||||
private static String highlightMentions(String message, String returnColor, Chatter player) {
|
||||
if (!message.contains("@"))
|
||||
return message;
|
||||
if (!message.contains("@")) return message;
|
||||
|
||||
String mark = "@" + player.user().getUserName();
|
||||
return Arrays.stream(message.split(" ")).map(cur -> {
|
||||
@@ -290,10 +289,11 @@ public class ChatListener extends BasicListener {
|
||||
int i = 0;
|
||||
while (i < suggestions.size()) {
|
||||
String suggestion = suggestions.get(i);
|
||||
if (suggestion.startsWith("/") && suggestion.contains(":"))
|
||||
if (suggestion.startsWith("/") && suggestion.contains(":")) {
|
||||
suggestions.remove(i);
|
||||
else
|
||||
} else {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,12 +44,14 @@ public class CheckListener extends BasicListener {
|
||||
|
||||
List<SchematicNode> uncheckedSchematics = new ArrayList<>();
|
||||
for (SchematicType type : SchematicType.values()) {
|
||||
if (type.check())
|
||||
if (type.check()) {
|
||||
uncheckedSchematics.addAll(SchematicNode.getAllSchematicsOfType(sender.user().getId(), type.toDB()));
|
||||
}
|
||||
}
|
||||
|
||||
if (!uncheckedSchematics.isEmpty())
|
||||
if (!uncheckedSchematics.isEmpty()) {
|
||||
sender.system("CHECK_UNCHECKED", uncheckedSchematics.size());
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -57,15 +59,17 @@ public class CheckListener extends BasicListener {
|
||||
Player player = e.getPlayer();
|
||||
if (CheckCommand.isChecking(player)) {
|
||||
Subserver server = Subserver.getSubserver(e.getServer().getServerInfo());
|
||||
if (!Subserver.isBuild(server) || ((Bauserver) server).getOwner() != player.getUniqueId())
|
||||
if (!Subserver.isBuild(server) || ((Bauserver) server).getOwner() != player.getUniqueId()) {
|
||||
CheckCommand.abort(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerDisconnect(DisconnectEvent e) {
|
||||
Player player = e.getPlayer();
|
||||
if (CheckCommand.isChecking(player))
|
||||
if (CheckCommand.isChecking(player)) {
|
||||
CheckCommand.abort(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,16 +60,18 @@ public class ConnectionListener extends BasicListener {
|
||||
@Subscribe
|
||||
public void onPermissionSetup(PermissionsSetupEvent event) {
|
||||
event.setProvider(subject -> {
|
||||
if (!(subject instanceof Player player))
|
||||
if (!(subject instanceof Player player)) {
|
||||
return perm -> Tristate.TRUE;
|
||||
}
|
||||
|
||||
Set<UserPerm> perms = SteamwarUser.getOrCreate(player.getUniqueId(), player.getUsername(), ConnectionListener::newPlayer).perms();
|
||||
if (perms.contains(UserPerm.ADMINISTRATION))
|
||||
if (perms.contains(UserPerm.ADMINISTRATION)) {
|
||||
return perm -> Tristate.TRUE;
|
||||
else if (perms.contains(UserPerm.TEAM))
|
||||
} else if (perms.contains(UserPerm.TEAM)) {
|
||||
return perm -> Tristate.fromBoolean(TEAM_PERMISSIONS.contains(perm));
|
||||
else
|
||||
} else {
|
||||
return perm -> Tristate.FALSE;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -79,8 +81,7 @@ public class ConnectionListener extends BasicListener {
|
||||
SteamwarUser user = SteamwarUser.get(player.getUniqueId());
|
||||
Chatter chatter = Chatter.of(player);
|
||||
|
||||
if (user.hasPerm(UserPerm.CHECK))
|
||||
CheckCommand.sendReminder(chatter);
|
||||
if (user.hasPerm(UserPerm.CHECK)) CheckCommand.sendReminder(chatter);
|
||||
|
||||
for (Subserver subserver : Subserver.getServerList()) {
|
||||
if (Subserver.isArena(subserver)) {
|
||||
|
||||
@@ -36,10 +36,8 @@ public class CookieEvents extends BasicListener {
|
||||
@Subscribe
|
||||
public void handleCookies(CookieReceiveEvent e) {
|
||||
System.out.println(e.getOriginalKey() + " " + e.getOriginalData());
|
||||
if (!e.getOriginalKey().namespace().equals(EventModeListener.EVENT_TO_SPECTATE_KEY.namespace()))
|
||||
return;
|
||||
if (!e.getOriginalKey().value().equals(EventModeListener.EVENT_TO_SPECTATE_KEY.value()))
|
||||
return;
|
||||
if (!e.getOriginalKey().namespace().equals(EventModeListener.EVENT_TO_SPECTATE_KEY.namespace())) return;
|
||||
if (!e.getOriginalKey().value().equals(EventModeListener.EVENT_TO_SPECTATE_KEY.value())) return;
|
||||
e.setResult(CookieReceiveEvent.ForwardResult.handled());
|
||||
Player player = e.getPlayer();
|
||||
SteamwarUser user = SteamwarUser.get(player.getUniqueId());
|
||||
|
||||
@@ -74,8 +74,7 @@ public class EventModeListener extends BasicListener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Referee.get(event.getEventID()).contains(user.getId()))
|
||||
return;
|
||||
if (Referee.get(event.getEventID()).contains(user.getId())) return;
|
||||
|
||||
if (player.getProtocolVersion().lessThan(ProtocolVersion.MINECRAFT_1_20_5)) {
|
||||
sender.system("EVENTMODE_KICK");
|
||||
@@ -94,8 +93,7 @@ public class EventModeListener extends BasicListener {
|
||||
|
||||
SteamwarUser user = SteamwarUser.get(player.getUniqueId());
|
||||
Event event = Event.get();
|
||||
if (event != null && Referee.get(event.getEventID()).contains(user.getId()))
|
||||
return;
|
||||
if (event != null && Referee.get(event.getEventID()).contains(user.getId())) return;
|
||||
|
||||
List<EventFight> activeFights = EventFight.getActiveFights();
|
||||
|
||||
|
||||
@@ -520,8 +520,9 @@ public class PluginMessage extends BasicListener {
|
||||
String brand = event.getBrand();
|
||||
|
||||
VelocityCore.getLogger().log(knownBrands.contains(brand) ? Level.INFO : Level.WARNING, () -> player.getUsername() + " joins with brand: " + brand);
|
||||
if (brand.equals("badlion"))
|
||||
if (brand.equals("badlion")) {
|
||||
badlion.sendRestrictions(player);
|
||||
}
|
||||
}
|
||||
|
||||
private void registerPassthroughToClient(String... channels) {
|
||||
@@ -547,8 +548,9 @@ public class PluginMessage extends BasicListener {
|
||||
|
||||
private void register(String channel, boolean clientSideRegister, Parser handler) {
|
||||
handlers.put(channel, handler);
|
||||
if (clientSideRegister)
|
||||
if (clientSideRegister) {
|
||||
VelocityCore.getProxy().getChannelRegistrar().register(channel.indexOf(':') != -1 ? MinecraftChannelIdentifier.from(channel) : new LegacyChannelIdentifier(channel));
|
||||
}
|
||||
}
|
||||
|
||||
private void serverRegistersChannel(PluginMessageEvent event) {
|
||||
@@ -568,10 +570,11 @@ public class PluginMessage extends BasicListener {
|
||||
|
||||
private Parser directional(Parser fromServer, Parser fromPlayer) {
|
||||
return event -> {
|
||||
if (event.getSource() instanceof Player)
|
||||
if (event.getSource() instanceof Player) {
|
||||
fromPlayer.handle(event);
|
||||
else
|
||||
} else {
|
||||
fromServer.handle(event);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -56,11 +56,9 @@ public class VersionAnnouncer extends BasicListener {
|
||||
}).delay(Duration.of(100, ChronoUnit.MILLIS)).schedule();
|
||||
}
|
||||
|
||||
if (playerVersion == serverVersion)
|
||||
return;
|
||||
if (playerVersion == serverVersion) return;
|
||||
|
||||
if (!Subserver.isBuild(Subserver.getSubserver(server)))
|
||||
return;
|
||||
if (!Subserver.isBuild(Subserver.getSubserver(server))) return;
|
||||
|
||||
player.sendActionBar(Chatter.of(player).parse("SERVER_VERSION", ProtocolVersion.getProtocolVersion(serverVersion).getMostRecentSupportedVersion()));
|
||||
}
|
||||
|
||||
@@ -60,8 +60,9 @@ public class FML extends BasicListener {
|
||||
}
|
||||
|
||||
//if(isFML(player, "\0FML\0"))
|
||||
if (player.getProtocolVersion().lessThan(ProtocolVersion.MINECRAFT_1_13))
|
||||
if (player.getProtocolVersion().lessThan(ProtocolVersion.MINECRAFT_1_13)) {
|
||||
player.sendPluginMessage(new LegacyChannelIdentifier(CHANNEL), helloPacket);
|
||||
}
|
||||
}
|
||||
|
||||
public void handlePluginMessage(PluginMessageEvent event) {
|
||||
|
||||
@@ -78,8 +78,7 @@ public class FML2 extends BasicListener {
|
||||
boolean fml2 = isFML(connection, "\0FML2\0");
|
||||
boolean fml3 = isFML(connection, "\0FML3\0");
|
||||
boolean forge = isFML(connection, "\0FORGE");
|
||||
if (!fml2 && !fml3 && !forge)
|
||||
return;
|
||||
if (!fml2 && !fml3 && !forge) return;
|
||||
|
||||
FML2LoginHandler handler = new FML2LoginHandler(connection, event.getUniqueId(), forge);
|
||||
|
||||
@@ -107,8 +106,9 @@ public class FML2 extends BasicListener {
|
||||
}
|
||||
|
||||
ProtocolUtils.writeVarInt(packet, 0); // Registries amount
|
||||
if (fml3)
|
||||
if (fml3) {
|
||||
ProtocolUtils.writeVarInt(packet, 0); // DataPacks amount
|
||||
}
|
||||
|
||||
ProtocolUtils.writeVarInt(buf, packet.readableBytes());
|
||||
buf.writeBytes(packet);
|
||||
|
||||
@@ -105,8 +105,7 @@ public class FabricModSender extends BasicListener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ModUtils.handleMods(player, mods))
|
||||
return;
|
||||
if (!ModUtils.handleMods(player, mods)) return;
|
||||
|
||||
if (!Storage.fabricCheckedPlayers.containsKey(player)) {
|
||||
Storage.fabricCheckedPlayers.put(player, data.hashCode());
|
||||
|
||||
@@ -47,8 +47,7 @@ public class Hostname extends BasicListener {
|
||||
public static String getExtraHandshakeData(LoginInboundConnection loginInboundConnection) {
|
||||
HandshakePacket handshakePacket = handshake.get(getInitialInboundConnection(loginInboundConnection));
|
||||
int i = handshakePacket.getServerAddress().indexOf('\0');
|
||||
if (i == -1)
|
||||
return "";
|
||||
if (i == -1) return "";
|
||||
|
||||
return handshakePacket.getServerAddress().substring(i);
|
||||
}
|
||||
@@ -79,11 +78,13 @@ public class Hostname extends BasicListener {
|
||||
@Subscribe
|
||||
public void onHandshake(ConnectionHandshakeEvent event) {
|
||||
String hostname = event.getConnection().getVirtualHost().orElseThrow().getHostName().toLowerCase();
|
||||
if (!knownHostnames.contains(hostname) && !hostname.endsWith(".steamwar.de"))
|
||||
if (!knownHostnames.contains(hostname) && !hostname.endsWith(".steamwar.de")) {
|
||||
VelocityCore.getLogger().log(Level.WARNING, () -> event.getConnection().getRemoteAddress() + " connected with unknown hostname " + hostname);
|
||||
}
|
||||
|
||||
String extraData = getExtraHandshakeData((LoginInboundConnection) event.getConnection());
|
||||
if (!knownExtraData.contains(extraData))
|
||||
if (!knownExtraData.contains(extraData)) {
|
||||
VelocityCore.getLogger().log(Level.WARNING, () -> event.getConnection().getRemoteAddress() + " connected with unknown extra data " + extraData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,8 +61,7 @@ public class LabyMod {
|
||||
|
||||
ByteBuf buf = Unpooled.wrappedBuffer(event.getData());
|
||||
String purpose = ProtocolUtils.readString(buf);
|
||||
if (!"INFO".equals(purpose))
|
||||
return;
|
||||
if (!"INFO".equals(purpose)) return;
|
||||
|
||||
JsonObject message = JsonParser.parseString(ProtocolUtils.readString(buf)).getAsJsonObject();
|
||||
List<Mod> mods = new LinkedList<>();
|
||||
|
||||
@@ -60,10 +60,11 @@ public class ModUtils {
|
||||
Iterator<Mod> it = mods.iterator();
|
||||
while (it.hasNext()) {
|
||||
Mod mod = it.next();
|
||||
if (mod.getModType() == ModType.UNKLASSIFIED || mod.getModType() == ModType.GREEN || (mod.getModType() == ModType.YOUTUBER_ONLY && user.hasPerm(UserPerm.RESTRICTED_MODS)))
|
||||
if (mod.getModType() == ModType.UNKLASSIFIED || mod.getModType() == ModType.GREEN || (mod.getModType() == ModType.YOUTUBER_ONLY && user.hasPerm(UserPerm.RESTRICTED_MODS))) {
|
||||
it.remove();
|
||||
else if (mod.getModType() == ModType.RED)
|
||||
} else if (mod.getModType() == ModType.RED) {
|
||||
max = ModType.RED;
|
||||
}
|
||||
}
|
||||
|
||||
if (mods.isEmpty()) {
|
||||
|
||||
@@ -55,12 +55,12 @@ public class ReplayMod extends BasicListener {
|
||||
@Subscribe
|
||||
public void onPlayerJoin(ServerPostConnectEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
if (VelocityCore.get().getConfig().lobbyserver().getPlayersConnected().contains(player))
|
||||
return;
|
||||
if (VelocityCore.get().getConfig().lobbyserver().getPlayersConnected().contains(player)) return;
|
||||
|
||||
Subserver subserver = Subserver.getSubserver(player.getCurrentServer().orElseThrow().getServerInfo());
|
||||
if (subserver instanceof Builderserver || (subserver instanceof Bauserver bauserver && bauserver.getOwner().equals(player.getUniqueId())) || DevCommand.getDevServers().containsValue(player.getCurrentServer().orElseThrow().getServer()))
|
||||
if (subserver instanceof Builderserver || (subserver instanceof Bauserver bauserver && bauserver.getOwner().equals(player.getUniqueId())) || DevCommand.getDevServers().containsValue(player.getCurrentServer().orElseThrow().getServer())) {
|
||||
return;
|
||||
}
|
||||
|
||||
PluginMessage.send(player, "Replay|Restrict", "replaymod:restrict", restrict);
|
||||
}
|
||||
|
||||
@@ -67,8 +67,7 @@ public class Tablist extends ChannelInboundHandlerAdapter {
|
||||
}
|
||||
|
||||
public void update(TablistPart global, int seconds) {
|
||||
if (connection == null)
|
||||
return;
|
||||
if (connection == null) return;
|
||||
|
||||
player.sendPlayerListHeaderAndFooter(header(viewer, seconds), viewer.parse(false, "TABLIST_FOOTER", connection.getServerInfo().getName(), ping(), VelocityCore.getProxy().getPlayerCount()));
|
||||
|
||||
@@ -203,8 +202,9 @@ public class Tablist extends ChannelInboundHandlerAdapter {
|
||||
|
||||
if (packet.containsAction(UpsertPlayerInfoPacket.Action.UPDATE_GAME_MODE)) {
|
||||
for (UpsertPlayerInfoPacket.Entry entry : packet.getEntries()) {
|
||||
if (!entry.getProfileId().equals(player.getUniqueId()) && entry.getGameMode() == 3)
|
||||
if (!entry.getProfileId().equals(player.getUniqueId()) && entry.getGameMode() == 3) {
|
||||
entry.setGameMode(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (msg instanceof RemovePlayerInfoPacket packet) {
|
||||
@@ -234,8 +234,9 @@ public class Tablist extends ChannelInboundHandlerAdapter {
|
||||
}
|
||||
} else if (packet.getAction() == LegacyPlayerListItemPacket.UPDATE_GAMEMODE) {
|
||||
for (LegacyPlayerListItemPacket.Item entry : packet.getItems()) {
|
||||
if (!player.getUniqueId().equals(entry.getUuid()) && entry.getGameMode() == 3)
|
||||
if (!player.getUniqueId().equals(entry.getUuid()) && entry.getGameMode() == 3) {
|
||||
entry.setGameMode(1);
|
||||
}
|
||||
}
|
||||
} else if (packet.getAction() == LegacyPlayerListItemPacket.REMOVE_PLAYER) {
|
||||
for (LegacyPlayerListItemPacket.Item entry : packet.getItems()) {
|
||||
@@ -253,15 +254,15 @@ public class Tablist extends ChannelInboundHandlerAdapter {
|
||||
}
|
||||
|
||||
private void sendTabPacket(List<UpsertPlayerInfoPacket.Entry> items, UpsertPlayerInfoPacket.Action action) { //Breaks in 1.19.3 if action != UPDATE_DISPLAY_NAME, ADD_PLAYER or REMOVE_PLAYER
|
||||
if (items.isEmpty())
|
||||
return;
|
||||
if (items.isEmpty()) return;
|
||||
|
||||
if (player.getProtocolVersion().lessThan(ProtocolVersion.MINECRAFT_1_19_3)) {
|
||||
int legacyAction = LegacyPlayerListItemPacket.REMOVE_PLAYER;
|
||||
if (action == UpsertPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME)
|
||||
if (action == UpsertPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME) {
|
||||
legacyAction = LegacyPlayerListItemPacket.UPDATE_DISPLAY_NAME;
|
||||
else if (action == UpsertPlayerInfoPacket.Action.ADD_PLAYER)
|
||||
} else if (action == UpsertPlayerInfoPacket.Action.ADD_PLAYER) {
|
||||
legacyAction = LegacyPlayerListItemPacket.ADD_PLAYER;
|
||||
}
|
||||
|
||||
sendPacket(player, new LegacyPlayerListItemPacket(legacyAction, items.stream().map(item -> new LegacyPlayerListItemPacket
|
||||
.Item(item.getProfileId())
|
||||
@@ -286,10 +287,11 @@ public class Tablist extends ChannelInboundHandlerAdapter {
|
||||
|
||||
private Component header(Chatter p, int seconds) {
|
||||
int phase = (seconds % 10) / 5;
|
||||
if (phase == 0)
|
||||
if (phase == 0) {
|
||||
return p.parse(false, "TABLIST_PHASE_DISCORD");
|
||||
else
|
||||
} else {
|
||||
return p.parse(false, "TABLIST_PHASE_WEBSITE");
|
||||
}
|
||||
}
|
||||
|
||||
private String ping() {
|
||||
@@ -307,8 +309,7 @@ public class Tablist extends ChannelInboundHandlerAdapter {
|
||||
|
||||
private Component getDisplayName(UpsertPlayerInfoPacket.Entry entry) {
|
||||
ComponentHolder displayName = entry.getDisplayName();
|
||||
if (displayName == null)
|
||||
return null;
|
||||
if (displayName == null) return null;
|
||||
|
||||
return displayName.getComponent();
|
||||
}
|
||||
|
||||
@@ -38,8 +38,9 @@ public class TablistBuild implements TablistPart {
|
||||
|
||||
public TablistBuild() {
|
||||
for (RegisteredServer server : VelocityCore.getProxy().getAllServers()) {
|
||||
if (server.getPlayersConnected().isEmpty() || !Subserver.isBuild(Subserver.getSubserver(server.getServerInfo())))
|
||||
if (server.getPlayersConnected().isEmpty() || !Subserver.isBuild(Subserver.getSubserver(server.getServerInfo()))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
servers.add(server);
|
||||
players.put(server, server.getPlayersConnected().stream().sorted(((p1, p2) -> p1.getUsername().compareToIgnoreCase(p2.getUsername()))).map(Item::new).toList());
|
||||
|
||||
@@ -67,8 +67,9 @@ public class TablistManager extends BasicListener implements Disable {
|
||||
tablists.computeIfAbsent(event.getPlayer(), Tablist::new).onServerSwitch();
|
||||
}
|
||||
|
||||
if (event.getPlayer().getProtocolVersion().lessThan(ProtocolVersion.MINECRAFT_1_20))
|
||||
if (event.getPlayer().getProtocolVersion().lessThan(ProtocolVersion.MINECRAFT_1_20)) {
|
||||
Tablist.sendPacket(event.getPlayer(), Tablist.createTeamPacket);
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -96,14 +97,14 @@ public class TablistManager extends BasicListener implements Disable {
|
||||
private void updateTablist() {
|
||||
List<TablistPart> subservers = new ArrayList<>();
|
||||
for (RegisteredServer server : new ArrayList<>(VelocityCore.getProxy().getAllServers())) {
|
||||
if (server.getPlayersConnected().isEmpty())
|
||||
continue;
|
||||
if (server.getPlayersConnected().isEmpty()) continue;
|
||||
|
||||
Subserver subserver = Subserver.getSubserver(server.getServerInfo());
|
||||
if (fightInfos.containsKey(server))
|
||||
if (fightInfos.containsKey(server)) {
|
||||
subservers.add(new TablistServer(server, fightInfos.get(server)));
|
||||
else if (!Subserver.isBuild(subserver))
|
||||
} else if (!Subserver.isBuild(subserver)) {
|
||||
subservers.add(new TablistServer(server));
|
||||
}
|
||||
}
|
||||
subservers.add(new TablistBuild());
|
||||
subservers.sort((s1, s2) -> s1.sortKey().compareToIgnoreCase(s2.sortKey()));
|
||||
|
||||
@@ -93,8 +93,9 @@ public class TablistServer implements TablistPart {
|
||||
return players.stream().map(item -> {
|
||||
Player p = VelocityCore.getProxy().getPlayer(item.getUuid()).orElse(null);
|
||||
if (p == null) return item;
|
||||
if (Subserver.isArena(Subserver.getSubserver(p.getCurrentServer().map(ServerConnection::getServerInfo).orElse(null))))
|
||||
if (Subserver.isArena(Subserver.getSubserver(p.getCurrentServer().map(ServerConnection::getServerInfo).orElse(null)))) {
|
||||
return item;
|
||||
}
|
||||
if (SteamwarUser.get(p.getUniqueId()).getTeam() != team) return item;
|
||||
return new Item(p, true);
|
||||
});
|
||||
|
||||
@@ -40,13 +40,13 @@ public class BauLock {
|
||||
owner.system("BAU_LOCKED_" + state.name());
|
||||
|
||||
Bauserver bauserver = Bauserver.get(owner.user().getUUID());
|
||||
if (bauserver != null)
|
||||
if (bauserver != null) {
|
||||
bauserver.getRegisteredServer().getPlayersConnected().stream().findAny().ifPresent(player -> NetworkSender.send(player, new BaulockUpdatePacket()));
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isLocked(SteamwarUser owner, SteamwarUser target) {
|
||||
if (owner.getId() == target.getId())
|
||||
return false;
|
||||
if (owner.getId() == target.getId()) return false;
|
||||
|
||||
boolean locked;
|
||||
String state = UserConfig.getConfig(owner.getId(), BAU_LOCK_CONFIG_NAME);
|
||||
|
||||
Reference in New Issue
Block a user