diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/QuickSort.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/QuickSort.java index 2cca62139..7ffd56124 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/QuickSort.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/QuickSort.java @@ -1,6 +1,6 @@ package group.aelysium.rustyconnector.common.algorithm; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ISortable; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ISortable; import java.util.List; diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/SingleSort.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/SingleSort.java index b566f0b96..3e8fc2442 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/SingleSort.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/SingleSort.java @@ -1,6 +1,6 @@ package group.aelysium.rustyconnector.common.algorithm; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ISortable; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ISortable; import java.util.List; diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/SortableInteger.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/SortableInteger.java index 6a3b6da52..90487c5ba 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/SortableInteger.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/SortableInteger.java @@ -1,6 +1,6 @@ package group.aelysium.rustyconnector.common.algorithm; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ISortable; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ISortable; public class SortableInteger implements ISortable { int value; diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/WeightOnlyQuickSort.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/WeightOnlyQuickSort.java index 0a0ebe007..7f8c48c9c 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/WeightOnlyQuickSort.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/WeightOnlyQuickSort.java @@ -1,6 +1,6 @@ package group.aelysium.rustyconnector.common.algorithm; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ISortable; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ISortable; import java.util.Collections; import java.util.List; diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/WeightedQuickSort.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/WeightedQuickSort.java index 5aec09cc6..e8eb6c500 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/WeightedQuickSort.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/algorithm/WeightedQuickSort.java @@ -1,6 +1,6 @@ package group.aelysium.rustyconnector.common.algorithm; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ISortable; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ISortable; import java.util.*; diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/config/Config.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/config/Config.java new file mode 100644 index 000000000..d6c47c38f --- /dev/null +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/config/Config.java @@ -0,0 +1,69 @@ +package group.aelysium.rustyconnector.common.config; + +import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; +import org.spongepowered.configurate.ConfigurationNode; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; + +public abstract class Config implements IConfig { + protected String name; + protected String target; + protected File configPointer; + protected ConfigurationNode data; + + public ConfigurationNode nodes() { return this.data; } + public String name() { + return this.name; + } + public String fileTarget() { + return this.target; + } + + protected Config(Path dataFolder, String target, String name) { + this.configPointer = new File(String.valueOf(dataFolder), target); + this.target = target; + this.name = name; + } + + protected Config(Path dataFolder, String target, String name, LangFileMappings.Mapping template) { + this.configPointer = new File(String.valueOf(dataFolder), target); + this.target = target; + this.name = name; + + try { + if (!this.configPointer.exists()) { + File parent = this.configPointer.getParentFile(); + if (!parent.exists()) + parent.mkdirs(); + + InputStream stream; + if (lang.isInline()) + stream = IConfig.getResource(lang.code() + "/" + template.path()); + else + stream = new FileInputStream(lang.get(template)); + + try { + Files.copy(stream, this.configPointer.toPath()); + } catch (IOException e) { + throw new RuntimeException("Unable to setup " + this.configPointer.getName() + "! No further information."); + } + + stream.close(); + } + + try { + this.data = IConfig.loadYAML(this.configPointer); + } catch (Exception e) { + throw new RuntimeException(e); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/config/YAML.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/config/YAML.java deleted file mode 100644 index 3cd916e70..000000000 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/config/YAML.java +++ /dev/null @@ -1,107 +0,0 @@ -package group.aelysium.rustyconnector.common.config; - -import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; -import org.spongepowered.configurate.ConfigurationNode; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Path; - -public abstract class YAML implements IConfig { - protected String name; - protected String target; - protected File configPointer; - protected ConfigurationNode data; - - public ConfigurationNode nodes() { return this.data; } - public String name() { - return this.name; - } - public String fileTarget() { - return this.target; - } - public abstract IConfigService.ConfigKey key(); - - protected YAML(Path dataFolder, String target, String name) { - this.configPointer = new File(String.valueOf(dataFolder), target); - this.target = target; - this.name = name; - } - - protected YAML(Path dataFolder, String target, String name, LangService lang, LangFileMappings.Mapping template) { - this.configPointer = new File(String.valueOf(dataFolder), target); - this.target = target; - this.name = name; - - try { - if (!this.configPointer.exists()) { - File parent = this.configPointer.getParentFile(); - if (!parent.exists()) - parent.mkdirs(); - - InputStream stream; - if (lang.isInline()) - stream = IConfig.getResource(lang.code() + "/" + template.path()); - else - stream = new FileInputStream(lang.get(template)); - - try { - Files.copy(stream, this.configPointer.toPath()); - } catch (IOException e) { - throw new RuntimeException("Unable to setup " + this.configPointer.getName() + "! No further information."); - } - - stream.close(); - } - - try { - this.data = IConfig.loadYAML(this.configPointer); - } catch (Exception e) { - throw new RuntimeException(e); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - /** - * Process the version of this config. - * @throws UnsupportedClassVersionError If the config version doesn't match the plugin version. - * @throws RuntimeException If the config version is invalid or can't be processed. - */ - public void processVersion(int currentVersion) { - try { - Integer version = IConfig.getValue(this.data, "version", Integer.class); - - if(currentVersion > version) - throw new UnsupportedClassVersionError("Your configuration file is outdated! " + - "(v"+ version +" < v"+ currentVersion +") " + - "Please refer to the following link for assistance with upgrading your config! "+MigrationDirections.findUpgradeDirections(version, currentVersion)); - - if(currentVersion != version) - throw new UnsupportedClassVersionError("Your configuration file is from a version of RustyConnector that is newer than the version you currently have installed! We will not provide support for downgrading RustyConnector configs! " + - "(v"+ version +" > v"+ currentVersion +")"); - - return; - } catch (IllegalStateException e1) { - try { - IConfig.getValue(this.data, "version", String.class); - - throw new RuntimeException("You have set the value of `version` in config.yml to be a string! `version` must be an integer!"); - } catch (IllegalStateException e2) { - try { - IConfig.getValue(this.data, "config-version", Integer.class); - - throw new UnsupportedClassVersionError("Your configuration file is outdated! " + - "(v1 < v"+ currentVersion +") " + - "Please refer to the following link for assistance with upgrading your config! "+MigrationDirections.findUpgradeDirections(1, 2)); - } catch (IllegalStateException ignore) {} - } - } - throw new RuntimeException("Could not identify any config version! Make sure that `version` is being used in your `config.yml`!"); - } -} diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/ASCIIAlphabet.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/ASCIIAlphabet.java deleted file mode 100644 index 713902e74..000000000 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/ASCIIAlphabet.java +++ /dev/null @@ -1,415 +0,0 @@ -package group.aelysium.rustyconnector.common.lang; - -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.JoinConfiguration; -import net.kyori.adventure.text.format.NamedTextColor; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static net.kyori.adventure.text.Component.join; -import static net.kyori.adventure.text.Component.text; -import static net.kyori.adventure.text.JoinConfiguration.newlines; - -public interface ASCIIAlphabet { - int font_size = 6; - - Lang.Message WHITESPACE = () -> join( - JoinConfiguration.noSeparators(), - text(" "), - text(" "), - text(" "), - text(" "), - text(" "), - text(" ") - ); - - Lang.Message A = () -> join( - JoinConfiguration.noSeparators(), - text(" █████╗ "), - text("██╔══██╗"), - text("███████║"), - text("██╔══██║"), - text("██║ ██║"), - text("╚═╝ ╚═╝") - ); - Lang.Message B = () -> join( - JoinConfiguration.noSeparators(), - text("██████╗ "), - text("██╔══██╗"), - text("██████╔╝"), - text("██╔══██╗"), - text("██████╔╝"), - text("╚═════╝ ") - ); - Lang.Message C = () -> join( - JoinConfiguration.noSeparators(), - text(" ██████╗"), - text("██╔════╝"), - text("██║ "), - text("██║ "), - text("╚██████╗"), - text(" ╚═════╝") - ); - Lang.Message D = () -> join( - JoinConfiguration.noSeparators(), - text("██████╗ "), - text("██╔══██╗"), - text("██║ ██║"), - text("██║ ██║"), - text("██████╔╝"), - text("╚═════╝ ") - ); - Lang.Message E = () -> join( - JoinConfiguration.noSeparators(), - text("███████╗"), - text("██╔════╝"), - text("█████╗ "), - text("██╔══╝ "), - text("███████╗"), - text("╚══════╝") - ); - Lang.Message F = () -> join( - JoinConfiguration.noSeparators(), - text("███████╗"), - text("██╔════╝"), - text("█████╗ "), - text("██╔══╝ "), - text("██║ "), - text("╚═╝ ") - ); - Lang.Message G = () -> join( - JoinConfiguration.noSeparators(), - text(" ██████╗ "), - text("██╔════╝ "), - text("██║ ███╗"), - text("██║ ██║"), - text("╚██████╔╝"), - text(" ╚═════╝ ") - ); - Lang.Message H = () -> join( - JoinConfiguration.noSeparators(), - text("██╗ ██╗"), - text("██║ ██║"), - text("███████║"), - text("██╔══██║"), - text("██║ ██║"), - text("╚═╝ ╚═╝") - ); - Lang.Message I = () -> join( - JoinConfiguration.noSeparators(), - text("██╗"), - text("██║"), - text("██║"), - text("██║"), - text("██║"), - text("╚═╝") - ); - Lang.Message J = () -> join( - JoinConfiguration.noSeparators(), - text(" ██╗"), - text(" ██║"), - text(" ██║"), - text("██ ██║"), - text("╚█████╔╝"), - text(" ╚════╝ ") - ); - Lang.Message K = () -> join( - JoinConfiguration.noSeparators(), - text("██╗ ██╗"), - text("██║ ██╔╝"), - text("█████╔╝ "), - text("██╔═██╗ "), - text("██║ ██╗"), - text("╚═╝ ╚═╝") - ); - Lang.Message L = () -> join( - JoinConfiguration.noSeparators(), - text("██╗ "), - text("██║ "), - text("██║ "), - text("██║ "), - text("███████╗"), - text("╚══════╝") - ); - Lang.Message M = () -> join( - JoinConfiguration.noSeparators(), - text("███╗ ███╗"), - text("████╗ ████║"), - text("██╔████╔██║"), - text("██║╚██╔╝██║"), - text("██║ ╚═╝ ██║"), - text("╚═╝ ╚═╝") - ); - Lang.Message N = () -> join( - JoinConfiguration.noSeparators(), - text("███╗ ██╗"), - text("████╗ ██║"), - text("██╔██╗ ██║"), - text("██║╚██╗██║"), - text("██║ ╚████║"), - text("╚═╝ ╚═══╝") - ); - Lang.Message O = () -> join( - JoinConfiguration.noSeparators(), - text(" ██████╗ "), - text("██╔═══██╗"), - text("██║ ██║"), - text("██║ ██║"), - text("╚██████╔╝"), - text(" ╚═════╝ ") - ); - Lang.Message P = () -> join( - JoinConfiguration.noSeparators(), - text("██████╗ "), - text("██╔══██╗"), - text("██████╔╝"), - text("██╔═══╝ "), - text("██║ "), - text("╚═╝ ") - ); - Lang.Message Q = () -> join( - JoinConfiguration.noSeparators(), - text(" ██████╗ "), - text("██╔═══██╗"), - text("██║ ██║"), - text("██║▄▄ ██║"), - text("╚██████╔╝"), - text(" ╚══▀▀═╝ ") - ); - Lang.Message R = () -> join( - JoinConfiguration.noSeparators(), - text("██████╗ "), - text("██╔══██╗"), - text("██████╔╝"), - text("██╔══██╗"), - text("██║ ██║"), - text("╚═╝ ╚═╝") - ); - Lang.Message S = () -> join( - JoinConfiguration.noSeparators(), - text("███████╗"), - text("██╔════╝"), - text("███████╗"), - text("╚════██║"), - text("███████║"), - text("╚══════╝") - ); - Lang.Message T = () -> join( - JoinConfiguration.noSeparators(), - text("████████╗"), - text("╚══██╔══╝"), - text(" ██║ "), - text(" ██║ "), - text(" ██║ "), - text(" ╚═╝ ") - ); - Lang.Message U = () -> join( - JoinConfiguration.noSeparators(), - text("██╗ ██╗"), - text("██║ ██║"), - text("██║ ██║"), - text("██║ ██║"), - text("╚██████╔╝"), - text(" ╚═════╝ ") - ); - Lang.Message V = () -> join( - JoinConfiguration.noSeparators(), - text("██╗ ██╗"), - text("██║ ██║"), - text("██║ ██║"), - text("╚██╗ ██╔╝"), - text(" ╚████╔╝ "), - text(" ╚═══╝ ") - ); - Lang.Message W = () -> join( - JoinConfiguration.noSeparators(), - text(" ██╗ ██╗"), - text(" ██║ ██║"), - text(" ██║ █╗ ██║"), - text(" ██║███╗██║"), - text(" ╚███╔███╔╝"), - text(" ╚══╝╚══╝ ") - ); - Lang.Message X = () -> join( - JoinConfiguration.noSeparators(), - text("██╗ ██╗"), - text("╚██╗██╔╝"), - text(" ╚███╔╝ "), - text(" ██╔██╗ "), - text("██╔╝ ██╗"), - text("╚═╝ ╚═╝") - ); - Lang.Message Y = () -> join( - JoinConfiguration.noSeparators(), - text("██╗ ██╗"), - text("╚██╗ ██╔╝"), - text(" ╚████╔╝ "), - text(" ╚██╔╝ "), - text(" ██║ "), - text(" ╚═╝ ") - ); - Lang.Message Z = () -> join( - JoinConfiguration.noSeparators(), - text("███████╗"), - text("╚══███╔╝"), - text(" ███╔╝ "), - text(" ███╔╝ "), - text("███████╗"), - text("╚══════╝") - ); - Lang.Message PERIOD = () -> join( - JoinConfiguration.noSeparators(), - text(" "), - text(" "), - text(" "), - text("████╗"), - text("████║"), - text("╚═══╝") - ); - Lang.Message EXCLAMATION = () -> join( - JoinConfiguration.noSeparators(), - text("██╗"), - text("██║"), - text("██║"), - text("╚═╝"), - text("██╗"), - text("╚═╝") - ); - Lang.Message QUESTION = () -> join( - JoinConfiguration.noSeparators(), - text("██████╗ "), - text("╚════██╗"), - text(" ▄███╔╝"), - text(" ▀▀══╝ "), - text(" ██╗ "), - text(" ╚═╝ ") - ); - Lang.Message DASH = () -> join( - JoinConfiguration.noSeparators(), - text(" "), - text(" "), - text("█████╗"), - text("╚════╝"), - text(" "), - text(" ") - ); - Lang.Message UNDERSCORE = () -> join( - JoinConfiguration.noSeparators(), - text(" "), - text(" "), - text(" "), - text(" "), - text("███████╗"), - text("╚══════╝") - ); - - /** - * Converts a string to an ASCIIAlphabet equivalent. - * This method does not recognize, numbers, punctuation, nor newlines. - */ - static Component generate(String string) { - Map map = map(); - List generatedString = new ArrayList<>(); - - for (int i = 0; i < font_size; i++) { - generatedString.add(text("")); - } - - for(char character : string.toUpperCase().toCharArray()) { - try { - Lang.Message asciiCharacter = map.get(character); - for (int i = 0; i < font_size; i++) { - Component receivingRow = generatedString.get(i); - Component rowToExtract = asciiCharacter.build().children().get(i); - - generatedString.set(i,receivingRow.append(rowToExtract)); - } - } catch (Exception ignored) {} - } - - return join( - newlines(), - generatedString.get(0), - generatedString.get(1), - generatedString.get(2), - generatedString.get(3), - generatedString.get(4), - generatedString.get(5) - ); - } - - /** - * Converts a string to an ASCIIAlphabet equivalent. - * This method does not recognize, numbers, punctuation, nor newlines. - */ - static Component generate(String string, NamedTextColor color) { - Map map = map(); - List generatedString = new ArrayList<>(); - - for (int i = 0; i < font_size; i++) { - generatedString.add(text("")); - } - - for(char character : string.toUpperCase().toCharArray()) { - try { - Lang.Message asciiCharacter = map.get(character); - for (int i = 0; i < font_size; i++) { - Component receivingRow = generatedString.get(i); - Component rowToExtract = asciiCharacter.build().children().get(i); - - generatedString.set(i,receivingRow.append(rowToExtract)); - } - } catch (Exception ignored) {} - } - - return join( - newlines(), - generatedString.get(0).color(color), - generatedString.get(1).color(color), - generatedString.get(2).color(color), - generatedString.get(3).color(color), - generatedString.get(4).color(color), - generatedString.get(5).color(color) - ); - } - - static Map map() { - Map output = new HashMap<>(); - output.put('A',ASCIIAlphabet.A); - output.put('B',ASCIIAlphabet.B); - output.put('C',ASCIIAlphabet.C); - output.put('D',ASCIIAlphabet.D); - output.put('E',ASCIIAlphabet.E); - output.put('F',ASCIIAlphabet.F); - output.put('G',ASCIIAlphabet.G); - output.put('H',ASCIIAlphabet.H); - output.put('I',ASCIIAlphabet.I); - output.put('J',ASCIIAlphabet.J); - output.put('K',ASCIIAlphabet.K); - output.put('L',ASCIIAlphabet.L); - output.put('M',ASCIIAlphabet.M); - output.put('N',ASCIIAlphabet.N); - output.put('O',ASCIIAlphabet.O); - output.put('P',ASCIIAlphabet.P); - output.put('Q',ASCIIAlphabet.Q); - output.put('R',ASCIIAlphabet.R); - output.put('S',ASCIIAlphabet.S); - output.put('T',ASCIIAlphabet.T); - output.put('U',ASCIIAlphabet.U); - output.put('V',ASCIIAlphabet.V); - output.put('W',ASCIIAlphabet.W); - output.put('X',ASCIIAlphabet.X); - output.put('Y',ASCIIAlphabet.Y); - output.put('Z',ASCIIAlphabet.Z); - output.put(' ',ASCIIAlphabet.WHITESPACE); - output.put('.',ASCIIAlphabet.PERIOD); - output.put('-',ASCIIAlphabet.DASH); - output.put('!',ASCIIAlphabet.EXCLAMATION); - output.put('?',ASCIIAlphabet.QUESTION); - output.put('_',ASCIIAlphabet.UNDERSCORE); - return output; - }; -} diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/Lang.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/Lang.java deleted file mode 100644 index 28ad636cd..000000000 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/Lang.java +++ /dev/null @@ -1,89 +0,0 @@ -package group.aelysium.rustyconnector.common.lang; - -import group.aelysium.rustyconnector.toolkit.common.logger.IPluginLogger; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.JoinConfiguration; - -import static net.kyori.adventure.text.Component.*; - -public class Lang { - public final static String attachedWordmark = "RustyConnector:"; - /* - * AQUA - For when data is successfully returned or when we send usage info - * RED - For when an error has occurred. - * ORANGE/YELLOW - For emphasis or highlighting. - */ - public final static JoinConfiguration newlines() { - return JoinConfiguration.separator(newline()); - } - - public interface Message { - Component build(); - - default void send(IPluginLogger sender) { - sender.send( - join( - newlines(), - text(attachedWordmark), - build() - ) - ); - } - } - public interface ParameterizedMessage1 { - Component build(A1 arg1); - - default void send(IPluginLogger sender, A1 arg1) { - sender.send( - join( - JoinConfiguration.separator(newline()), - text(attachedWordmark), - build(arg1) - ) - ); - } - } - public interface ParameterizedMessage2 { - Component build(A1 arg1, A2 arg2); - - default void send(IPluginLogger sender, A1 arg1, A2 arg2) { - sender.send( - join( - newlines(), - text(attachedWordmark), - build(arg1, arg2) - ) - ); - } - } - public interface ParameterizedMessage3 { - Component build(A1 arg1, A2 arg2, A3 arg3); - - default void send(IPluginLogger sender, A1 arg1, A2 arg2, A3 arg3) { - sender.send( - join( - newlines(), - text(attachedWordmark), - build(arg1, arg2, arg3) - ) - ); - } - } - public interface ParameterizedMessage4 { - Component build(A1 arg1, A2 arg2, A3 arg3, A4 arg4); - - default void send(IPluginLogger sender, A1 arg1, A2 arg2, A3 arg3, A4 arg4) { - sender.send( - join( - newlines(), - text(attachedWordmark), - build(arg1, arg2, arg3, arg4) - ) - ); - } - } -} - - - - diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/Library.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/Library.java deleted file mode 100644 index aede6d1f4..000000000 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/Library.java +++ /dev/null @@ -1,35 +0,0 @@ -package group.aelysium.rustyconnector.common.lang; - -import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; -import org.jetbrains.annotations.NotNull; - -public class Library implements Particle { - protected Library(@NotNull MCLoaderSettings settings) { - - } - protected Library(@NotNull ProxySettings settings) { - - } - - @Override - public void close() throws Exception { - - } - - public record MCLoaderSettings( - @NotNull Lang lang, - @NotNull IConfig git, - @NotNull IConfig config - ) {} - public record ProxySettings( - @NotNull Lang lang, - @NotNull IConfig git, - @NotNull IConfig config, - @NotNull IConfig family, - @NotNull IConfig loadBalancer, - @NotNull IConfig whitelist, - @NotNull IConfig magicConfig, - @NotNull IConfig magicLink - ) {} -} diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/config/RootLanguageConfig.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/config/RootLanguageConfig.java index f39bf3d6e..d7f5bcc83 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/config/RootLanguageConfig.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/lang/config/RootLanguageConfig.java @@ -1,9 +1,9 @@ package group.aelysium.rustyconnector.common.lang.config; import group.aelysium.rustyconnector.toolkit.common.config.IConfigService; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.logger.IPluginLogger; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import group.aelysium.rustyconnector.common.exception.NoOutputException; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; @@ -12,7 +12,7 @@ import java.nio.file.Files; import java.nio.file.Path; -public class RootLanguageConfig extends YAML { +public class RootLanguageConfig extends Config { protected RootLanguageConfig(Path dataFolder) { super(dataFolder, "language.yml", "language"); } @@ -29,7 +29,7 @@ protected void generate(IPluginLogger logger) throws Exception { parent.mkdirs(); try { - InputStream stream = YAML.class.getClassLoader().getResourceAsStream("language.yml"); + InputStream stream = Config.class.getClassLoader().getResourceAsStream("language.yml"); Files.copy(stream, this.configPointer.toPath()); } catch (Exception e) { throw new RuntimeException(e); diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/magic_link/MagicLinkCore.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/magic_link/MagicLinkCore.java index d7079ad89..add8a299c 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/magic_link/MagicLinkCore.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/magic_link/MagicLinkCore.java @@ -11,7 +11,7 @@ import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.PacketListener; import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.PacketStatus; import group.aelysium.rustyconnector.toolkit.common.message_cache.ICacheableMessage; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import org.jetbrains.annotations.NotNull; import java.util.List; diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/magic_link/PacketManager.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/magic_link/PacketManager.java index e0f9cb826..2076972d5 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/magic_link/PacketManager.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/magic_link/PacketManager.java @@ -1,7 +1,7 @@ package group.aelysium.rustyconnector.common.magic_link; import group.aelysium.rustyconnector.toolkit.common.cache.TimeoutCache; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import java.util.Map; import java.util.UUID; diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/model/FailService.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/model/FailService.java index d28d0fad7..8e511619d 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/model/FailService.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/model/FailService.java @@ -3,7 +3,7 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import group.aelysium.rustyconnector.toolkit.common.crypt.Snowflake; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; public class FailService implements AutoCloseable { protected final Cache fails; diff --git a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/packets/MagicLink.java b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/packets/MagicLink.java index 94365e66f..7355b8420 100644 --- a/plugin/common/src/main/java/group/aelysium/rustyconnector/common/packets/MagicLink.java +++ b/plugin/common/src/main/java/group/aelysium/rustyconnector/common/packets/MagicLink.java @@ -2,7 +2,7 @@ import group.aelysium.rustyconnector.common.magic_link.Packet; import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.IPacket; -import group.aelysium.rustyconnector.toolkit.velocity.util.ColorMapper; +import group.aelysium.rustyconnector.toolkit.proxy.util.ColorMapper; import net.kyori.adventure.text.format.NamedTextColor; import java.util.*; diff --git a/plugin/common/src/main/resources/en_us/README.md b/plugin/common/src/main/resources/en_us/README.md deleted file mode 100644 index 8da3fa30e..000000000 --- a/plugin/common/src/main/resources/en_us/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Translation Contribution -Interested in contributing to RC translation? -Be sure to talk with us in [our Discord](http://join.aelysium.group/)! - -Make sure that any submitted lang files have been fully tested, and work properly! - -## Compiling the zip -The zip should have a name in accordance with RFC4545 naming standards. - -When compiling the zip, make sure you zip the parent folder. So in other words: -```yml -en_us.zip: - en_us: - - README.md - - language.yml - configs: - mcloader: [] - proxy: [] -``` -Make sure that both the parent folder and also the zip file have the same name. \ No newline at end of file diff --git a/plugin/common/src/main/resources/en_us/language.yml b/plugin/common/src/main/resources/en_us/language.yml deleted file mode 100644 index 30566bc88..000000000 --- a/plugin/common/src/main/resources/en_us/language.yml +++ /dev/null @@ -1,309 +0,0 @@ -# -# Language -# This file contains all non-config text messages that are sent by RC. -# This obviously excludes Exception and Error messages that are sent to console. -# -# Text represented as variables are defined as: -# These variable names must not be changed, but feel free to move them around so that -# the injected data appears properly in your translated text! -# -# Strings support Lenient MiniMessage formatting. For more info, read here: -# https://docs.advntr.dev/minimessage/format.html#minimessage-format -# -# Nodes with a hashtag after them do not support MiniMessage. -# These nodes are dynamically colored by the plugin. -# -# Targeted Language: en-us -# Translated by: Juice -# -version: "v0.8.0" -core: - single_word: - reason: "Reason" # No MiniMessage - status: "Status" # No MiniMessage - id: "ID" # No MiniMessage - timestamp: "Timestamp" # No MiniMessage - contents: "Contents" # No MiniMessage - pages: "Pages" # No MiniMessage - usage: "Usage" # No MiniMessage - leader: "Leader" # No MiniMessage - party: "Party" # No MiniMessage - leave: "Leave" # No MiniMessage - disband: "Disband" # No MiniMessage - accept: "Accept" # No MiniMessage - deny: "Deny" # No MiniMessage - ignore: "Ignore" # No MiniMessage - date: "Date" # No MiniMessage - boot_wordmark: - developed_by: "Developed by" # No MiniMessage - usage: "Use: `/rc` to get started" # No MiniMessage - unknown_command: "Unknown command. Type \"/help\" for help." # No MiniMessage - no_permission: "You do not have permission to do this." - no_player: " has never joined the network!" - internal_error: "There was an internal error while trying to complete your request." -proxy: - server: - already_connected: "You're already connected to this server." - root: - usage: - description: - - "Blue commands will return information or data to you! They will not cause changes to be made." - - "Orange commands will make the plugin do something. Make sure you know what these commands do before using them!" - command_description: - family: "View family related information." - message: "Access recently sent RustyConnector messages." - reload: "Reload entire plugin." - send: "Send players from families and servers to other families or servers." - message: - usage: - get: "Pulls a message out of the message cache. If a message is to old it might not be available anymore!" - list: "Lists all currently cached messages! As new messages get cached, older ones will be pushed out of the cache." - get: - usage: "Pulls a message out of the message cache. If a message is to old it might not be available anymore!" - tpa: - usage: - deny: "Ignore a tpa request from a user." - accept: "Accept a tpa request from a user." - sender_failure: "Unable to tpa to !" - target_failure: "Unable to tpa to you!" - self_failure: "You can't teleport to yourself!" - not_online: " isn't online!" - no_requests: " hasn't sent you any requests!" - pending_request: "You already have a pending tpa request to !" - request_confirmation: "You requested to teleport to !" - not_friends: "You and aren't friends! You can only /tpa to friends!" - target_query: - query: "Hey! has requested to teleport to you!" - accept_tooltip: "Let teleport to you" # No MiniMessage - deny_tooltip: "Deny 's teleport request" # No MiniMessage - sender_accepted: - - " accepted your request!" - - "Attempting to teleport..." - target_accepted: - - "'s tpa request has been accepted!" - - "Attempting to teleport..." - sender_deny: - - " denied your request!" - target_deny: - - "'s tpa request has been denied!" - - "They've been notified..." - expired_request: "Your tpa request to has expired!" - bypassed_request: "You teleported to without sending a request." - hub: - connection_failed: "Failed to connect you to the hub!" - send: - usage: - family: "Sends a player from one family to another!" - server: - - "Forces a player to connect to a specific server on the proxy. This bypasses player caps and family whitelists." - - "If you have multiple servers with the same name, this feature may send players to a server other than the one you intended." - no_player: "There is no online player with the username: " - no_family: "There is no family with the name: " - no_server: "There is no family with the name: " - same_family: "You're already in that server" - family: - description: - - "Families are colored as: Scalar, Static, and Ranked." - - "The family with a star (*) is the root family." - details_usage: "See more details about a particular family." - generic: - servers: - no_registered_servers: "There are no registered servers." - no_locked_servers: "There are no locked servers." - no_unlocked_servers: "There are no unlocked servers." - open_servers: "Open Servers" - locked_servers: "Locked Servers" - details: " ---| . []() [ ( <> ) w-]" # No MiniMessage - command_descriptions: - players: "Returns a list of the players in this family." - sort: "Will cause the family to completely resort itself in accordance with it's load balancing algorithm." - reset_index: "Will reset the family's input to the first server in the family." - locked: "Shows all locked servers instead of unlocked." - scalar: - panel: - info: - - " ---| Display Name: " - - " ---| Parent Family: " - - " ---| Online Players: " - - "" - - " ---| Servers:" - - " | - Total: " - - " | - Open: " - - " | - Locked: " - - "" - - " ---| Load Balancing:" - - " | - Algorithm: " - - " | - Weighted Sorting: " - - " | - Persistence: " - static: - residence: - missing: "The server you were meant to be connected to is unavailable! In the meantime you've been connected to a fallback server!" - blocked_join_attempt: "The server you were meant to be connected to is unavailable! Please try again later!" - panel: - info: - - " ---| Display Name: " - - " ---| Parent Family: " - - " ---| Online Players: " - - "" - - " ---| Resident Server Expiration: " - - " ---| Servers:" - - " | - Total: " - - " | - Open: " - - " | - Locked: " - - "" - - " ---| Load Balancing:" - - " | - Algorithm: " - - " | - Weighted Sorting: " - - " | - Persistence: " - ranked: - in_party: "You're not allowed to enter matchmaking while in a party!" - in_matchmaker_queue: "You're already waiting in a matchmaking queue!" - in_matchmaker_game: "You're already playing in an active game session!" - panel: - info: - - " ---| Display Name: " - - " ---| Parent Family: " - - "" - - " ---| Players:" - - " | - Total: " - - " | - Active: " - - " | - Waiting: " - - "" - - " ---| Sessions:" - - " | - Total: " - - " | - Active: " - - " | - Waiting: " - - "" - - " ---| Servers:" - - " | - Total: " - - " | - Available: " - - " | - In Session: " - - "" - - " ---| Matchmaker:" - - " | - Algorithm: " - party: - injected_error: - only_leader_can_invite: "Only the party leader can invite other players!" # No MiniMessage - friends_restriction_conflict: "You have parties set to only allow players to invite their friends! But the Friends module is disabled! Ignoring..." # - friends_restriction: "You are only allowed to invite friends to join your party!" # No MiniMessage - acknowledged: "This invite has already been closed!" # No MiniMessage - expired_invite: "This invite has expired!" # No MiniMessage - no_sender: "The sender is no longer online!" # No MiniMessage - no_target: "The invited player is no longer online!" # No MiniMessage - invalid_leader_invite: "The leader that invited you to their party is either no longer in it or isn't the leader anymore!" # No MiniMessage - invalid_member_invite: "The member that invited you to their party is no longer in it!" # No MiniMessage - invite: - sent: "You invited to join your party!" - no_double_dipping: "You must leave your current party before joining another party." - target_not_online: " isn't online for you to join their party!" - expired: "That invite seems to have expired!" - not_online: "You can only send invites to players that are currently online with you!" - friends_only: "You can only send invites to your friends!" - self_invite: "You can't invite yourself to your own party!" - already_a_member: " is already in your party!" - no_invite: "It doesn't seem like has sent you any invites!" - ignore: "Party invite from ignored." - receiver_invite_query: - query: "Hey! wants you to join their party!" - hover: - accept: "Accept party invite" - ignore: "Ignore party invite" - create: - button: "Click here to create a party." - already_in_party: "You can't start a party if you're already in one!" - no_server: "You have to be connected to a server in order to create a party!" - only_leader_can: - disband: "Only the party leader can disband the party!" - switch: "Only the party leader can switch servers!" - kick: "Only the party leader can kick people!" - promote: "Only the party leader can promote people!" - invite: "Only the party leader can invite people!" - no_party: "You aren't in a party!" - no_member: " isn't in your party!" - disbanded: "Your party has been disbanded." - party_joined_self: "You joined the party!" - party_joined: " joined the party." - kicked: "You were kicked from your party." - status_promoted: " was promoted to party leader." - promoted: "You were promoted to party leader." - already_leader: "You're already the leader!" - demoted: "You are no longer party leader." - following_kicked: - server_full: "There's not enough space in your party's new server so you were removed from the party." - generic: "There was an issue following your party! You've been kicked." - following_failed: - server_full: "There's not enough space in your party's new server so you did not follow them." - generic: "There was an issue following your party!" - created: "You created a new party!" - left_self: "You left the party." - self_kick: "You can't kick yourself! Use /party leave instead!" - kick: "Kick Player" - promote: "Promote to Leader" - leave: "Leave Party" - invite_player: "Invite Player" - friends: - injected_error: - maxed: "You've already maxed out the number of friends you can have." # No MiniMessage - acknowledged: "This friend request has already been closed!" # No MiniMessage - internal_error: "There was an internal error while trying to complete your request." # No MiniMessage - messaging: - no_self_messaging: "You can't message yourself!" - only_friends: "You can only send messages to your friends!" - reply: "Click to reply" # No MiniMessage - request: - already_friends: " is already your friend!" - sent: "Friend request sent to ! It will expire in 10 minutes." - expired: "That friend request seems to have expired!" - ignore: "Ignored the friend request from . They can still send you new requests in the future." - target_not_online: " doesn't seem to be online, we'll let them know about your friend request when they log in! Your request will expire in 10 minutes." - unfriend: - not_friends: " isn't your friend." - success: "You are no longer friends with ." - panel: - header: - main: "Friends (/)" - add-friend: "Add Friend" - pending: "Getting friends..." - unfriend: "Unfriend " - message: "Message " - invite_party: "Invite to your party" - tpa: "Request to tpa to " - offline: "Offline" - online: "Online" - currently_playing: "Currently Playing: " - add_friend: "Add Friend" - send_friend_request: "Click here to send a friend request." - friend_request_query: - query: "Hey! wants to be your friend!" - hover: - accept: "Accept friend request" - ignore: "Ignore friend request" - friend_joined: - resolved: "Your friend '>'> just logged in!" - regular: "Your friend just logged in!" - friend_leaves: "Your friend just logged out!" - become_friends: "You and are now friends!" - no_online_friends: "None of your friends are online right now." - online_friends: "You have friends online!" - max_friends_reached: "You have reached the max number of friends!" - join_message_empty: - - "You have pending friend requests!" - - "Address them using:" - - "'>/friends requests " - join_message_countable: - - "You have pending friend requests from: " - - "Address them using:" - - "'>/friends requests " - console_icons: - attempting_registration: "?>>>?" - registered: ">>>>>" - attempting_unregistration: "?///?" - unregistered: "/////" - error: "xxxxx" - family_balancing: "▲▼▲▼▲" - ping: "<<<<|" -mcloader: - send: - usage: "Send a player from the current server to another family." - tpa: - sender_failed_teleport: "Something prevented you from teleporting to !" \ No newline at end of file diff --git a/plugin/common/src/main/resources/language.yml b/plugin/common/src/main/resources/language.yml deleted file mode 100644 index c0251b339..000000000 --- a/plugin/common/src/main/resources/language.yml +++ /dev/null @@ -1,13 +0,0 @@ -# -# The language to use for RustyConnector. -# Language translations are provided by volunteering community members. -# In order to install a different language you'll need to download the appropriate lang file. -# -# Language codes are not case-sensitive, also you can use a dash "-" or underscore "_". -# A general good practice is to just copy the name, exactly, of the lang package you wanna load. -# -# For a list of supported languages, please reference: -# -# LINK HERE -# -language: "en_us" \ No newline at end of file diff --git a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/Flame.java b/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/Flame.java index 43545fc42..e2d183fc5 100644 --- a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/Flame.java +++ b/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/Flame.java @@ -9,7 +9,8 @@ import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.IPacket; import group.aelysium.rustyconnector.toolkit.mc_loader.IMCLoaderFlame; import group.aelysium.rustyconnector.toolkit.mc_loader.MCLoaderAdapter; -import group.aelysium.rustyconnector.toolkit.velocity.util.Version; +import group.aelysium.rustyconnector.toolkit.mc_loader.lang.MCLoaderLangLibrary; +import group.aelysium.rustyconnector.toolkit.proxy.util.Version; import org.jetbrains.annotations.NotNull; import java.net.InetSocketAddress; @@ -19,6 +20,7 @@ public class Flame implements IMCLoaderFlame { private final UUID uuid; private final Version version; private final MCLoaderAdapter adapter; + private final Flux lang; private final String displayName; private final InetSocketAddress address; private final Flux magicLink; @@ -28,6 +30,7 @@ protected Flame( @NotNull UUID uuid, @NotNull Version version, @NotNull MCLoaderAdapter adapter, + @NotNull Flux lang, @NotNull String displayName, @NotNull InetSocketAddress address, @NotNull Flux magicLink, @@ -36,6 +39,7 @@ protected Flame( this.uuid = uuid; this.version = version; this.adapter = adapter; + this.lang = lang; this.displayName = displayName; this.address = address; this.magicLink = magicLink; @@ -107,6 +111,10 @@ public MCLoaderAdapter Adapter() { return this.adapter; } + public Flux Lang() { + return this.lang; + } + public EventManager EventManager() { return this.eventManager; } @@ -120,6 +128,7 @@ public static class Tinder extends IMCLoaderFlame.Tinder { private final UUID uuid; private final Version version; private final MCLoaderAdapter adapter; + private final MCLoaderLangLibrary.Tinder lang; private final String displayName; private final InetSocketAddress address; private final MagicLink.Tinder magicLink; @@ -129,6 +138,7 @@ public Tinder( @NotNull UUID uuid, @NotNull Version version, @NotNull MCLoaderAdapter adapter, + @NotNull MCLoaderLangLibrary.Tinder lang, @NotNull String displayName, @NotNull InetSocketAddress address, @NotNull MagicLink.Tinder magicLink, @@ -137,6 +147,7 @@ public Tinder( this.uuid = uuid; this.version = version; this.adapter = adapter; + this.lang = lang; this.displayName = displayName; this.address = address; this.magicLink = magicLink; @@ -149,6 +160,7 @@ public Tinder( uuid, version, adapter, + lang.flux(), displayName, address, magicLink.flux(), diff --git a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/central/config/DefaultConfig.java b/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/central/config/DefaultConfig.java index d5c1466b1..b902db38b 100644 --- a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/central/config/DefaultConfig.java +++ b/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/central/config/DefaultConfig.java @@ -2,13 +2,13 @@ import group.aelysium.rustyconnector.common.lang.LangService; import group.aelysium.rustyconnector.toolkit.common.config.IConfigService; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import java.nio.file.Path; -public class DefaultConfig extends YAML { +public class DefaultConfig extends Config { private String address; private String magicConfig; private String displayName = null; diff --git a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/lang/MCLoaderLang.java b/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/lang/MCLoaderLang.java deleted file mode 100644 index c39b70e2b..000000000 --- a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/lang/MCLoaderLang.java +++ /dev/null @@ -1,190 +0,0 @@ -package group.aelysium.rustyconnector.mcloader.lang; - -import group.aelysium.rustyconnector.toolkit.common.cache.CacheableMessage; -import group.aelysium.rustyconnector.common.lang.ASCIIAlphabet; -import group.aelysium.rustyconnector.common.lang.Lang; -import group.aelysium.rustyconnector.common.lang.LanguageResolver; -import group.aelysium.rustyconnector.mcloader.TinderAdapterForCore; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; - -import java.util.Date; -import java.util.List; - -import static net.kyori.adventure.text.Component.*; -import static net.kyori.adventure.text.format.NamedTextColor.*; - -public class MCLoaderLang extends Lang { - public static LanguageResolver resolver() { - return (LanguageResolver) TinderAdapterForCore.getTinder().lang().resolver(); - } - - public final static String ID = resolver().getRaw("core.single_word.id"); - public final static String CONTENTS = resolver().getRaw("core.single_word.contents"); - public final static String DATE = resolver().getRaw("core.single_word.date"); - public final static String REASON = resolver().getRaw("core.single_word.reason"); - public final static String TIMESTAMP = resolver().getRaw("core.single_word.timestamp"); - public final static String PAGES = resolver().getRaw("core.single_word.pages"); - - public final static String STATUS = resolver().getRaw("core.single_word.status"); - - public final static Component BORDER = text("█████████████████████████████████████████████████████████████████████████████████████████████████", DARK_GRAY); - - public final static Component SPACING = text(""); - - public final static Message WORDMARK_USAGE = () -> ASCIIAlphabet.generate("usage"); - - public final static Message WORDMARK_MESSAGE = () -> ASCIIAlphabet.generate("message"); - - public final static ParameterizedMessage1 WORDMARK_RUSTY_CONNECTOR = (version) -> {// font: ANSI Shadow - Component versionComponent = empty(); - - if(version != null && !version.equals("")) - versionComponent = versionComponent.append(text("Version "+version, GREEN)); - - return join( - newlines(), - BORDER, - SPACING, - text(" /███████ /██", AQUA), - text("| ██__ ██ | ██", AQUA), - text("| ██ \\ ██ /██ /██ /███████ /██████ /██ /██", AQUA), - text("| ███████/| ██ | ██ /██_____/|_ ██_/ | ██ | ██", AQUA), - text("| ██__ ██| ██ | ██| ██████ | ██ | ██ | ██", AQUA), - text("| ██ \\ ██| ██ | ██ \\____ ██ | ██ /██| ██ | ██", AQUA), - text("| ██ | ██| ██████/ /███████/ | ████/| ███████", AQUA), - text("|__/ |__/ \\______/ |_______/ \\___/ \\____ ██", AQUA), - text(" /██ | ██ ", AQUA).append(versionComponent), - text(" | ██████/", AQUA), - text(" /██████ \\______/ /██", AQUA), - text(" /██__ ██ | ██", AQUA), - text("| ██ \\__/ /██████ /███████ /███████ /██████ /███████ /██████ /██████ /██████", AQUA), - text("| ██ /██__ ██| ██__ ██| ██__ ██ /██__ ██ /██_____/|_ ██_/ /██__ ██ /██__ ██", AQUA), - text("| ██ | ██ \\ ██| ██ \\ ██| ██ \\ ██| ████████| ██ | ██ | ██ \\ ██| ██ \\__/", AQUA), - text("| ██ ██| ██ | ██| ██ | ██| ██ | ██| ██_____/| ██ | ██ /██| ██ | ██| ██", AQUA), - text("| ██████/| ██████/| ██ | ██| ██ | ██| ███████| ███████ | ████/| ██████/| ██", AQUA), - text("\\______/ \\______/ |__/ |__/|__/ |__/ \\_______/ \\_______/ \\___/ \\______/ |__/", AQUA), - SPACING, - BORDER, - SPACING, - resolver().get("core.boot_wordmark.developed_by").append(text(" Aelysium | Juice")), - resolver().get("core.boot_wordmark.usage").color(YELLOW), - SPACING, - BORDER - ); - }; - - public final static Message MAGIC_LINK = () -> join( - newlines(), - SPACING, - text(" /(¯`·._.·´¯`·._.·´¯`·._.·´¯`·._.·´¯)\\"), - text(" --<||( MAGIC LINK -- CONNECTED )||>--"), - text(" \\(_.·´¯`·._.·´¯`·._.·´¯`·._.·´¯`·._)/") - ).color(DARK_PURPLE); - - public final static ParameterizedMessage2 BOXED_MESSAGE_COLORED = (message, color) -> join( - newlines(), - SPACING, - BORDER.color(color), - SPACING, - text(message).color(color), - SPACING, - BORDER.color(color), - SPACING - ); - - public final static Message RC_SEND_USAGE = () -> join( - newlines(), - BORDER, - SPACING, - WORDMARK_USAGE.build(), - SPACING, - BORDER, - SPACING, - text("/rc send ", RED), - resolver().get("mcloader.send.usage"), - SPACING, - BORDER - ); - - public final static ParameterizedMessage3 RC_MESSAGE_GET_MESSAGE = (id, date, contents) -> join( - newlines(), - BORDER, - SPACING, - WORDMARK_MESSAGE.build().color(BLUE), - SPACING, - BORDER, - SPACING, - text(ID + ": " + id, BLUE), - text(DATE + ": " + date, BLUE), - text(CONTENTS + ": " + contents, BLUE), - SPACING, - BORDER - ); - - public final static ParameterizedMessage3,Integer, Integer> RC_MESSAGE_PAGE = (messages, pageNumber, maxPages) -> { - Component output = text(""); - for (CacheableMessage message : messages) { - if(!(message.getSentenceReason() == null)) - output = output.append(join( - newlines(), - BORDER, - SPACING, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - text(REASON+": " + message.getSentenceReason(), message.getSentence().color()), - SPACING, - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text(CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - SPACING - )); - else - output = output.append(join( - newlines(), - BORDER, - SPACING, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - SPACING, - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text(CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - SPACING - )); - } - - Component pageNumbers = text("[ ",DARK_GRAY); - for (int i = 1; i <= maxPages; i++) { - if(i == pageNumber) - pageNumbers = pageNumbers.append(text(i+" ",GOLD)); - else - pageNumbers = pageNumbers.append(text(i+" ",GRAY)); - } - pageNumbers = pageNumbers.append(text("]",DARK_GRAY)); - - return output.append( - join( - newlines(), - SPACING, - BORDER, - SPACING, - text(PAGES+":"), - pageNumbers, - SPACING, - BORDER - ) - ); - }; - - public final static ParameterizedMessage1 TPA_FAILED_TELEPORT = username -> - resolver().get("mcloader.tpa.sender_failed_teleport", LanguageResolver.tagHandler("username", username)); - - public final static ParameterizedMessage1 RCNAME_PAPER_FOLIA = isFolia -> { - if(isFolia) return text("RustyConnector-Folia"); - return text("RustyConnector-Paper"); - }; - - public final static ParameterizedMessage1 RCNAME_PAPER_FOLIA_LOWER = isFolia -> { - if(isFolia) return text("rustyconnector-folia"); - return text("rustyconnector-paper"); - }; -} diff --git a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/magic_link/MagicLink.java b/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/magic_link/MagicLink.java index 8ceb9cfb0..9df47717a 100644 --- a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/magic_link/MagicLink.java +++ b/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/magic_link/MagicLink.java @@ -9,7 +9,7 @@ import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.IPacket; import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.PacketParameter; import group.aelysium.rustyconnector.toolkit.mc_loader.events.magic_link.DisconnectedEvent; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import org.jetbrains.annotations.NotNull; import java.net.ConnectException; diff --git a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/magic_link/handlers/HandshakeSuccessListener.java b/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/magic_link/handlers/HandshakeSuccessListener.java index f84e026ba..97b82d328 100644 --- a/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/magic_link/handlers/HandshakeSuccessListener.java +++ b/plugin/mcloader/src/main/java/group/aelysium/rustyconnector/mcloader/magic_link/handlers/HandshakeSuccessListener.java @@ -1,7 +1,7 @@ package group.aelysium.rustyconnector.mcloader.magic_link.handlers; import group.aelysium.rustyconnector.common.packets.BuiltInIdentifications; -import group.aelysium.rustyconnector.mcloader.lang.MCLoaderLang; +import group.aelysium.rustyconnector.toolkit.mc_loader.lang.MCLoaderLang; import group.aelysium.rustyconnector.mcloader.magic_link.MagicLink; import group.aelysium.lib.ranked_game_interface.RankedGameInterfaceService; import group.aelysium.rustyconnector.toolkit.common.logger.IPluginLogger; diff --git a/plugin/paper/src/main/java/group/aelysium/rustyconnector/plugin/paper/PaperRustyConnector.java b/plugin/paper/src/main/java/group/aelysium/rustyconnector/plugin/paper/PaperRustyConnector.java index 38976665b..67aa0e9c9 100644 --- a/plugin/paper/src/main/java/group/aelysium/rustyconnector/plugin/paper/PaperRustyConnector.java +++ b/plugin/paper/src/main/java/group/aelysium/rustyconnector/plugin/paper/PaperRustyConnector.java @@ -4,8 +4,8 @@ import group.aelysium.rustyconnector.mcloader.Flame; import group.aelysium.rustyconnector.mcloader.magic_link.MagicLink; import group.aelysium.rustyconnector.toolkit.RustyConnector; -import group.aelysium.rustyconnector.mcloader.lang.MCLoaderLang; -import group.aelysium.rustyconnector.toolkit.velocity.util.Version; +import group.aelysium.rustyconnector.toolkit.mc_loader.lang.MCLoaderLang; +import group.aelysium.rustyconnector.toolkit.proxy.util.Version; import java.net.InetSocketAddress; import java.util.UUID; diff --git a/plugin/paper/src/main/java/group/aelysium/rustyconnector/plugin/paper/commands/CommandRusty.java b/plugin/paper/src/main/java/group/aelysium/rustyconnector/plugin/paper/commands/CommandRusty.java index d001154a1..4ebda839a 100644 --- a/plugin/paper/src/main/java/group/aelysium/rustyconnector/plugin/paper/commands/CommandRusty.java +++ b/plugin/paper/src/main/java/group/aelysium/rustyconnector/plugin/paper/commands/CommandRusty.java @@ -12,7 +12,7 @@ import group.aelysium.rustyconnector.common.packets.BuiltInIdentifications; import group.aelysium.rustyconnector.plugin.paper.PluginLogger; import group.aelysium.rustyconnector.plugin.paper.central.Tinder; -import group.aelysium.rustyconnector.mcloader.lang.MCLoaderLang; +import group.aelysium.rustyconnector.toolkit.mc_loader.lang.MCLoaderLang; import group.aelysium.rustyconnector.toolkit.common.logger.IPluginLogger; import group.aelysium.rustyconnector.common.packets.SendPlayerPacket; import net.kyori.adventure.text.Component; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/Flame.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/Flame.java index cc54d7e9b..eb043307c 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/Flame.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/Flame.java @@ -10,17 +10,18 @@ import group.aelysium.rustyconnector.common.events.EventManager; import group.aelysium.rustyconnector.proxy.family.Families; import group.aelysium.rustyconnector.toolkit.common.magic_link.IMagicLink; -import group.aelysium.rustyconnector.toolkit.velocity.ProxyAdapter; +import group.aelysium.rustyconnector.toolkit.proxy.ProxyAdapter; import group.aelysium.rustyconnector.toolkit.common.events.IEventManager; -import group.aelysium.rustyconnector.toolkit.velocity.IProxyFlame; -import group.aelysium.rustyconnector.toolkit.velocity.events.mc_loader.MCLoaderRegisterEvent; -import group.aelysium.rustyconnector.toolkit.velocity.events.mc_loader.MCLoaderUnregisterEvent; -import group.aelysium.rustyconnector.toolkit.velocity.events.player.FamilyLeaveEvent; -import group.aelysium.rustyconnector.toolkit.velocity.events.player.MCLoaderLeaveEvent; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamilies; -import group.aelysium.rustyconnector.toolkit.velocity.storage.ILocalStorage; -import group.aelysium.rustyconnector.toolkit.velocity.storage.IRemoteStorage; -import group.aelysium.rustyconnector.toolkit.velocity.util.Version; +import group.aelysium.rustyconnector.toolkit.proxy.IProxyFlame; +import group.aelysium.rustyconnector.toolkit.proxy.events.mc_loader.MCLoaderRegisterEvent; +import group.aelysium.rustyconnector.toolkit.proxy.events.mc_loader.MCLoaderUnregisterEvent; +import group.aelysium.rustyconnector.toolkit.proxy.events.player.FamilyLeaveEvent; +import group.aelysium.rustyconnector.toolkit.proxy.events.player.MCLoaderLeaveEvent; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamilies; +import group.aelysium.rustyconnector.toolkit.proxy.lang.ProxyLangLibrary; +import group.aelysium.rustyconnector.toolkit.proxy.storage.ILocalStorage; +import group.aelysium.rustyconnector.toolkit.proxy.storage.IRemoteStorage; +import group.aelysium.rustyconnector.toolkit.proxy.util.Version; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; @@ -32,6 +33,7 @@ public class Flame implements IProxyFlame { private final UUID uuid; private final Version version; private final ProxyAdapter adapter; + private final Flux lang; private final Flux families; private final Flux magicLink; private final Flux remoteStorage; @@ -43,6 +45,7 @@ protected Flame( @NotNull UUID uuid, @NotNull Version version, @NotNull ProxyAdapter adapter, + @NotNull Flux lang, @NotNull List bootOutput, @NotNull Flux families, @NotNull Flux magicLink, @@ -53,6 +56,7 @@ protected Flame( this.uuid = uuid; this.version = version; this.adapter = adapter; + this.lang = lang; this.bootOutput = bootOutput; this.families = families; this.magicLink = magicLink; @@ -70,6 +74,11 @@ public ProxyAdapter Adapter() { return this.adapter; } + @Override + public Flux Lang() { + return this.lang; + } + @Override public Flux Families() { return this.families; @@ -114,6 +123,7 @@ public static class Tinder extends IProxyFlame.Tinder { private final UUID uuid; private final Version version; private final ProxyAdapter adapter; + private final ProxyLangLibrary.Tinder lang; private final Families.Tinder families; private final MagicLink.Tinder magicLink; private final RemoteStorage.Tinder remoteStorage; @@ -124,6 +134,7 @@ public Tinder( @NotNull UUID uuid, @NotNull Version version, @NotNull ProxyAdapter adapter, + @NotNull ProxyLangLibrary.Tinder lang, @NotNull Families.Tinder families, @NotNull MagicLink.Tinder magicLink, @NotNull RemoteStorage.Tinder remoteStorage, @@ -134,6 +145,7 @@ public Tinder( this.uuid = uuid; this.version = version; this.adapter = adapter; + this.lang = lang; this.families = families; this.magicLink = magicLink; this.remoteStorage = remoteStorage; @@ -151,6 +163,7 @@ public Tinder( this.uuid, this.version, this.adapter, + this.lang.flux(), new ArrayList<>(), this.families.flux(), this.magicLink.flux(), diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/Permission.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/Permission.java index 263cd5ee7..822cdf12e 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/Permission.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/Permission.java @@ -1,8 +1,8 @@ package group.aelysium.rustyconnector.proxy; import group.aelysium.rustyconnector.toolkit.RC; -import group.aelysium.rustyconnector.toolkit.velocity.ProxyAdapter; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.ProxyAdapter; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; import java.util.Locale; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnFamilyLeave.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnFamilyLeave.java index 772d0b6e8..5f022faca 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnFamilyLeave.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnFamilyLeave.java @@ -1,7 +1,7 @@ package group.aelysium.rustyconnector.proxy.event_handlers; import group.aelysium.rustyconnector.toolkit.common.events.Listener; -import group.aelysium.rustyconnector.toolkit.velocity.events.player.FamilyLeaveEvent; +import group.aelysium.rustyconnector.toolkit.proxy.events.player.FamilyLeaveEvent; public class OnFamilyLeave implements Listener { public void handler(FamilyLeaveEvent event) { diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderLeave.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderLeave.java index 890b88c0d..6c6b251c7 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderLeave.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderLeave.java @@ -1,8 +1,8 @@ package group.aelysium.rustyconnector.proxy.event_handlers; import group.aelysium.rustyconnector.toolkit.common.events.Listener; -import group.aelysium.rustyconnector.toolkit.velocity.events.player.MCLoaderLeaveEvent; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.events.player.MCLoaderLeaveEvent; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; public class OnMCLoaderLeave implements Listener { public void handler(MCLoaderLeaveEvent event) { diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderRegister.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderRegister.java index 71a560046..82cd1a973 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderRegister.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderRegister.java @@ -5,7 +5,7 @@ import group.aelysium.rustyconnector.plugin.velocity.lib.lang.ProxyLang; import group.aelysium.rustyconnector.toolkit.common.events.Listener; import group.aelysium.rustyconnector.toolkit.common.log_gate.GateKey; -import group.aelysium.rustyconnector.toolkit.velocity.events.mc_loader.MCLoaderRegisterEvent; +import group.aelysium.rustyconnector.toolkit.proxy.events.mc_loader.MCLoaderRegisterEvent; public class OnMCLoaderRegister implements Listener { public void handler(MCLoaderRegisterEvent event) { diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderUnregister.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderUnregister.java index 7d9db7d55..5711d138a 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderUnregister.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/event_handlers/OnMCLoaderUnregister.java @@ -6,7 +6,7 @@ import group.aelysium.rustyconnector.plugin.velocity.lib.lang.ProxyLang; import group.aelysium.rustyconnector.toolkit.common.events.Listener; import group.aelysium.rustyconnector.toolkit.common.log_gate.GateKey; -import group.aelysium.rustyconnector.toolkit.velocity.events.mc_loader.MCLoaderUnregisterEvent; +import group.aelysium.rustyconnector.toolkit.proxy.events.mc_loader.MCLoaderUnregisterEvent; public class OnMCLoaderUnregister implements Listener { public void handler(MCLoaderUnregisterEvent event) { diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/Families.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/Families.java index 5d877132f..4059ec0c8 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/Families.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/Families.java @@ -3,9 +3,9 @@ import group.aelysium.rustyconnector.proxy.family.scalar_family.RootFamily; import group.aelysium.rustyconnector.proxy.family.scalar_family.ScalarFamily; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamilies; -import group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family.IRootFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamilies; +import group.aelysium.rustyconnector.toolkit.proxy.family.scalar_family.IRootFamily; import org.jetbrains.annotations.NotNull; import java.util.List; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/Family.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/Family.java index ad10bbc7c..115396777 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/Family.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/Family.java @@ -1,11 +1,11 @@ package group.aelysium.rustyconnector.proxy.family; import group.aelysium.rustyconnector.toolkit.RustyConnector; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamilyConnector; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; -import group.aelysium.rustyconnector.toolkit.velocity.family.whitelist.IWhitelist; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamilyConnector; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; import org.jetbrains.annotations.NotNull; import java.util.Objects; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/dynamic_scale/DynamicScalingService.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/dynamic_scale/DynamicScalingService.java index 0a015b991..4def4ead1 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/dynamic_scale/DynamicScalingService.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/dynamic_scale/DynamicScalingService.java @@ -4,9 +4,9 @@ import group.aelysium.rustyconnector.plugin.velocity.PluginLogger; import group.aelysium.rustyconnector.proxy.family.Families; import group.aelysium.rustyconnector.toolkit.common.serviceable.ClockService; -import group.aelysium.rustyconnector.toolkit.velocity.events.family.RebalanceEvent; -import group.aelysium.rustyconnector.toolkit.velocity.util.DependencyInjector; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.events.family.RebalanceEvent; +import group.aelysium.rustyconnector.toolkit.proxy.util.DependencyInjector; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; public class DynamicScalingService extends ClockService { protected final LiquidTimestamp heartbeat; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/dynamic_scale/Scaler.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/dynamic_scale/Scaler.java index 634c32605..cdd9bf56e 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/dynamic_scale/Scaler.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/dynamic_scale/Scaler.java @@ -1,8 +1,8 @@ package group.aelysium.rustyconnector.proxy.family.dynamic_scale; -import group.aelysium.rustyconnector.toolkit.velocity.family.Family; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.family.Family; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import io.fabric8.kubernetes.api.model.Pod; import java.util.ArrayList; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/LeastConnection.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/LeastConnection.java index 9cb41ac9a..b55a6c787 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/LeastConnection.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/LeastConnection.java @@ -4,9 +4,9 @@ import group.aelysium.rustyconnector.common.algorithm.SingleSort; import group.aelysium.rustyconnector.common.algorithm.WeightedQuickSort; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import org.jetbrains.annotations.NotNull; public class LeastConnection extends LoadBalancer { diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/LoadBalancer.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/LoadBalancer.java index 74492a786..ef907254d 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/LoadBalancer.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/LoadBalancer.java @@ -1,13 +1,12 @@ package group.aelysium.rustyconnector.proxy.family.load_balancing; import group.aelysium.rustyconnector.toolkit.RC; -import group.aelysium.rustyconnector.toolkit.velocity.events.family.FamilyRebalanceEvent; -import group.aelysium.rustyconnector.toolkit.velocity.events.family.MCLoaderLockedEvent; -import group.aelysium.rustyconnector.toolkit.velocity.events.family.MCLoaderUnlockedEvent; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; -import org.checkerframework.checker.optional.qual.OptionalPropagator; +import group.aelysium.rustyconnector.toolkit.proxy.events.family.FamilyRebalanceEvent; +import group.aelysium.rustyconnector.toolkit.proxy.events.family.MCLoaderLockedEvent; +import group.aelysium.rustyconnector.toolkit.proxy.events.family.MCLoaderUnlockedEvent; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/MostConnection.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/MostConnection.java index 4b977d6fb..84492c866 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/MostConnection.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/MostConnection.java @@ -3,9 +3,9 @@ import group.aelysium.rustyconnector.common.algorithm.QuickSort; import group.aelysium.rustyconnector.common.algorithm.WeightedQuickSort; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import org.jetbrains.annotations.NotNull; import java.util.Collections; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/RoundRobin.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/RoundRobin.java index 3d51c8dcd..3da61ad1e 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/RoundRobin.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/load_balancing/RoundRobin.java @@ -2,7 +2,7 @@ import group.aelysium.rustyconnector.common.algorithm.WeightOnlyQuickSort; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; import org.jetbrains.annotations.NotNull; public class RoundRobin extends LoadBalancer { diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/mcloader/MCLoader.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/mcloader/MCLoader.java index cfa8ea0e3..3184a12dd 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/mcloader/MCLoader.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/mcloader/MCLoader.java @@ -3,11 +3,11 @@ import group.aelysium.rustyconnector.proxy.Permission; import group.aelysium.rustyconnector.toolkit.RC; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.ProxyAdapter; -import group.aelysium.rustyconnector.toolkit.velocity.connection.IPlayerConnectable; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.ProxyAdapter; +import group.aelysium.rustyconnector.toolkit.proxy.connection.IPlayerConnectable; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/mcloader/packet_handlers/SendPlayerListener.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/mcloader/packet_handlers/SendPlayerListener.java index 2182b8170..414c994f7 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/mcloader/packet_handlers/SendPlayerListener.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/mcloader/packet_handlers/SendPlayerListener.java @@ -5,8 +5,8 @@ import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.IPacket; import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.PacketListener; import group.aelysium.rustyconnector.common.packets.SendPlayerPacket; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; import net.kyori.adventure.text.Component; public class SendPlayerListener extends PacketListener { diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/scalar_family/RootFamily.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/scalar_family/RootFamily.java index 60416eff7..862d3be80 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/scalar_family/RootFamily.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/scalar_family/RootFamily.java @@ -5,11 +5,11 @@ import group.aelysium.rustyconnector.proxy.family.load_balancing.RoundRobin; import group.aelysium.rustyconnector.proxy.family.whitelist.Whitelist; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; -import group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family.IRootFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family.IScalarFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.whitelist.IWhitelist; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.scalar_family.IRootFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.scalar_family.IScalarFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; import org.jetbrains.annotations.NotNull; public class RootFamily extends ScalarFamily implements IRootFamily { diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/scalar_family/ScalarFamily.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/scalar_family/ScalarFamily.java index 9a9773c81..63b6af2d8 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/scalar_family/ScalarFamily.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/scalar_family/ScalarFamily.java @@ -6,10 +6,10 @@ import group.aelysium.rustyconnector.proxy.family.Family; import group.aelysium.rustyconnector.proxy.family.whitelist.Whitelist; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family.IScalarFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; -import group.aelysium.rustyconnector.toolkit.velocity.family.whitelist.IWhitelist; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.scalar_family.IScalarFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; import org.jetbrains.annotations.NotNull; public class ScalarFamily extends Family implements IScalarFamily { diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/whitelist/Whitelist.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/whitelist/Whitelist.java index 855b74357..61c1e5a16 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/whitelist/Whitelist.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/family/whitelist/Whitelist.java @@ -2,10 +2,10 @@ import group.aelysium.rustyconnector.proxy.Permission; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.whitelist.IWhitelist; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; import group.aelysium.rustyconnector.common.Callable; -import group.aelysium.rustyconnector.toolkit.velocity.family.whitelist.IWhitelistPlayerFilter; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelistPlayerFilter; import org.jetbrains.annotations.NotNull; import java.util.*; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/lang/GitConfig.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/lang/GitConfig.java new file mode 100644 index 000000000..0c9ea4a96 --- /dev/null +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/lang/GitConfig.java @@ -0,0 +1,16 @@ +package group.aelysium.rustyconnector.proxy.lang; + +import group.aelysium.rustyconnector.common.config.Config; + +import java.io.File; + +public class GitConfig extends Config { + @Override + public Object settings() { + return null; + } + + @Override + public void print(File location) { + } +} diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/lang/ProxyLang.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/lang/ProxyLang.java deleted file mode 100644 index 82c369ec1..000000000 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/lang/ProxyLang.java +++ /dev/null @@ -1,1022 +0,0 @@ -package group.aelysium.rustyconnector.proxy.lang; - -import group.aelysium.rustyconnector.toolkit.common.cache.CacheableMessage; -import group.aelysium.rustyconnector.common.lang.ASCIIAlphabet; -import group.aelysium.rustyconnector.common.lang.Lang; -import group.aelysium.rustyconnector.common.lang.LanguageResolver; -import group.aelysium.rustyconnector.proxy.family.mcloader.MCLoader; -import group.aelysium.rustyconnector.proxy.family.scalar_family.RootFamily; -import group.aelysium.rustyconnector.proxy.family.scalar_family.ScalarFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family.IRootFamily; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.util.AddressUtil; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.JoinConfiguration; -import net.kyori.adventure.text.event.ClickEvent; -import net.kyori.adventure.text.event.HoverEvent; -import net.kyori.adventure.text.format.NamedTextColor; -import net.kyori.adventure.text.format.TextDecoration; - -import java.util.List; -import java.util.Objects; -import java.util.UUID; -import java.util.concurrent.atomic.AtomicReference; - -import static net.kyori.adventure.text.Component.*; -import static net.kyori.adventure.text.format.NamedTextColor.*; - -public class ProxyLang extends Lang { - public static LanguageResolver resolver() { - return Tinder.get().lang().resolver(); - } - - public final static String REASON = resolver().getRaw("core.single_word.reason"); - public final static String STATUS = resolver().getRaw("core.single_word.status"); - public final static String ID = resolver().getRaw("core.single_word.id"); - public final static String TIMESTAMP = resolver().getRaw("core.single_word.timestamp"); - public final static String CONTENTS = resolver().getRaw("core.single_word.contents"); - public final static String PAGES = resolver().getRaw("core.single_word.pages"); - public final static String USAGE = resolver().getRaw("core.single_word.usage"); - public final static String LEADER = resolver().getRaw("core.single_word.leader"); - public final static String PARTY = resolver().getRaw("core.single_word.party"); - public final static String LEAVE = resolver().getRaw("core.single_word.leave"); - public final static String DISBAND = resolver().getRaw("core.single_word.disband"); - public final static String ACCEPT = resolver().getRaw("core.single_word.accept"); - public final static String DENY = resolver().getRaw("core.single_word.deny"); - public final static String IGNORE = resolver().getRaw("core.single_word.ignore"); - public final static String DATE = resolver().getRaw("core.single_word.date"); - - public final static Component BORDER = text("█████████████████████████████████████████████████████████████████████████████████████████████████", DARK_GRAY); - - public final static Component SPACING = text(""); - - public final static Component UNKNOWN_COMMAND = text(resolver().getRaw("core.unknown_command")); - public final static Component NO_PERMISSION = text(resolver().getRaw("core.no_permission")); - public final static Component INTERNAL_ERROR = resolver().get("core.internal_error"); - - public final static Component WORDMARK_USAGE = ASCIIAlphabet.generate("usage"); - - public final static Component WORDMARK_MESSAGE = ASCIIAlphabet.generate("message"); - public final static Component SERVER_ALREADY_CONNECTED = resolver().get("proxy.server.already_connected"); - public final static ParameterizedMessage1 NO_PLAYER = (username) -> - resolver().get("core.no_player", LanguageResolver.tagHandler("username", username)); - - public final static ParameterizedMessage1 WORDMARK_RUSTY_CONNECTOR = (version) -> {// font: ANSI Shadow - Component versionComponent = empty(); - - if(version != null && !version.equals("")) - versionComponent = versionComponent.append(text("Version "+version, GREEN)); - - return join( - newlines(), - BORDER, - SPACING, - text(" /███████ /██", AQUA), - text("| ██__ ██ | ██", AQUA), - text("| ██ \\ ██ /██ /██ /███████ /██████ /██ /██", AQUA), - text("| ███████/| ██ | ██ /██_____/|_ ██_/ | ██ | ██", AQUA), - text("| ██__ ██| ██ | ██| ██████ | ██ | ██ | ██", AQUA), - text("| ██ \\ ██| ██ | ██ \\____ ██ | ██ /██| ██ | ██", AQUA), - text("| ██ | ██| ██████/ /███████/ | ████/| ███████", AQUA), - text("|__/ |__/ \\______/ |_______/ \\___/ \\____ ██", AQUA), - text(" /██ | ██ ", AQUA).append(versionComponent), - text(" | ██████/", AQUA), - text(" /██████ \\______/ /██", AQUA), - text(" /██__ ██ | ██", AQUA), - text("| ██ \\__/ /██████ /███████ /███████ /██████ /███████ /██████ /██████ /██████", AQUA), - text("| ██ /██__ ██| ██__ ██| ██__ ██ /██__ ██ /██_____/|_ ██_/ /██__ ██ /██__ ██", AQUA), - text("| ██ | ██ \\ ██| ██ \\ ██| ██ \\ ██| ████████| ██ | ██ | ██ \\ ██| ██ \\__/", AQUA), - text("| ██ ██| ██ | ██| ██ | ██| ██ | ██| ██_____/| ██ | ██ /██| ██ | ██| ██", AQUA), - text("| ██████/| ██████/| ██ | ██| ██ | ██| ███████| ███████ | ████/| ██████/| ██", AQUA), - text("\\______/ \\______/ |__/ |__/|__/ |__/ \\_______/ \\_______/ \\___/ \\______/ |__/", AQUA), - SPACING, - BORDER, - SPACING, - resolver().get("core.boot_wordmark.developed_by").append(text(" Aelysium | Juice")), - resolver().get("core.boot_wordmark.usage").color(YELLOW), - SPACING, - BORDER - ); - }; - - public final static ParameterizedMessage1 BOXED_MESSAGE = (message) -> join( - newlines(), - SPACING, - BORDER, - SPACING, - message, - SPACING, - BORDER, - SPACING - ); - public final static ParameterizedMessage2 BOXED_MESSAGE_COLORED = (message, color) -> join( - newlines(), - SPACING, - BORDER.color(color), - SPACING, - text(message).color(color), - SPACING, - BORDER.color(color), - SPACING - ); - public final static ParameterizedMessage2 BOXED_COMPONENT_COLORED = (message, color) -> join( - newlines(), - SPACING, - BORDER.color(color), - SPACING, - message.color(color), - SPACING, - BORDER.color(color), - SPACING - ); - - public final static ParameterizedMessage1 CACHED_MESSAGE = (message) -> join( - newlines(), - BORDER, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text( CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - BORDER - ); - - public final static ParameterizedMessage3,Integer, Integer> RC_MESSAGE_PAGE = (messages, pageNumber, maxPages) -> { - Component output = text(""); - for (CacheableMessage message : messages) { - if(!(message.getSentenceReason() == null)) - output = output.append(join( - newlines(), - BORDER, - SPACING, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - text(REASON+": " + message.getSentenceReason(), message.getSentence().color()), - SPACING, - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text(CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - SPACING - )); - else - output = output.append(join( - newlines(), - BORDER, - SPACING, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - SPACING, - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text(CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - SPACING - )); - } - - Component pageNumbers = text("[ ",DARK_GRAY); - for (int i = 1; i <= maxPages; i++) { - if(i == pageNumber) - pageNumbers = pageNumbers.append(text(i+" ",GOLD)); - else - pageNumbers = pageNumbers.append(text(i+" ",GRAY)); - } - pageNumbers = pageNumbers.append(text("]",DARK_GRAY)); - - return output.append( - join( - newlines(), - SPACING, - BORDER, - SPACING, - text(PAGES+":"), - pageNumbers, - SPACING, - BORDER - ) - ); - }; - - public final static Component WORDMARK_REGISTERED_FAMILIES = - join( - newlines(), - ASCIIAlphabet.generate("registered"), - SPACING, - ASCIIAlphabet.generate("families") - ); - - public final static Component RC_ROOT_USAGE = join( - newlines(), - BORDER, - SPACING, - WORDMARK_USAGE.color(AQUA), - SPACING, - resolver().getArray("proxy.root.usage.description"), - SPACING, - BORDER, - SPACING, - text("/rc family", AQUA), - resolver().get("proxy.root.usage.command_description.family"), - SPACING, - text("/rc message", AQUA), - resolver().get("proxy.root.usage.command_description.message"), - SPACING, - text("/rc reload", GOLD), - resolver().get("proxy.root.usage.command_description.reload"), - SPACING, - text("/rc send", AQUA), - resolver().get("proxy.root.usage.command_description.send"), - SPACING, - BORDER - ); - - public final static Component RC_MESSAGE_ROOT_USAGE = join( - newlines(), - BORDER, - SPACING, - WORDMARK_USAGE.color(AQUA), - SPACING, - BORDER, - SPACING, - text("/rc message get ", AQUA), - resolver().get("proxy.message.usage.get"), - SPACING, - text("/rc message list ", AQUA), - resolver().get("proxy.message.usage.list"), - SPACING, - BORDER - ); - - public final static Component RC_SEND_USAGE = join( - newlines(), - BORDER, - SPACING, - WORDMARK_USAGE.color(AQUA), - SPACING, - BORDER, - SPACING, - text("/rc send ", GOLD), - resolver().get("proxy.send.usage.family"), - SPACING, - text("/rc send server ", GOLD), - resolver().getArray("proxy.send.usage.server"), - SPACING, - BORDER - ); - - public final static Component RC_MESSAGE_GET_USAGE = join( - newlines(), - BORDER, - SPACING, - WORDMARK_USAGE.color(AQUA), - SPACING, - BORDER, - SPACING, - text("/rc message get ",AQUA), - resolver().get("proxy.message.usage.get"), - SPACING, - BORDER - ); - - public final static ParameterizedMessage1 RC_SEND_NO_PLAYER = username -> - resolver().get("proxy.send.no_player", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 RC_SEND_NO_FAMILY = familyName -> - resolver().get("proxy.send.no_family", LanguageResolver.tagHandler("family_name", familyName)); - public final static ParameterizedMessage1 RC_SEND_NO_SERVER = serverName -> - resolver().get("proxy.send.no_server", LanguageResolver.tagHandler("server_name", serverName)); - public final static Message RC_SEND_SAME_FAMILY = () -> resolver().get("proxy.send.same_family"); - - public final static ParameterizedMessage1 RC_MESSAGE_GET_MESSAGE = (message) -> join( - newlines(), - BORDER, - SPACING, - WORDMARK_MESSAGE.color(AQUA), - SPACING, - BORDER, - SPACING, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - text(REASON+": " + message.getSentenceReason(), message.getSentence().color()), - SPACING, - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text(CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - SPACING - ); - - public final static ParameterizedMessage1 RC_MESSAGE_ERROR = error -> join( - newlines(), - BORDER, - SPACING, - WORDMARK_MESSAGE.color(RED), - SPACING, - BORDER, - SPACING, - text(error,GRAY), - SPACING, - BORDER - ); - - public final static Message RC_FAMILY = () -> { - Tinder api = Tinder.get(); - Component families = text(""); - for (Family family : api.services().family().dump()) { - if(family instanceof RootFamily) - families = families.append(text("["+family.id()+"*] ").color(BLUE)); - if(family instanceof ScalarFamily) - families = families.append(text("["+family.id()+"] ").color(BLUE)); - if(family instanceof StaticFamily) - families = families.append(text("["+family.id()+"] ").color(DARK_GREEN)); - if(family instanceof RankedFamily) - families = families.append(text("["+family.id()+"] ").color(YELLOW)); - } - - return join( - newlines(), - BORDER, - SPACING, - WORDMARK_REGISTERED_FAMILIES.color(AQUA), - SPACING, - BORDER, - SPACING, - resolver().getArray("proxy.family.description"), - families, - SPACING, - BORDER, - SPACING, - text("/rc family ",DARK_AQUA), - resolver().get("proxy.family.details_usage"), - SPACING, - BORDER - ); - }; - - public final static ParameterizedMessage2 RC_SCALAR_FAMILY_INFO = (family, locked) -> { - Component servers = text(""); - int i = 0; - - if(family.registeredServers() == null) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.registeredServers().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.loadBalancer().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_unlocked_servers"); - else { - List serverList; - if(locked) - serverList = family.loadBalancer().lockedServers(); - else - serverList = family.loadBalancer().openServers(); - - for (IMCLoader server : serverList) { - Component serverEntry = resolver().get( - "proxy.family.generic.servers.details", - LanguageResolver.tagHandler("index_number", i + 1), - LanguageResolver.tagHandler("server_name", server.uuidOrDisplayName()), - LanguageResolver.tagHandler("server_address", AddressUtil.addressToString(server.registeredServer().getServerInfo().getAddress())), - LanguageResolver.tagHandler("player_count", server.playerCount()), - LanguageResolver.tagHandler("player_soft_cap", server.softPlayerCap()), - LanguageResolver.tagHandler("player_hard_cap", server.hardPlayerCap()), - LanguageResolver.tagHandler("server_weight", server.weight()) - ); - - if(family.loadBalancer().index() == i && !locked) - serverEntry = serverEntry.color(GREEN); - else - serverEntry = serverEntry.color(GRAY); - - servers = servers.append(serverEntry).append(newline()); - - i++; - } - } - - IRootFamily rootFamily = Tinder.get().services().family().rootFamily(); - String parentFamilyName = rootFamily.id(); - try { - parentFamilyName = Objects.requireNonNull(family.parent()).id(); - } catch (Exception ignore) {} - if(family.equals(rootFamily)) parentFamilyName = "none"; - - String persistence = "Disabled"; - if(family.loadBalancer().persistent()) - persistence = family.loadBalancer().attempts() + " Attempts"; - - return join( - newlines(), - BORDER, - SPACING, - ASCIIAlphabet.generate(family.id(), AQUA), - SPACING, - BORDER, - SPACING, - resolver().getArray( - "proxy.family.scalar.panel.info", - LanguageResolver.tagHandler("display_name", family.displayName()), - LanguageResolver.tagHandler("parent_family_name", parentFamilyName), - LanguageResolver.tagHandler("players_count", family.playerCount()), - - LanguageResolver.tagHandler("servers_count", family.loadBalancer().size()), - LanguageResolver.tagHandler("servers_open", family.loadBalancer().size(false)), - LanguageResolver.tagHandler("servers_locked", family.loadBalancer().size(true)), - - LanguageResolver.tagHandler("load_balancing_algorithm", family.loadBalancer()), - LanguageResolver.tagHandler("load_balancing_weighted", family.loadBalancer().weighted()), - LanguageResolver.tagHandler("load_balancing_persistence", persistence) - ), - SPACING, - BORDER, - SPACING, - resolver().get("proxy.family.generic.servers.open_servers"), - SPACING, - text("/rc family sort", GOLD), - resolver().get("proxy.family.generic.command_descriptions.sort"), - SPACING, - text("/rc family resetIndex", GOLD), - resolver().get("proxy.family.generic.command_descriptions.reset_index"), - SPACING, - text("/rc family locked", GOLD), - resolver().get("proxy.family.generic.command_descriptions.locked"), - SPACING, - servers, - SPACING, - BORDER - ); - }; - - public final static ParameterizedMessage2 RC_STATIC_FAMILY_INFO = (family, locked) -> { - Component servers = text(""); - int i = 0; - - if(family.registeredServers() == null) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.registeredServers().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.loadBalancer().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_unlocked_servers"); - else { - List serverList; - if(locked) - serverList = family.loadBalancer().lockedServers(); - else - serverList = family.loadBalancer().openServers(); - - for (IMCLoader server : serverList) { - Component serverEntry = resolver().get( - "proxy.family.generic.servers.details", - LanguageResolver.tagHandler("index_number", i + 1), - LanguageResolver.tagHandler("server_name", server.uuidOrDisplayName()), - LanguageResolver.tagHandler("server_address", AddressUtil.addressToString(server.registeredServer().getServerInfo().getAddress())), - LanguageResolver.tagHandler("player_count", server.playerCount()), - LanguageResolver.tagHandler("player_soft_cap", server.softPlayerCap()), - LanguageResolver.tagHandler("player_hard_cap", server.hardPlayerCap()), - LanguageResolver.tagHandler("server_weight", server.weight()) - ); - - if(family.loadBalancer().index() == i && !locked) - serverEntry = serverEntry.color(GREEN); - else - serverEntry = serverEntry.color(GRAY); - - servers = servers.append(serverEntry).append(newline()); - - i++; - } - } - - // Compile residence expiration - LiquidTimestamp expiration = family.homeServerExpiration(); - String homeServerExpiration = "NEVER"; - if(expiration != null) homeServerExpiration = expiration.toString(); - - // Compile Persistence - String persistence = "Disabled"; - if(family.loadBalancer().persistent()) - persistence = family.loadBalancer().attempts() + " Attempts"; - - return join( - newlines(), - BORDER, - SPACING, - ASCIIAlphabet.generate(family.id(), AQUA), - SPACING, - BORDER, - SPACING, - resolver().getArray( - "proxy.family.static.panel.info", - LanguageResolver.tagHandler("display_name", family.displayName()), - LanguageResolver.tagHandler("parent_family_name", family.parent().id()), - LanguageResolver.tagHandler("player_count", family.playerCount()), - - LanguageResolver.tagHandler("residence_expiration", homeServerExpiration), - LanguageResolver.tagHandler("servers_count", family.loadBalancer().size()), - LanguageResolver.tagHandler("servers_open", family.loadBalancer().size(false)), - LanguageResolver.tagHandler("servers_locked", family.loadBalancer().size(true)), - - LanguageResolver.tagHandler("load_balancing_algorithm", family.loadBalancer()), - LanguageResolver.tagHandler("load_balancing_weighted", family.loadBalancer().weighted()), - LanguageResolver.tagHandler("load_balancing_persistence", persistence) - ), - SPACING, - BORDER, - SPACING, - resolver().get("proxy.family.generic.servers.open_servers"), - SPACING, - text("/rc family sort", GOLD), - resolver().get("proxy.family.generic.command_descriptions.sort"), - SPACING, - text("/rc family resetIndex", GOLD), - resolver().get("proxy.family.generic.command_descriptions.reset_index"), - SPACING, - text("/rc family locked", GOLD), - resolver().get("proxy.family.generic.command_descriptions.locked"), - SPACING, - servers, - SPACING, - BORDER - ); - }; - - public final static Message RANKED_FAMILY_PARTY_DENIAL = () -> resolver().get("proxy.family.ranked.in_party"); - public final static Message RANKED_FAMILY_IN_MATCHMAKER_QUEUE_DENIAL = () -> resolver().get("proxy.family.ranked.in_matchmaker_queue"); - public final static Message RANKED_FAMILY_IN_MATCHMAKER_GAME_DENIAL = () -> resolver().get("proxy.family.ranked.in_matchmaker_game"); - public final static ParameterizedMessage2 RC_RANKED_FAMILY_INFO = (family, locked) -> { - Component servers = text(""); - int i = 0; - - if(family.registeredServers() == null) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.registeredServers().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.loadBalancer().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_unlocked_servers"); - else { - List serverList; - if(locked) - serverList = family.loadBalancer().lockedServers(); - else - serverList = family.loadBalancer().openServers(); - - for (IMCLoader server : serverList) { - Component serverEntry = resolver().get( - "proxy.family.generic.servers.details", - LanguageResolver.tagHandler("index_number", i + 1), - LanguageResolver.tagHandler("server_name", server.uuidOrDisplayName()), - LanguageResolver.tagHandler("server_address", AddressUtil.addressToString(server.registeredServer().getServerInfo().getAddress())), - LanguageResolver.tagHandler("player_count", server.playerCount()), - LanguageResolver.tagHandler("player_soft_cap", server.softPlayerCap()), - LanguageResolver.tagHandler("player_hard_cap", server.hardPlayerCap()), - LanguageResolver.tagHandler("server_weight", server.weight()) - ); - - if(family.loadBalancer().index() == i && !locked) - serverEntry = serverEntry.color(GREEN); - else - serverEntry = serverEntry.color(GRAY); - - servers = servers.append(serverEntry).append(newline()); - - i++; - } - } - - Matchmaker matchmaker = family.matchmaker(); - String algorithm = matchmaker.newPlayerRank().schemaName(); - - return join( - newlines(), - BORDER, - SPACING, - ASCIIAlphabet.generate(family.id(), AQUA), - SPACING, - BORDER, - SPACING, - resolver().getArray( - "proxy.family.ranked.panel.info", - LanguageResolver.tagHandler("display_name", family.displayName()), - LanguageResolver.tagHandler("parent_family_name", family.parent().id()), - - LanguageResolver.tagHandler("servers_count", family.loadBalancer().size()), - LanguageResolver.tagHandler("servers_open", family.loadBalancer().size(false)), - LanguageResolver.tagHandler("servers_locked", family.loadBalancer().size(true)), - - LanguageResolver.tagHandler("session_count", matchmaker.sessionCount()), - LanguageResolver.tagHandler("active_sessions", matchmaker.activeSessionCount()), - LanguageResolver.tagHandler("waiting_sessions", matchmaker.queuedSessionCount()), - - LanguageResolver.tagHandler("player_count", matchmaker.playerCount()), - LanguageResolver.tagHandler("active_players", matchmaker.activePlayerCount()), - LanguageResolver.tagHandler("waiting_players", matchmaker.queuedPlayerCount()), - - LanguageResolver.tagHandler("matchmaking_algorithm", algorithm) - ), - SPACING, - BORDER, - SPACING, - resolver().get("proxy.family.generic.servers.open_servers"), - SPACING, - text("/rc family sort", GOLD), - resolver().get("proxy.family.generic.command_descriptions.sort"), - SPACING, - text("/rc family resetIndex", GOLD), - resolver().get("proxy.family.generic.command_descriptions.reset_index"), - SPACING, - text("/rc family locked", GOLD), - resolver().get("proxy.family.generic.command_descriptions.locked"), - SPACING, - servers, - SPACING, - BORDER - ); - }; - - public final static Component MISSING_HOME_SERVER = resolver().get("proxy.family.static.residence.missing"); - public final static Component BLOCKED_STATIC_FAMILY_JOIN_ATTEMPT = resolver().get("proxy.family.static.residence.blocked_join_attempt"); - - public final static Component TPA_USAGE = text(USAGE+": /tpa <, deny, accept>",RED); - public final static Message TPA_DENY_USAGE = () -> join( - newlines(), - text(USAGE+": /tpa deny ",RED), - resolver().get("proxy.tpa.usage.deny") - ); - public final static Message TPA_ACCEPT_USAGE = () -> join( - newlines(), - text(USAGE+": /tpa accept ",RED), - resolver().get("proxy.tpa.usage.accept") - ); - - public final static ParameterizedMessage1 TPA_FAILURE = username -> resolver().get("proxy.tpa.sender_failure", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_FAILURE_TARGET = username -> resolver().get("proxy.tpa.target_failure", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_NOT_FRIENDS = username -> resolver().get("proxy.tpa.not_friends", LanguageResolver.tagHandler("username", username)); - public final static Component TPA_FAILURE_SELF_TP = resolver().get("proxy.tpa.self_failure"); - public final static ParameterizedMessage1 TPA_FAILURE_NO_USERNAME = username -> resolver().get("proxy.tpa.not_online", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_FAILURE_NO_REQUEST = username -> resolver().get("proxy.tpa.no_requests", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_DUPLICATE = username -> resolver().get("proxy.tpa.pending_request", LanguageResolver.tagHandler("username", username)); - - public final static ParameterizedMessage1 TPA_REQUEST_QUERY = (sender) -> join( - newlines(), - resolver().get("proxy.tpa.target_query.query", LanguageResolver.tagHandler("username", sender.username())), - join( - JoinConfiguration.separator(space()), - text("["+ACCEPT+"]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.tpa.target_query.accept_tooltip", LanguageResolver.tagHandler("username", sender.username())))).clickEvent(ClickEvent.runCommand("/tpa accept "+sender.username())), - text("["+DENY+"]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.tpa.target_query.deny_tooltip", LanguageResolver.tagHandler("username", sender.username())))).clickEvent(ClickEvent.runCommand("/tpa deny "+sender.username())) - ) - ); - public final static ParameterizedMessage1 TPA_REQUEST_SUBMISSION = username -> resolver().get("proxy.tpa.request_confirmation", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_ACCEPTED_SENDER = username -> resolver().getArray("proxy.tpa.sender_accepted", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_ACCEPTED_TARGET = username -> resolver().getArray("proxy.tpa.target_accepted", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_DENIED_SENDER = username -> resolver().getArray("proxy.tpa.sender_deny", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_DENIED_TARGET = username -> resolver().getArray("proxy.tpa.target_deny", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_EXPIRED = username -> resolver().get("proxy.tpa.expired_request", LanguageResolver.tagHandler("username", username)); - - public final static ParameterizedMessage1 TPA_REQUEST_BYPASSED = username -> resolver().get("proxy.tpa.bypassed_request", LanguageResolver.tagHandler("username", username)); - - public final static Component HUB_CONNECTION_FAILED = resolver().get("proxy.hub.connection_failed"); - - public final static ParameterizedMessage2 PARTY_BOARD = (party, member) -> { - boolean hasParty = party != null; - - if(hasParty) { - boolean isLeader = party.leader().equals(member); - boolean canInvite; - try { - boolean onlyLeaderCanInvite = Tinder.get().services().party().orElseThrow().settings().onlyLeaderCanInvite(); - canInvite = !onlyLeaderCanInvite || isLeader; - } catch (Exception ignore) { - canInvite = isLeader; - } - - final Component[] playersList = {text("")}; - if(isLeader) - party.players().forEach(partyMember -> { - - playersList[0] = playersList[0].appendNewline(); - - if(party.leader().equals(partyMember)) - playersList[0] = playersList[0].append( - join( - JoinConfiguration.separator(text(" ")), - text("[x]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.leave"))).clickEvent(ClickEvent.runCommand("/party leave")), - text("[^]", GRAY), - text(partyMember.username(), WHITE), - text("["+LEADER+"]", BLUE) - ) - ); - else - playersList[0] = playersList[0].append( - join( - JoinConfiguration.separator(text(" ")), - text("[x]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.kick"))).clickEvent(ClickEvent.runCommand("/party kick " + partyMember.username())), - text("[^]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.promote"))).clickEvent(ClickEvent.runCommand("/party promote " + partyMember.username())), - text(partyMember.username(), WHITE) - ) - ); - }); - else - party.players().forEach(partyMember -> { - playersList[0] = playersList[0].appendNewline(); - if(party.leader().equals(partyMember)) - playersList[0] = playersList[0].append( - join( - JoinConfiguration.separator(text(" ")), - text(partyMember.username(), WHITE), - text("["+LEADER+"]", BLUE) - ) - ); - else - playersList[0] = playersList[0].append( - join( - JoinConfiguration.separator(text(" ")), - text(partyMember.username(), WHITE) - ) - ); - }); - - Component header; - if(canInvite) - header = text("-------------------", GRAY) - .append(text(" "+PARTY+" ", WHITE)) - .append(text("[+]", GREEN)).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.invite_player"))).clickEvent(ClickEvent.suggestCommand("/party invite ")) - .append(text(" ------------------", GRAY)); - else - header = text("------------------", GRAY) - .append(text(" "+PARTY+" ", WHITE)) - .append(text(" ------------------", GRAY)); - - if(isLeader) - return join( - newlines(), - header, - playersList[0], - space(), - text("----------------", GRAY) - .appendSpace() - .append(text(DISBAND, RED, TextDecoration.UNDERLINED).clickEvent(ClickEvent.runCommand("/party disband"))) - .appendSpace() - .appendSpace() - .append(text(LEAVE, RED, TextDecoration.UNDERLINED).clickEvent(ClickEvent.runCommand("/party leave"))) - .appendSpace() - .append(text("----------------", GRAY)) - ); - else - return join( - newlines(), - header, - playersList[0], - space(), - text("------------------ ", GRAY).append(text(LEAVE, RED, TextDecoration.UNDERLINED).clickEvent(ClickEvent.runCommand("/party leave"))).append(text(" ------------------", GRAY)) - ); - } - - return resolver().get("proxy.party.create.button").clickEvent(ClickEvent.runCommand("/party create")); - }; - - public final static ParameterizedMessage1 PARTY_INVITE_RECEIVED = (username) -> join( - newlines(), - resolver().get("proxy.party.receiver_invite_query.query", LanguageResolver.tagHandler("username", username)), - join( - JoinConfiguration.separator(space()), - text("["+ACCEPT+"]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.receiver_invite_query.hover.accept"))).clickEvent(ClickEvent.runCommand("/party invites "+username+" accept")), - text("["+IGNORE+"]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.receiver_invite_query.hover.ignore"))).clickEvent(ClickEvent.runCommand("/party invites "+username+" ignore")) - ) - ); - - public final static Component PARTY_USAGE_INVITES = text(USAGE+": /party invites ",RED); - - public final static Component PARTY_USAGE_INVITE = text(USAGE+": /party invite ",RED); - - public final static Component PARTY_USAGE_KICK = text(USAGE+": /party kick ",RED); - - public final static Component PARTY_USAGE_PROMOTE = text(USAGE+": /party promote ",RED); - - public final static Component PARTY_DISBANDED = resolver().get("proxy.party.disbanded"); - public final static Component PARTY_JOINED_SELF = resolver().get("proxy.party.party_joined_self"); - public final static Component PARTY_INVITE_NO_DOUBLE_DIPPING = resolver().get("proxy.party.invite.no_double_dipping"); - public final static Component PARTY_INVITE_EXPIRED = resolver().get("proxy.party.invite.expired"); - public final static ParameterizedMessage1 PARTY_INVITE_TARGET_NOT_ONLINE = (username) -> - resolver().get("proxy.party.invite.target_not_online", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 PARTY_JOINED = (username) -> - resolver().get("proxy.party.party_joined", LanguageResolver.tagHandler("username", username)); - public final static Component PARTY_FOLLOWING_KICKED_GENERIC = resolver().get("proxy.party.following_kicked.generic"); - public final static Component PARTY_FOLLOWING_KICKED_SERVER_FULL = resolver().get("proxy.party.following_kicked.server_full"); - public final static Component PARTY_FOLLOWING_FAILED_GENERIC = resolver().get("proxy.party.following_failed.generic"); - public final static Component PARTY_FOLLOWING_FAILED_SERVER_FULL = resolver().get("proxy.party.following_failed.server_full"); - public final static ParameterizedMessage1 PARTY_INVITE_SENT = (username) -> resolver().get( - "proxy.party.invite.sent", - LanguageResolver.tagHandler("username", username) - ); - public final static Component PARTY_INVITE_NOT_ONLINE = resolver().get("proxy.party.invite.not_online"); - public final static Component PARTY_INVITE_FRIENDS_ONLY = resolver().get("proxy.party.invite.friends_only"); - public final static Component PARTY_INVITE_SELF_INVITE = resolver().get("proxy.party.invite.self_invite"); - public final static ParameterizedMessage1 PARTY_INVITE_ALREADY_A_MEMBER = (username) -> resolver().get( - "proxy.party.invite.already_a_member", - LanguageResolver.tagHandler("username", username) - ); - public final static Component PARTY_CREATED = resolver().get("proxy.party.created"); - public final static Component PARTY_KICKED = resolver().get("proxy.party.kicked"); - public final static Component PARTY_PROMOTED = resolver().get("proxy.party.promoted"); - public final static Component NO_PARTY = resolver().get("proxy.party.no_party"); - public final static ParameterizedMessage1 PARTY_NO_MEMBER = (username) -> resolver().get( - "proxy.party.no_member", - LanguageResolver.tagHandler("username", username) - ); - public final static Component PARTY_LEFT_SELF = resolver().get("proxy.party.left_self"); - public final static Component PARTY_CREATE_ALREADY_IN_PARTY = resolver().get("proxy.party.create.already_in_party"); - public final static Component PARTY_CREATE_NO_SERVER = resolver().get("proxy.party.create.no_server"); - public final static ParameterizedMessage1 PARTY_STATUS_PROMOTED = (player) -> resolver().get( - "proxy.party.status_promoted", - LanguageResolver.tagHandler("username", player.getUsername()) - ); - public final static Component PARTY_DEMOTED = resolver().get("proxy.party.demoted"); - public final static Component PARTY_ALREADY_LEADER = resolver().get("proxy.party.already_leader"); - public final static Component PARTY_SELF_KICK = resolver().get("proxy.party.self_kick"); - public final static Component PARTY_ONLY_LEADER_CAN_DISBAND = resolver().get("proxy.party.only_leader_can.disband"); - public final static Component PARTY_ONLY_LEADER_CAN_SWITCH = resolver().get("proxy.party.only_leader_can.switch"); - public final static Component PARTY_ONLY_LEADER_CAN_KICK = resolver().get("proxy.party.only_leader_can.kick"); - public final static Component PARTY_ONLY_LEADER_CAN_PROMOTE = resolver().get("proxy.party.only_leader_can.promote"); - public final static Component PARTY_ONLY_LEADER_CAN_INVITE = resolver().get("proxy.party.only_leader_can.invite"); - public final static ParameterizedMessage1 PARTY_NO_INVITE = (sender) -> resolver().get("proxy.party.invite.no_invite", LanguageResolver.tagHandler("username", sender)); - public final static ParameterizedMessage1 PARTY_IGNORE_INVITE = (sender) -> resolver().get("proxy.party.invite.ignore", LanguageResolver.tagHandler("username", sender)); - - - public final static String PARTY_INJECTED_ONLY_LEADER_CAN_INVITE = resolver().getRaw("proxy.party.injected_error.only_leader_can_invite"); - public final static String PARTY_INJECTED_FRIENDS_RESTRICTION_CONFLICT = resolver().getRaw("proxy.party.injected_error.friends_restriction_conflict"); - public final static String PARTY_INJECTED_FRIENDS_RESTRICTION = resolver().getRaw("proxy.party.injected_error.friends_restriction"); - public final static String PARTY_INJECTED_ACKNOWLEDGED = resolver().getRaw("proxy.party.injected_error.acknowledged"); - public final static String PARTY_INJECTED_EXPIRED_INVITE = resolver().getRaw("proxy.party.injected_error.expired_invite"); - public final static String PARTY_INJECTED_NO_SENDER = resolver().getRaw("proxy.party.injected_error.no_sender"); - public final static String PARTY_INJECTED_NO_TARGET = resolver().getRaw("proxy.party.injected_error.no_target"); - public final static String PARTY_INJECTED_INVALID_LEADER_INVITE = resolver().getRaw("proxy.party.injected_error.invalid_leader_invite"); - public final static String PARTY_INJECTED_INVALID_MEMBER_INVITE = resolver().getRaw("proxy.party.injected_error.invalid_member_invite"); - - public final static ParameterizedMessage1 FRIENDS_BOARD = (player) -> { - Tinder api = Tinder.get(); - FriendsService friendsService = api.services().friends().orElseThrow(); - int maxFriends = friendsService.settings().maxFriends(); - player.sendMessage(resolver().get("proxy.friends.panel.pending")); - - boolean isPartyEnabled = false; - try { - api.services().party().orElseThrow(); - isPartyEnabled = true; - } catch (Exception ignore) {} - boolean finalIsPartyEnabled = isPartyEnabled; - - boolean isFriendMessagingEnabled = friendsService.settings().allowMessaging(); - boolean canSeeFriendFamilies = friendsService.settings().showFamilies(); - - List friends = friendsService.friendStorage().get(player).orElse(List.of()); - - if(friends.size() != 0) { - final Component[] playersList = {text("")}; - - friends.forEach(friend -> { - playersList[0] = playersList[0].appendNewline(); - - playersList[0] = playersList[0].append(text("[x]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.unfriend", LanguageResolver.tagHandler("username",friend.username())))).clickEvent(ClickEvent.runCommand("/unfriend " + friend.username()))); - - playersList[0] = playersList[0].append(space()); - - - if(isFriendMessagingEnabled) { - playersList[0] = playersList[0].append(text("[m]", YELLOW).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.message", LanguageResolver.tagHandler("username",friend.username())))).clickEvent(ClickEvent.suggestCommand("/fm " + friend.username() + " "))); - playersList[0] = playersList[0].append(space()); - } - - if(finalIsPartyEnabled) { - playersList[0] = playersList[0].append(text("[p]", BLUE).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.invite_party", LanguageResolver.tagHandler("username",friend.username())))).clickEvent(ClickEvent.runCommand("/party invite " + friend.username() + " "))); - playersList[0] = playersList[0].append(space()); - } - - - com.velocitypowered.api.proxy.Player resolvedFriend = friend.resolve().orElse(null); - if(resolvedFriend == null) { - playersList[0] = playersList[0].append(text(friend.username(), GRAY).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.offline")))); - return; - } - if(resolvedFriend.getCurrentServer().orElse(null) == null) { - playersList[0] = playersList[0].append(text(friend.username(), GRAY).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.offline")))); - return; - } - - MCLoader mcLoader = new MCLoader.Reference(UUID.fromString(resolvedFriend.getCurrentServer().orElseThrow().getServerInfo().getName())).get(); - if(canSeeFriendFamilies) - playersList[0] = playersList[0].append(text(friend.username(), WHITE).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.currently_playing", LanguageResolver.tagHandler("family_name", mcLoader.family().displayName()))))); - else - playersList[0] = playersList[0].append(text(friend.username(), WHITE).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.online")))); - }); - - return join( - newlines(), - text("--------------", GRAY) - .append(resolver().get("proxy.friends.panel.header.main", LanguageResolver.tagHandler("friend_count", friends.size()), LanguageResolver.tagHandler("max_friends", maxFriends))) - .append(text("[+]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.add_friend"))).clickEvent(ClickEvent.suggestCommand("/friends add "))) - .append(text(" --------------", GRAY)), - playersList[0], - space(), - text("---------------------------------------------", GRAY) - ); - } - - return join( - newlines(), - resolver().get("proxy.friends.panel.send_friend_request").clickEvent(ClickEvent.suggestCommand("/friends add ")) - ); - }; - - public final static ParameterizedMessage1 FRIEND_REQUEST = (sender) -> join( - newlines(), - resolver().get("proxy.friends.friend_request_query.query", LanguageResolver.tagHandler("username", sender.username())), - join( - JoinConfiguration.separator(space()), - text("["+ACCEPT+"]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.friend_request_query.hover.accept"))).clickEvent(ClickEvent.runCommand("/friends requests "+sender.username()+" accept")), - text("["+IGNORE+"]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.friend_request_query.hover.ignore"))).clickEvent(ClickEvent.runCommand("/friends requests "+sender.username()+" ignore")) - ) - ); - public final static ParameterizedMessage1 FRIEND_JOIN = (player) -> { - FriendsService friendsService = Tinder.get().services().friends().orElseThrow(); - - if(friendsService.settings().allowMessaging()) - return resolver().get("proxy.friends.friend_joined.resolved", LanguageResolver.tagHandler("username", player.username())); - else - return resolver().get("proxy.friends.friend_joined.regular", LanguageResolver.tagHandler("username", player.username())); - }; - public final static ParameterizedMessage1 FRIEND_LEAVE = (player) -> - resolver().get("proxy.friends.friend_leaves", LanguageResolver.tagHandler("username", player.username())); - public final static Message FRIEND_REQUEST_USAGE = () -> text(USAGE+": /friend requests ",RED); - public final static ParameterizedMessage1 BECOME_FRIENDS = (username) -> - resolver().get("proxy.friends.become_friends", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 FRIEND_REQUEST_SENT = (username) -> - resolver().get("proxy.friends.request.sent", LanguageResolver.tagHandler("username", username)); - public final static Component FRIEND_REQUEST_EXPIRED = resolver().get("proxy.friends.request.expired"); - public final static ParameterizedMessage1 FRIEND_REQUEST_IGNORE = (username) -> - resolver().get("proxy.friends.request.ignore", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 FRIEND_REQUEST_TARGET_NOT_ONLINE = (username) -> - resolver().get("proxy.friends.request.target_not_online", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 UNFRIEND_NOT_FRIENDS = (username) -> - resolver().get("proxy.friends.unfriend.not_friends", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 UNFRIEND_SUCCESS = (username) -> - resolver().get("proxy.friends.unfriend.success", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 FRIEND_REQUEST_ALREADY_FRIENDS = (username) -> - resolver().get("proxy.friends.request.already_friends", LanguageResolver.tagHandler("username", username)); - public final static Component FRIEND_MESSAGING_NO_SELF_MESSAGING = resolver().get("proxy.friends.messaging.no_self_messaging"); - public final static Component FRIEND_MESSAGING_ONLY_FRIENDS = resolver().get("proxy.friends.messaging.only_friends"); - public final static Component FRIEND_MESSAGING_REPLY = text(resolver().getRaw("proxy.friends.messaging.reply")); - public final static Component MAX_FRIENDS_REACHED = resolver().get("proxy.friends.max_friends_reached"); - public final static ParameterizedMessage1 FRIENDS_JOIN_MESSAGE_EMPTY = (friend_count) -> join( - newlines(), - resolver().getArray( - "proxy.friends.join_message_empty", - LanguageResolver.tagHandler("friend_count", friend_count) - ) - ); - public final static ParameterizedMessage1> FRIENDS_JOIN_MESSAGE = (requests) -> { - if(requests.size() > 8) - return FRIENDS_JOIN_MESSAGE_EMPTY.build(requests.size()); - - try { - AtomicReference from = new AtomicReference<>(""); - requests.forEach(request -> { - try { - from.set(from + ", " + request.sender().username()); - } catch (Exception ignore) {} - }); - - return join( - newlines(), - resolver().getArray( - "proxy.friends.join_message_countable", - LanguageResolver.tagHandler("friend_count", requests.size()), - LanguageResolver.tagHandler("friend_requests", from.get()) - ) - ); - } catch (Exception ignore) { - return FRIENDS_JOIN_MESSAGE_EMPTY.build(requests.size()); - } - }; - public final static String FRIEND_INJECTED_MAXED = resolver().getRaw("proxy.friends.injected_error.maxed"); - public final static String FRIEND_INJECTED_ACKNOWLEDGED = resolver().getRaw("proxy.friends.injected_error.acknowledged"); - public final static String FRIEND_INJECTED_INTERNAL_ERROR = resolver().getRaw("proxy.friends.injected_error.internal_error"); - - public final static Component NO_ONLINE_FRIENDS = resolver().get("proxy.friends.no_online_friends"); - public final static Component ONLINE_FRIENDS = resolver().get("proxy.friends.online_friends"); - - public final static Component UNFRIEND_USAGE = text(USAGE+": /unfriend ",RED); - public final static Component FM_USAGE = text(USAGE+": /fm ",RED); - - public final static ParameterizedMessage1 PING = uuidOrDisplayName -> text( - resolver().get("proxy.console_icons.ping") + " " + uuidOrDisplayName - ); - - public final static ParameterizedMessage2 REGISTRATION_REQUEST = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.attempting_registration") +" "+familyName - ); - - public final static ParameterizedMessage2 REGISTERED = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.registered") +" "+familyName - ); - - public final static ParameterizedMessage2 ERROR = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.error") +" "+familyName - ); - - public final static ParameterizedMessage2 UNREGISTRATION_REQUEST = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.attempting_unregistration") +" "+familyName - ); - - public final static ParameterizedMessage2 UNREGISTERED = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.unregistered") +" "+familyName - ); - - public final static ParameterizedMessage1 FAMILY_BALANCING = family -> text( - family.id() + " " + resolver().get("proxy.console_icons.family_balancing") - ); -} diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/local_storage/LocalStorage.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/local_storage/LocalStorage.java index c8c8dec10..2d733386b 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/local_storage/LocalStorage.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/local_storage/LocalStorage.java @@ -1,9 +1,9 @@ package group.aelysium.rustyconnector.proxy.local_storage; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.storage.ILocalStorage; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.storage.ILocalStorage; import java.util.LinkedHashMap; import java.util.Map; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/magic_link/packet_handlers/HandshakeDisconnectListener.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/magic_link/packet_handlers/HandshakeDisconnectListener.java index b8c0f5440..6d579cd46 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/magic_link/packet_handlers/HandshakeDisconnectListener.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/magic_link/packet_handlers/HandshakeDisconnectListener.java @@ -6,9 +6,9 @@ import group.aelysium.rustyconnector.toolkit.RC; import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.IPacket; import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.PacketListener; -import group.aelysium.rustyconnector.toolkit.velocity.events.mc_loader.MCLoaderUnregisterEvent; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.events.mc_loader.MCLoaderUnregisterEvent; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import java.util.concurrent.TimeUnit; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/magic_link/packet_handlers/HandshakePingListener.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/magic_link/packet_handlers/HandshakePingListener.java index b97e5a518..7abe1b01b 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/magic_link/packet_handlers/HandshakePingListener.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/magic_link/packet_handlers/HandshakePingListener.java @@ -8,13 +8,12 @@ import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.magic_link.IMagicLink; import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.IPacket; -import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.PacketIdentification; import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.PacketListener; import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.PacketParameter; -import group.aelysium.rustyconnector.toolkit.velocity.events.mc_loader.MCLoaderRegisterEvent; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.util.AddressUtil; +import group.aelysium.rustyconnector.toolkit.proxy.events.mc_loader.MCLoaderRegisterEvent; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.util.AddressUtil; import net.kyori.adventure.text.format.NamedTextColor; import java.security.InvalidAlgorithmParameterException; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/players/Player.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/players/Player.java index 280a5075b..9ebb65006 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/players/Player.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/players/Player.java @@ -1,8 +1,8 @@ package group.aelysium.rustyconnector.proxy.players; import group.aelysium.rustyconnector.toolkit.RC; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/RemoteStorage.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/RemoteStorage.java index c48f1a92e..544e88df2 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/RemoteStorage.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/RemoteStorage.java @@ -4,8 +4,8 @@ import group.aelysium.rustyconnector.proxy.remote_storage.reactors.StorageReactor; import group.aelysium.rustyconnector.toolkit.common.UserPass; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.storage.IRemoteStorage; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.storage.IRemoteStorage; import org.jetbrains.annotations.NotNull; import java.net.InetSocketAddress; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/reactors/MySQLReactor.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/reactors/MySQLReactor.java index 6f3a52b25..295730725 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/reactors/MySQLReactor.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/reactors/MySQLReactor.java @@ -6,10 +6,10 @@ import com.mysql.cj.jdbc.MysqlDataSource; import group.aelysium.rustyconnector.plugin.velocity.lib.players.Player; import group.aelysium.rustyconnector.toolkit.common.UserPass; -import group.aelysium.rustyconnector.toolkit.velocity.family.matchmaking.IRankResolver; -import group.aelysium.rustyconnector.toolkit.velocity.family.matchmaking.IVelocityPlayerRank; -import group.aelysium.rustyconnector.toolkit.velocity.family.static_family.IServerResidence; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.matchmaking.IRankResolver; +import group.aelysium.rustyconnector.toolkit.proxy.family.matchmaking.IVelocityPlayerRank; +import group.aelysium.rustyconnector.toolkit.proxy.family.static_family.IServerResidence; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; import java.net.InetSocketAddress; import java.sql.Connection; diff --git a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/reactors/StorageReactor.java b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/reactors/StorageReactor.java index f5c54c73f..13d3a0b79 100644 --- a/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/reactors/StorageReactor.java +++ b/plugin/proxy/src/main/java/group/aelysium/rustyconnector/proxy/remote_storage/reactors/StorageReactor.java @@ -1,7 +1,7 @@ package group.aelysium.rustyconnector.proxy.remote_storage.reactors; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; import java.util.Optional; import java.util.UUID; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/RC.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/RC.java index 63fdf50be..83a1e813a 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/RC.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/RC.java @@ -3,13 +3,15 @@ import group.aelysium.rustyconnector.toolkit.common.events.IEventManager; import group.aelysium.rustyconnector.toolkit.common.magic_link.IMagicLink; import group.aelysium.rustyconnector.toolkit.mc_loader.MCLoaderAdapter; -import group.aelysium.rustyconnector.toolkit.velocity.ProxyAdapter; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamilies; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.storage.ILocalStorage; -import group.aelysium.rustyconnector.toolkit.velocity.storage.IRemoteStorage; +import group.aelysium.rustyconnector.toolkit.mc_loader.lang.MCLoaderLangLibrary; +import group.aelysium.rustyconnector.toolkit.proxy.ProxyAdapter; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamilies; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.lang.ProxyLangLibrary; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.storage.ILocalStorage; +import group.aelysium.rustyconnector.toolkit.proxy.storage.IRemoteStorage; import java.util.NoSuchElementException; import java.util.Optional; @@ -49,6 +51,10 @@ static ProxyAdapter Adapter() throws NoSuchElementException { return RustyConnector.Toolkit.Proxy().orElseThrow().orElseThrow().Adapter(); } + static ProxyLangLibrary Lang() throws NoSuchElementException { + return RustyConnector.Toolkit.Proxy().orElseThrow().orElseThrow().Lang().orElseThrow(); + } + static Optional Family(String id) throws NoSuchElementException { IFamily family = null; try { @@ -78,6 +84,10 @@ static MCLoaderAdapter Adapter() throws NoSuchElementException { return RustyConnector.Toolkit.MCLoader().orElseThrow().orElseThrow().Adapter(); } + static MCLoaderLangLibrary Lang() throws NoSuchElementException { + return RustyConnector.Toolkit.MCLoader().orElseThrow().orElseThrow().Lang().orElseThrow(); + } + static IEventManager EventManager() throws NoSuchElementException { return RustyConnector.Toolkit.MCLoader().orElseThrow().orElseThrow().EventManager(); } diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/RustyConnector.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/RustyConnector.java index 80820a6e2..787fff8c9 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/RustyConnector.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/RustyConnector.java @@ -2,7 +2,7 @@ import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.mc_loader.IMCLoaderFlame; -import group.aelysium.rustyconnector.toolkit.velocity.IProxyFlame; +import group.aelysium.rustyconnector.toolkit.proxy.IProxyFlame; import org.jetbrains.annotations.NotNull; import java.util.Optional; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/absolute_redundancy/Particle.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/absolute_redundancy/Particle.java index 7bfb01724..bb4369ceb 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/absolute_redundancy/Particle.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/absolute_redundancy/Particle.java @@ -1,6 +1,6 @@ package group.aelysium.rustyconnector.toolkit.common.absolute_redundancy; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/cache/TimeoutCache.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/cache/TimeoutCache.java index 2504e3d24..ea444bf7f 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/cache/TimeoutCache.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/cache/TimeoutCache.java @@ -11,7 +11,7 @@ import java.util.function.Consumer; import java.util.stream.Collectors; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; public class TimeoutCache implements Closeable, Map { private final Map> map = new ConcurrentHashMap<>(); diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/ASCIIAlphabet.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/ASCIIAlphabet.java new file mode 100644 index 000000000..000dd42a0 --- /dev/null +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/ASCIIAlphabet.java @@ -0,0 +1,20 @@ +package group.aelysium.rustyconnector.toolkit.common.lang; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; + +/** + * The ascii alphabet class is used to generate large multi-line + * representations of alphanumeric text via ASCII Characters. + */ +public interface ASCIIAlphabet { + /** + * Generate a component containing the ASCII representation of the provided string. + */ + Component generate(String string); + + /** + * Generates a component containing the ASCII representation of the provided string, also colorized. + */ + Component generate(String string, NamedTextColor color); +} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/EnglishAlphabet.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/EnglishAlphabet.java new file mode 100644 index 000000000..428c32c49 --- /dev/null +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/EnglishAlphabet.java @@ -0,0 +1,483 @@ +package group.aelysium.rustyconnector.toolkit.common.lang; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.JoinConfiguration; +import net.kyori.adventure.text.format.NamedTextColor; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static net.kyori.adventure.text.Component.join; +import static net.kyori.adventure.text.Component.text; +import static net.kyori.adventure.text.JoinConfiguration.newlines; + +public class EnglishAlphabet implements ASCIIAlphabet { + protected int font_size = 6; + + protected Component WHITESPACE() { + return join( + JoinConfiguration.noSeparators(), + text(" "), + text(" "), + text(" "), + text(" "), + text(" "), + text(" ") + ); + } + + protected Component A() { + return join( + JoinConfiguration.noSeparators(), + text(" █████╗ "), + text("██╔══██╗"), + text("███████║"), + text("██╔══██║"), + text("██║ ██║"), + text("╚═╝ ╚═╝") + ); + } + + protected Component B() { + return join( + JoinConfiguration.noSeparators(), + text("██████╗ "), + text("██╔══██╗"), + text("██████╔╝"), + text("██╔══██╗"), + text("██████╔╝"), + text("╚═════╝ ") + ); + } + + protected Component C() { + return join( + JoinConfiguration.noSeparators(), + text(" ██████╗"), + text("██╔════╝"), + text("██║ "), + text("██║ "), + text("╚██████╗"), + text(" ╚═════╝") + ); + } + protected Component D() { + return join( + JoinConfiguration.noSeparators(), + text("██████╗ "), + text("██╔══██╗"), + text("██║ ██║"), + text("██║ ██║"), + text("██████╔╝"), + text("╚═════╝ ") + ); + } + protected Component E() { + return join( + JoinConfiguration.noSeparators(), + text("███████╗"), + text("██╔════╝"), + text("█████╗ "), + text("██╔══╝ "), + text("███████╗"), + text("╚══════╝") + ); + } + protected Component F() { + return join( + JoinConfiguration.noSeparators(), + text("███████╗"), + text("██╔════╝"), + text("█████╗ "), + text("██╔══╝ "), + text("██║ "), + text("╚═╝ ") + ); + } + protected Component G() { + return join( + JoinConfiguration.noSeparators(), + text(" ██████╗ "), + text("██╔════╝ "), + text("██║ ███╗"), + text("██║ ██║"), + text("╚██████╔╝"), + text(" ╚═════╝ ") + ); + } + protected Component H() { + return join( + JoinConfiguration.noSeparators(), + text("██╗ ██╗"), + text("██║ ██║"), + text("███████║"), + text("██╔══██║"), + text("██║ ██║"), + text("╚═╝ ╚═╝") + ); + } + protected Component I() { + return join( + JoinConfiguration.noSeparators(), + text("██╗"), + text("██║"), + text("██║"), + text("██║"), + text("██║"), + text("╚═╝") + ); + } + protected Component J() { + return join( + JoinConfiguration.noSeparators(), + text(" ██╗"), + text(" ██║"), + text(" ██║"), + text("██ ██║"), + text("╚█████╔╝"), + text(" ╚════╝ ") + ); + } + protected Component K() { + return join( + JoinConfiguration.noSeparators(), + text("██╗ ██╗"), + text("██║ ██╔╝"), + text("█████╔╝ "), + text("██╔═██╗ "), + text("██║ ██╗"), + text("╚═╝ ╚═╝") + ); + } + protected Component L() { + return join( + JoinConfiguration.noSeparators(), + text("██╗ "), + text("██║ "), + text("██║ "), + text("██║ "), + text("███████╗"), + text("╚══════╝") + ); + } + protected Component M() { + return join( + JoinConfiguration.noSeparators(), + text("███╗ ███╗"), + text("████╗ ████║"), + text("██╔████╔██║"), + text("██║╚██╔╝██║"), + text("██║ ╚═╝ ██║"), + text("╚═╝ ╚═╝") + ); + } + protected Component N() { + return join( + JoinConfiguration.noSeparators(), + text("███╗ ██╗"), + text("████╗ ██║"), + text("██╔██╗ ██║"), + text("██║╚██╗██║"), + text("██║ ╚████║"), + text("╚═╝ ╚═══╝") + ); + } + protected Component O() { + return join( + JoinConfiguration.noSeparators(), + text(" ██████╗ "), + text("██╔═══██╗"), + text("██║ ██║"), + text("██║ ██║"), + text("╚██████╔╝"), + text(" ╚═════╝ ") + ); + } + protected Component P() { + return join( + JoinConfiguration.noSeparators(), + text("██████╗ "), + text("██╔══██╗"), + text("██████╔╝"), + text("██╔═══╝ "), + text("██║ "), + text("╚═╝ ") + ); + } + protected Component Q() { + return join( + JoinConfiguration.noSeparators(), + text(" ██████╗ "), + text("██╔═══██╗"), + text("██║ ██║"), + text("██║▄▄ ██║"), + text("╚██████╔╝"), + text(" ╚══▀▀═╝ ") + ); + } + protected Component R() { + return join( + JoinConfiguration.noSeparators(), + text("██████╗ "), + text("██╔══██╗"), + text("██████╔╝"), + text("██╔══██╗"), + text("██║ ██║"), + text("╚═╝ ╚═╝") + ); + } + protected Component S() { + return join( + JoinConfiguration.noSeparators(), + text("███████╗"), + text("██╔════╝"), + text("███████╗"), + text("╚════██║"), + text("███████║"), + text("╚══════╝") + ); + } + protected Component T() { + return join( + JoinConfiguration.noSeparators(), + text("████████╗"), + text("╚══██╔══╝"), + text(" ██║ "), + text(" ██║ "), + text(" ██║ "), + text(" ╚═╝ ") + ); + } + protected Component U() { + return join( + JoinConfiguration.noSeparators(), + text("██╗ ██╗"), + text("██║ ██║"), + text("██║ ██║"), + text("██║ ██║"), + text("╚██████╔╝"), + text(" ╚═════╝ ") + ); + } + protected Component V() { + return join( + JoinConfiguration.noSeparators(), + text("██╗ ██╗"), + text("██║ ██║"), + text("██║ ██║"), + text("╚██╗ ██╔╝"), + text(" ╚████╔╝ "), + text(" ╚═══╝ ") + ); + } + protected Component W() { + return join( + JoinConfiguration.noSeparators(), + text(" ██╗ ██╗"), + text(" ██║ ██║"), + text(" ██║ █╗ ██║"), + text(" ██║███╗██║"), + text(" ╚███╔███╔╝"), + text(" ╚══╝╚══╝ ") + ); + } + protected Component X() { + return join( + JoinConfiguration.noSeparators(), + text("██╗ ██╗"), + text("╚██╗██╔╝"), + text(" ╚███╔╝ "), + text(" ██╔██╗ "), + text("██╔╝ ██╗"), + text("╚═╝ ╚═╝") + ); + } + protected Component Y() { + return join( + JoinConfiguration.noSeparators(), + text("██╗ ██╗"), + text("╚██╗ ██╔╝"), + text(" ╚████╔╝ "), + text(" ╚██╔╝ "), + text(" ██║ "), + text(" ╚═╝ ") + ); + } + protected Component Z() { + return join( + JoinConfiguration.noSeparators(), + text("███████╗"), + text("╚══███╔╝"), + text(" ███╔╝ "), + text(" ███╔╝ "), + text("███████╗"), + text("╚══════╝") + ); + } + protected Component PERIOD() { + return join( + JoinConfiguration.noSeparators(), + text(" "), + text(" "), + text(" "), + text("████╗"), + text("████║"), + text("╚═══╝") + ); + } + protected Component EXCLAMATION() { + return join( + JoinConfiguration.noSeparators(), + text("██╗"), + text("██║"), + text("██║"), + text("╚═╝"), + text("██╗"), + text("╚═╝") + ); + } + protected Component QUESTION() { + return join( + JoinConfiguration.noSeparators(), + text("██████╗ "), + text("╚════██╗"), + text(" ▄███╔╝"), + text(" ▀▀══╝ "), + text(" ██╗ "), + text(" ╚═╝ ") + ); + } + protected Component DASH() { + return join( + JoinConfiguration.noSeparators(), + text(" "), + text(" "), + text("█████╗"), + text("╚════╝"), + text(" "), + text(" ") + ); + } + protected Component UNDERSCORE() { + return join( + JoinConfiguration.noSeparators(), + text(" "), + text(" "), + text(" "), + text(" "), + text("███████╗"), + text("╚══════╝") + ); + } + + /** + * Converts a string to an ASCIIAlphabet equivalent. + * This method does not recognize, numbers, punctuation, nor newlines. + */ + @Override + public Component generate(String string) { + Map map = map(); + List generatedString = new ArrayList<>(); + + for (int i = 0; i < this.font_size; i++) { + generatedString.add(text("")); + } + + for(char character : string.toUpperCase().toCharArray()) { + try { + Component asciiCharacter = map.get(character); + for (int i = 0; i < this.font_size; i++) { + Component receivingRow = generatedString.get(i); + Component rowToExtract = asciiCharacter.children().get(i); + + generatedString.set(i,receivingRow.append(rowToExtract)); + } + } catch (Exception ignored) {} + } + + return join( + newlines(), + generatedString.get(0), + generatedString.get(1), + generatedString.get(2), + generatedString.get(3), + generatedString.get(4), + generatedString.get(5) + ); + } + + /** + * Converts a string to an ASCIIAlphabet equivalent. + * This method does not recognize, numbers, punctuation, nor newlines. + */ + @Override + public Component generate(String string, NamedTextColor color) { + Map map = map(); + List generatedString = new ArrayList<>(); + + for (int i = 0; i < this.font_size; i++) { + generatedString.add(text("")); + } + + for(char character : string.toUpperCase().toCharArray()) { + try { + Component asciiCharacter = map.get(character); + for (int i = 0; i < this.font_size; i++) { + Component receivingRow = generatedString.get(i); + Component rowToExtract = asciiCharacter.children().get(i); + + generatedString.set(i,receivingRow.append(rowToExtract)); + } + } catch (Exception ignored) {} + } + + return join( + newlines(), + generatedString.get(0).color(color), + generatedString.get(1).color(color), + generatedString.get(2).color(color), + generatedString.get(3).color(color), + generatedString.get(4).color(color), + generatedString.get(5).color(color) + ); + } + + protected Map map() { + Map output = new HashMap<>(); + output.put('A',this.A()); + output.put('B',this.B()); + output.put('C',this.C()); + output.put('D',this.D()); + output.put('E',this.E()); + output.put('F',this.F()); + output.put('G',this.G()); + output.put('H',this.H()); + output.put('I',this.I()); + output.put('J',this.J()); + output.put('K',this.K()); + output.put('L',this.L()); + output.put('M',this.M()); + output.put('N',this.N()); + output.put('O',this.O()); + output.put('P',this.P()); + output.put('Q',this.Q()); + output.put('R',this.R()); + output.put('S',this.S()); + output.put('T',this.T()); + output.put('U',this.U()); + output.put('V',this.V()); + output.put('W',this.W()); + output.put('X',this.X()); + output.put('Y',this.Y()); + output.put('Z',this.Z()); + output.put(' ',this.WHITESPACE()); + output.put('.',this.PERIOD()); + output.put('-',this.DASH()); + output.put('!',this.EXCLAMATION()); + output.put('?',this.QUESTION()); + output.put('_',this.UNDERSCORE()); + return output; + }; +} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/config/IConfig.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/IConfig.java similarity index 94% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/config/IConfig.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/IConfig.java index 3252acd7c..60504e5ff 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/config/IConfig.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/IConfig.java @@ -1,15 +1,15 @@ -package group.aelysium.rustyconnector.toolkit.common.config; +package group.aelysium.rustyconnector.toolkit.common.lang; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; -public interface IConfig { +public interface IConfig { /** * Returns the compiled settings built by this config. */ - Object settings(); + Settings settings(); static InputStream getResource(String path) { return IConfig.class.getClassLoader().getResourceAsStream(path); diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/ILangService.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/ILangService.java deleted file mode 100644 index 1d06d80f8..000000000 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/ILangService.java +++ /dev/null @@ -1,15 +0,0 @@ -package group.aelysium.rustyconnector.toolkit.common.lang; - -import group.aelysium.rustyconnector.toolkit.common.serviceable.interfaces.Service; - -import java.io.File; - -public interface ILangService extends Service { - String code(); - - boolean isInline(); - - TLanguageResolver resolver(); - - File get(LangFileMappings.Mapping fileName); -} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/ILanguageResolver.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/ILanguageResolver.java deleted file mode 100644 index 17ef8e32a..000000000 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/ILanguageResolver.java +++ /dev/null @@ -1,19 +0,0 @@ -package group.aelysium.rustyconnector.toolkit.common.lang; - -import group.aelysium.rustyconnector.toolkit.common.serviceable.interfaces.Service; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; - -public interface ILanguageResolver extends Service { - String getRaw(String key); - - String getRaw(String key, TagResolver... resolvers); - - Component get(String key); - - Component get(String key, TagResolver... resolvers); - - Component getArray(String key); - - Component getArray(String key, TagResolver... resolvers); -} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/Lang.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/Lang.java new file mode 100644 index 000000000..255c10952 --- /dev/null +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/Lang.java @@ -0,0 +1,251 @@ +package group.aelysium.rustyconnector.toolkit.common.lang; + +import group.aelysium.rustyconnector.toolkit.common.cache.CacheableMessage; +import group.aelysium.rustyconnector.toolkit.common.message_cache.ICacheableMessage; +import group.aelysium.rustyconnector.toolkit.proxy.util.Version; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.JoinConfiguration; +import net.kyori.adventure.text.format.TextColor; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +import static net.kyori.adventure.text.Component.*; +import static net.kyori.adventure.text.format.NamedTextColor.*; +import static net.kyori.adventure.text.format.NamedTextColor.AQUA; + +public class Lang { + protected final ASCIIAlphabet asciiAlphabet; + + public Lang(ASCIIAlphabet asciiAlphabet) { + this.asciiAlphabet = asciiAlphabet; + } + + public final static String attachedWordmark = "RustyConnector:"; + /* + * AQUA - For when data is successfully returned or when we send usage info + * RED - For when an error has occurred. + * ORANGE/YELLOW - For emphasis or highlighting. + */ + public final static JoinConfiguration newlines() { + return JoinConfiguration.separator(newline()); + } + + public String borderPlain() { + return "█████████████████████████████████████████████████████████████████████████████████████████████████"; + } + public Component border() { + return text(borderPlain()); + } + + public String unknown_command() { + return "Unknown command. Type \"/help\" for help."; + } + public String no_permission() { + return "You do not have permission to do this."; + } + public String internal_error() { + return "There was an internal error while trying to complete your request."; + } + public final Component RUSTY_CONNECTOR(Version version) {// font: ANSI Shadow + Component versionComponent = space(); + + if(version != null && !version.equals("")) + versionComponent = versionComponent.append(text("Version "+version, GREEN)); + + return boxed( + join( + newlines(), + text(" /███████ /██", AQUA), + text("| ██__ ██ | ██", AQUA), + text("| ██ \\ ██ /██ /██ /███████ /██████ /██ /██", AQUA), + text("| ███████/| ██ | ██ /██_____/|_ ██_/ | ██ | ██", AQUA), + text("| ██__ ██| ██ | ██| ██████ | ██ | ██ | ██", AQUA), + text("| ██ \\ ██| ██ | ██ \\____ ██ | ██ /██| ██ | ██", AQUA), + text("| ██ | ██| ██████/ /███████/ | ████/| ███████", AQUA), + text("|__/ |__/ \\______/ |_______/ \\___/ \\____ ██", AQUA), + text(" /██ | ██ ", AQUA).append(versionComponent), + text(" | ██████/", AQUA), + text(" /██████ \\______/ /██", AQUA), + text(" /██__ ██ | ██", AQUA), + text("| ██ \\__/ /██████ /███████ /███████ /██████ /███████ /██████ /██████ /██████", AQUA), + text("| ██ /██__ ██| ██__ ██| ██__ ██ /██__ ██ /██_____/|_ ██_/ /██__ ██ /██__ ██", AQUA), + text("| ██ | ██ \\ ██| ██ \\ ██| ██ \\ ██| ████████| ██ | ██ | ██ \\ ██| ██ \\__/", AQUA), + text("| ██ ██| ██ | ██| ██ | ██| ██ | ██| ██_____/| ██ | ██ /██| ██ | ██| ██", AQUA), + text("| ██████/| ██████/| ██ | ██| ██ | ██| ███████| ███████ | ████/| ██████/| ██", AQUA), + text("\\______/ \\______/ |__/ |__/|__/ |__/ \\_______/ \\_______/ \\___/ \\______/ |__/", AQUA), + space(), + space(), + text("Developed by Aelysium | Juice"), + text("Use: `/rc` to get started", YELLOW) + ) + ); + }; + + public Component boxed(Component component, TextColor borderColor) { + return join( + newlines(), + space(), + border().color(borderColor), + space(), + component, + space(), + border().color(borderColor) + ); + } + public Component boxed(Component component) { + return boxed(component, DARK_GRAY); + } + + + public Component headerBox(@NotNull String header, @NotNull Component subheader, @NotNull Component content) { + return boxed( + join( + newlines(), + this.asciiAlphabet.generate(header, AQUA), + space(), + subheader, + space(), + border(), + space(), + content + ) + ); + } + public Component headerBox(@NotNull String header, @NotNull Component content) { + return boxed( + join( + newlines(), + this.asciiAlphabet.generate(header, AQUA), + space(), + border(), + space(), + content + ) + ); + } + + public Component usageBox(Component content) { + return headerBox( + "Usage", + join( + newlines(), + text("Blue commands will return information or data to you! They will not cause changes to be made.", GRAY), + text("Orange commands will make the plugin do something. Make sure you know what these commands do before using them", GRAY) + ), + content + ); + } + + + + + + + public Component messageUsage() { + return usageBox( + join( + newlines(), + text("/rc message get ", AQUA), + text("Pulls a message out of the message cache. If a message is to old it might not be available anymore!", DARK_GRAY), + space(), + text("/rc message list ", AQUA), + text("Lists all currently cached messages! As new messages get cached, older ones will be pushed out of the cache.", DARK_GRAY) + ) + ); + } + + public Component messageGetUsage() { + return usageBox( + join( + newlines(), + text("/rc message get ",AQUA), + text("Pulls a message out of the message cache. If a message is to old it might not be available anymore!", DARK_GRAY) + ) + ); + } + + + public Component message(ICacheableMessage message) { + return headerBox( + "Message", + join( + newlines(), + text("Status: " + message.getSentence().name(), message.getSentence().color()), + text("Reason: " + message.getSentenceReason(), message.getSentence().color()), + space(), + text("ID: ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), + text("Timestamp: ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), + text("Contents: ", message.getSentence().color()).append(text(message.getContents(), GRAY)) + ) + ); + } + + public Component messagePage(List messages, int pageNumber, int maxPages) { + Component output = text(""); + for (CacheableMessage message : messages) { + if(!(message.getSentenceReason() == null)) + output = output.append(join( + newlines(), + border(), + space(), + text("Status: " + message.getSentence().name(), message.getSentence().color()), + text("Reason: " + message.getSentenceReason(), message.getSentence().color()), + space(), + text("ID: ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), + text("Timestamp: ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), + text("Contents: ", message.getSentence().color()).append(text(message.getContents(), GRAY)), + space() + )); + else + output = output.append(join( + newlines(), + border(), + space(), + text("Status: " + message.getSentence().name(), message.getSentence().color()), + space(), + text("ID: ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), + text("Timestamp: ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), + text("Contents: ", message.getSentence().color()).append(text(message.getContents(), GRAY)), + space() + )); + } + + Component pageNumbers = text("[ ",DARK_GRAY); + for (int i = 1; i <= maxPages; i++) { + if(i == pageNumber) + pageNumbers = pageNumbers.append(text(i+" ",GOLD)); + else + pageNumbers = pageNumbers.append(text(i+" ",GRAY)); + } + pageNumbers = pageNumbers.append(text("]",DARK_GRAY)); + + return output.append( + boxed( + join( + newlines(), + text("Pages:"), + pageNumbers + ) + ) + ); + }; + + public Component sendUsage() { + return usageBox( + join( + newlines(), + text("/rc send ", GOLD), + text("Sends a player from one family to another!", DARK_GRAY), + space(), + text("/rc send server ", GOLD), + text("Forces a player to connect to a specific server on the proxy. This bypasses player caps and family whitelists.", DARK_GRAY), + text("If you have multiple servers with the same name, this feature may send players to a server other than the one you intended.", DARK_GRAY) + ) + ); + } +} + + + + diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/LangFileMappings.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/LangFileMappings.java deleted file mode 100644 index 51c62c16f..000000000 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/lang/LangFileMappings.java +++ /dev/null @@ -1,84 +0,0 @@ -package group.aelysium.rustyconnector.toolkit.common.lang; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -public class LangFileMappings { - public static Mapping LANGUAGE = new LangFileMappings.Mapping("language.yml", "language.yml"); - public static Mapping MCLOADER_CONFIG_TEMPLATE = new LangFileMappings.Mapping("mcloader_config_template", "configs/mcloader/config.yml"); - public static Mapping MCLOADER_CONNECTORS_TEMPLATE = new LangFileMappings.Mapping("mcloader_connectors_template", "configs/mcloader/connectors.yml"); - public static Mapping PROXY_CONFIG_TEMPLATE = new LangFileMappings.Mapping("proxy_config_template", "configs/proxy/config.yml"); - public static Mapping PROXY_CONNECTORS_TEMPLATE = new LangFileMappings.Mapping("proxy_connectors_template", "configs/proxy/connectors.yml"); - public static Mapping PROXY_FAMILIES_TEMPLATE = new LangFileMappings.Mapping("proxy_families_template", "configs/proxy/families.yml"); - - public static Mapping PROXY_MAGIC_CONFIG_TEMPLATE = new LangFileMappings.Mapping("proxy_magic_config_template", "configs/proxy/magic_configs/magic_config.yml"); - - - public static Mapping PROXY_DATA_TRANSIT_TEMPLATE = new LangFileMappings.Mapping("proxy_data_transit_template", "configs/proxy/extras/data_transit.yml"); - public static Mapping PROXY_DYNAMIC_TELEPORT_TEMPLATE = new LangFileMappings.Mapping("proxy_dynamic_teleport_template", "configs/proxy/extras/dynamic_teleport.yml"); - public static Mapping PROXY_FRIENDS_TEMPLATE = new LangFileMappings.Mapping("proxy_friends_template", "configs/proxy/extras/friends.yml"); - public static Mapping PROXY_LOGGER_TEMPLATE = new LangFileMappings.Mapping("proxy_logger_template", "configs/proxy/extras/logger.yml"); - public static Mapping PROXY_PARTY_TEMPLATE = new LangFileMappings.Mapping("proxy_party_template", "configs/proxy/extras/party.yml"); - public static Mapping PROXY_WEBHOOKS_TEMPLATE = new LangFileMappings.Mapping("proxy_webhooks_template", "configs/proxy/extras/webhooks.yml"); - public static Mapping PROXY_WHITELIST_TEMPLATE = new LangFileMappings.Mapping("proxy_whitelist_template", "configs/proxy/whitelists/whitelist.yml"); - - public static Mapping PROXY_SCALAR_FAMILY_TEMPLATE = new LangFileMappings.Mapping("proxy_scalar_family_template", "configs/proxy/families/family.scalar.yml"); - public static Mapping PROXY_STATIC_FAMILY_TEMPLATE = new LangFileMappings.Mapping("proxy_static_family_template", "configs/proxy/families/family.static.yml"); - public static Mapping PROXY_RANKED_FAMILY_TEMPLATE = new LangFileMappings.Mapping("proxy_ranked_family_template", "configs/proxy/families/family.ranked.yml"); - public static Mapping PROXY_LOAD_BALANCER_TEMPLATE = new LangFileMappings.Mapping("proxy_load_balancer_template", "configs/proxy/load_balancers/load_balancer.yml"); - public static Mapping PROXY_MATCHMAKER_TEMPLATE = new LangFileMappings.Mapping("proxy_matchmaker_template", "configs/proxy/matchmakers/matchmaker.yml"); - - public static List toList() { - List list = new ArrayList<>(); - list.add(LANGUAGE); - list.add(MCLOADER_CONFIG_TEMPLATE); - list.add(MCLOADER_CONNECTORS_TEMPLATE); - list.add(PROXY_CONFIG_TEMPLATE); - list.add(PROXY_CONNECTORS_TEMPLATE); - list.add(PROXY_FAMILIES_TEMPLATE); - - list.add(PROXY_DATA_TRANSIT_TEMPLATE); - list.add(PROXY_DYNAMIC_TELEPORT_TEMPLATE); - list.add(PROXY_FRIENDS_TEMPLATE); - list.add(PROXY_LOGGER_TEMPLATE); - list.add(PROXY_PARTY_TEMPLATE); - list.add(PROXY_WEBHOOKS_TEMPLATE); - - list.add(PROXY_WHITELIST_TEMPLATE); - - list.add(PROXY_LOAD_BALANCER_TEMPLATE); - - list.add(PROXY_MATCHMAKER_TEMPLATE); - - list.add(PROXY_SCALAR_FAMILY_TEMPLATE); - list.add(PROXY_STATIC_FAMILY_TEMPLATE); - list.add(PROXY_RANKED_FAMILY_TEMPLATE); - - return list; - } - - public static Mapping mapping(String name) { - return toList().stream().filter(entry -> Objects.equals(entry.name(), name)).findFirst().orElseThrow(NullPointerException::new); - } - - public record Mapping (String name, String path) { - @Override - public String toString() { - return String.valueOf(name); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - Mapping mapping = (Mapping) o; - return Objects.equals(name, mapping.name); - } - - @Override - public int hashCode() { - return Objects.hash(name); - } - } -} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/magic_link/packet/VelocityPacketBuilder.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/magic_link/packet/VelocityPacketBuilder.java index 91504af3a..322241bf7 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/magic_link/packet/VelocityPacketBuilder.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/common/magic_link/packet/VelocityPacketBuilder.java @@ -1,6 +1,6 @@ package group.aelysium.rustyconnector.toolkit.common.magic_link.packet; -import group.aelysium.rustyconnector.toolkit.velocity.central.ICoreServiceHandler; +import group.aelysium.rustyconnector.toolkit.proxy.central.ICoreServiceHandler; public class VelocityPacketBuilder implements Service { private final VelocityFlame flame; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/IMCLoaderFlame.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/IMCLoaderFlame.java index 16e373ae4..576e7c2bf 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/IMCLoaderFlame.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/IMCLoaderFlame.java @@ -3,7 +3,8 @@ import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.IEventManager; import group.aelysium.rustyconnector.toolkit.common.magic_link.IMagicLink; -import group.aelysium.rustyconnector.toolkit.velocity.util.Version; +import group.aelysium.rustyconnector.toolkit.mc_loader.lang.MCLoaderLangLibrary; +import group.aelysium.rustyconnector.toolkit.proxy.util.Version; import java.net.InetSocketAddress; import java.util.UUID; @@ -66,6 +67,7 @@ public interface IMCLoaderFlame extends Particle { Flux MagicLink(); MCLoaderAdapter Adapter(); + Flux Lang(); IEventManager EventManager(); abstract class Tinder extends Particle.Tinder {} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/lang/MCLoaderLang.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/lang/MCLoaderLang.java new file mode 100644 index 000000000..0c2757447 --- /dev/null +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/lang/MCLoaderLang.java @@ -0,0 +1,35 @@ +package group.aelysium.rustyconnector.toolkit.mc_loader.lang; + +import group.aelysium.rustyconnector.toolkit.common.lang.ASCIIAlphabet; +import group.aelysium.rustyconnector.toolkit.common.lang.Lang; +import net.kyori.adventure.text.Component; + +import static net.kyori.adventure.text.Component.*; +import static net.kyori.adventure.text.format.NamedTextColor.*; + +public class MCLoaderLang extends Lang { + + public MCLoaderLang(ASCIIAlphabet asciiAlphabet) { + super(asciiAlphabet); + } + + public Component magicLink() { + return join( + newlines(), + space(), + text(" /(¯`·._.·´¯`·._.·´¯`·._.·´¯`·._.·´¯)\\"), + text(" --<||( MAGIC LINK -- CONNECTED )||>--"), + text(" \\(_.·´¯`·._.·´¯`·._.·´¯`·._.·´¯`·._)/") + ).color(DARK_PURPLE); + } + + public Component paperFolia(boolean isFolia) { + if(isFolia) return text("RustyConnector-Folia"); + return text("RustyConnector-Paper"); + }; + + public Component paperFoliaLowercase(boolean isFolia) { + if(isFolia) return text("rustyconnector-folia"); + return text("rustyconnector-paper"); + }; +} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/lang/MCLoaderLangLibrary.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/lang/MCLoaderLangLibrary.java new file mode 100644 index 000000000..b16d4bece --- /dev/null +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/mc_loader/lang/MCLoaderLangLibrary.java @@ -0,0 +1,58 @@ +package group.aelysium.rustyconnector.toolkit.mc_loader.lang; + +import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.ASCIIAlphabet; +import group.aelysium.rustyconnector.toolkit.common.lang.Lang; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; +import org.jetbrains.annotations.NotNull; + +public class MCLoaderLangLibrary implements Particle { + private final MCLoaderLang lang; + private final ASCIIAlphabet asciiAlphabet; + private final IConfig git; + private final IConfig config; + + protected MCLoaderLangLibrary( + @NotNull MCLoaderLang lang, + @NotNull ASCIIAlphabet asciiAlphabet, + @NotNull IConfig git, + @NotNull IConfig config + ) { + this.lang = lang; + this.asciiAlphabet = asciiAlphabet; + this.git = git; + this.config = config; + } + + @Override + public void close() throws Exception { + + } + + public static class Tinder extends Particle.Tinder { + private final Settings settings; + + public Tinder(@NotNull Settings settings) { + this.settings = settings; + } + + @Override + public @NotNull MCLoaderLangLibrary ignite() throws Exception { + return new MCLoaderLangLibrary( + settings.lang(), + settings.asciiAlphabet(), + settings.git(), + settings.config() + ); + } + } + + public record Settings( + @NotNull MCLoaderLang lang, + @NotNull ASCIIAlphabet asciiAlphabet, + @NotNull IConfig git, + @NotNull IConfig config + ) {} +} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/IProxyFlame.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/IProxyFlame.java similarity index 73% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/IProxyFlame.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/IProxyFlame.java index d6d5c89cf..ed0a12d4f 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/IProxyFlame.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/IProxyFlame.java @@ -1,12 +1,13 @@ -package group.aelysium.rustyconnector.toolkit.velocity; +package group.aelysium.rustyconnector.toolkit.proxy; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.IEventManager; import group.aelysium.rustyconnector.toolkit.common.magic_link.IMagicLink; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamilies; -import group.aelysium.rustyconnector.toolkit.velocity.storage.ILocalStorage; -import group.aelysium.rustyconnector.toolkit.velocity.storage.IRemoteStorage; -import group.aelysium.rustyconnector.toolkit.velocity.util.Version; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamilies; +import group.aelysium.rustyconnector.toolkit.proxy.lang.ProxyLangLibrary; +import group.aelysium.rustyconnector.toolkit.proxy.storage.ILocalStorage; +import group.aelysium.rustyconnector.toolkit.proxy.storage.IRemoteStorage; +import group.aelysium.rustyconnector.toolkit.proxy.util.Version; import java.io.InputStream; import java.util.UUID; @@ -25,6 +26,7 @@ public interface IProxyFlame extends Particle { */ Version version(); ProxyAdapter Adapter(); + Flux Lang(); Flux Families(); Flux MagicLink(); Flux RemoteStorage(); diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/ProxyAdapter.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/ProxyAdapter.java similarity index 92% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/ProxyAdapter.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/ProxyAdapter.java index 79829329f..c972577df 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/ProxyAdapter.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/ProxyAdapter.java @@ -1,15 +1,15 @@ -package group.aelysium.rustyconnector.toolkit.velocity; +package group.aelysium.rustyconnector.toolkit.proxy; import group.aelysium.rustyconnector.toolkit.RC; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.connection.ConnectionResult; -import group.aelysium.rustyconnector.toolkit.velocity.connection.IPlayerConnectable; -import group.aelysium.rustyconnector.toolkit.velocity.events.player.*; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family.IScalarFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.whitelist.IWhitelist; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.connection.ConnectionResult; +import group.aelysium.rustyconnector.toolkit.proxy.connection.IPlayerConnectable; +import group.aelysium.rustyconnector.toolkit.proxy.events.player.*; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.scalar_family.IScalarFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -47,8 +47,6 @@ public abstract class ProxyAdapter { */ public abstract @NotNull String extractHostname(@NotNull Object player); - public abstract void handleInitialCommit(@NotNull Object player, @NotNull IMCLoader mcloader); - /** * Registers the MCLoader to the Proxy. * RustyConnector will already handle the important registration code. @@ -134,9 +132,8 @@ public final void onMCLoaderSwitch( } /** - * Handle's the players intial connection to the proxy, before they connect to a server. + * Handle's the players initial connection to the proxy, before they connect to a server. * @param player The player. - * @return * @throws RuntimeException If there's a fatal error at any point. */ public final @NotNull IPlayerConnectable.Request onInitialConnect(@NotNull IPlayer player) throws RuntimeException { diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/connection/ConnectionResult.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/connection/ConnectionResult.java similarity index 85% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/connection/ConnectionResult.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/connection/ConnectionResult.java index eada70e65..d1527d15a 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/connection/ConnectionResult.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/connection/ConnectionResult.java @@ -1,6 +1,6 @@ -package group.aelysium.rustyconnector.toolkit.velocity.connection; +package group.aelysium.rustyconnector.toolkit.proxy.connection; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import net.kyori.adventure.text.Component; import java.util.Optional; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/connection/IPlayerConnectable.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/connection/IPlayerConnectable.java similarity index 87% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/connection/IPlayerConnectable.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/connection/IPlayerConnectable.java index 77b0bb5a9..6f8e8fa7b 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/connection/IPlayerConnectable.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/connection/IPlayerConnectable.java @@ -1,7 +1,7 @@ -package group.aelysium.rustyconnector.toolkit.velocity.connection; +package group.aelysium.rustyconnector.toolkit.proxy.connection; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/family/FamilyRebalanceEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/family/FamilyRebalanceEvent.java similarity index 78% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/family/FamilyRebalanceEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/family/FamilyRebalanceEvent.java index f6eaefea9..ba983745d 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/family/FamilyRebalanceEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/family/FamilyRebalanceEvent.java @@ -1,8 +1,8 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.family; +package group.aelysium.rustyconnector.toolkit.proxy.events.family; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; /** * Represents a family rebalancing its MCLoaders via it's load balancer. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/family/MCLoaderLockedEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/family/MCLoaderLockedEvent.java similarity index 74% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/family/MCLoaderLockedEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/family/MCLoaderLockedEvent.java index 43e306e33..303d3867b 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/family/MCLoaderLockedEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/family/MCLoaderLockedEvent.java @@ -1,9 +1,9 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.family; +package group.aelysium.rustyconnector.toolkit.proxy.events.family; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; /** * Represents an MCLoader being locked on this family. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/family/MCLoaderUnlockedEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/family/MCLoaderUnlockedEvent.java similarity index 74% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/family/MCLoaderUnlockedEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/family/MCLoaderUnlockedEvent.java index 8300c7299..8f58700ed 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/family/MCLoaderUnlockedEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/family/MCLoaderUnlockedEvent.java @@ -1,9 +1,9 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.family; +package group.aelysium.rustyconnector.toolkit.proxy.events.family; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; /** * Represents an MCLoader being unlocked on this family. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/mc_loader/MCLoaderRegisterEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/mc_loader/MCLoaderRegisterEvent.java similarity index 74% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/mc_loader/MCLoaderRegisterEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/mc_loader/MCLoaderRegisterEvent.java index 21f9830ac..2b6f3da80 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/mc_loader/MCLoaderRegisterEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/mc_loader/MCLoaderRegisterEvent.java @@ -1,9 +1,9 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.mc_loader; +package group.aelysium.rustyconnector.toolkit.proxy.events.mc_loader; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; /** * Represents an MCLoader successfully registering to the Proxy. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/mc_loader/MCLoaderUnregisterEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/mc_loader/MCLoaderUnregisterEvent.java similarity index 70% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/mc_loader/MCLoaderUnregisterEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/mc_loader/MCLoaderUnregisterEvent.java index 4d61b800c..fe97b4c29 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/mc_loader/MCLoaderUnregisterEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/mc_loader/MCLoaderUnregisterEvent.java @@ -1,8 +1,8 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.mc_loader; +package group.aelysium.rustyconnector.toolkit.proxy.events.mc_loader; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; /** * Represents an MCLoader unregistering from the Proxy. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyInternalSwitchEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyInternalSwitchEvent.java similarity index 74% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyInternalSwitchEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyInternalSwitchEvent.java index 6f00aca08..d717c1cdf 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyInternalSwitchEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyInternalSwitchEvent.java @@ -1,11 +1,11 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.Family; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.Family; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; /** * Represents a player switching from one MCLoader in a family to another MCLoader in that same family. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyLeaveEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyLeaveEvent.java similarity index 82% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyLeaveEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyLeaveEvent.java index d1ebde514..4f9d45af3 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyLeaveEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyLeaveEvent.java @@ -1,10 +1,10 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import org.jetbrains.annotations.NotNull; /** diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyPostJoinEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyPostJoinEvent.java similarity index 73% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyPostJoinEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyPostJoinEvent.java index 4f5d8c225..9a79bef38 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyPostJoinEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyPostJoinEvent.java @@ -1,10 +1,10 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; /** * Represents a player successfully connecting to a family. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyPreJoinEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyPreJoinEvent.java similarity index 71% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyPreJoinEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyPreJoinEvent.java index 07c701fec..6872e57ff 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilyPreJoinEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilyPreJoinEvent.java @@ -1,9 +1,9 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.ranked_family.IRankedFamily; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.ranked_family.IRankedFamily; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; /** * Represents a player attempting to connect to a family. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilySwitchEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilySwitchEvent.java similarity index 82% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilySwitchEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilySwitchEvent.java index a2c80fab3..ec27999cb 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/FamilySwitchEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/FamilySwitchEvent.java @@ -1,9 +1,9 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; /** diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/MCLoaderJoinEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/MCLoaderJoinEvent.java similarity index 72% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/MCLoaderJoinEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/MCLoaderJoinEvent.java index c144fb319..104799067 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/MCLoaderJoinEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/MCLoaderJoinEvent.java @@ -1,8 +1,8 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; /** * Represents a player joining an MCLoader. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/MCLoaderLeaveEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/MCLoaderLeaveEvent.java similarity index 82% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/MCLoaderLeaveEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/MCLoaderLeaveEvent.java index 0c45b97c5..a29215c27 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/MCLoaderLeaveEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/MCLoaderLeaveEvent.java @@ -1,8 +1,8 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import org.jetbrains.annotations.NotNull; /** diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/MCLoaderSwitchEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/MCLoaderSwitchEvent.java similarity index 78% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/MCLoaderSwitchEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/MCLoaderSwitchEvent.java index 71949cc81..9e116bd17 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/MCLoaderSwitchEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/MCLoaderSwitchEvent.java @@ -1,8 +1,8 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; /** * Represents a player switching from one mcloader to another. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/NetworkJoinEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/NetworkJoinEvent.java similarity index 74% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/NetworkJoinEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/NetworkJoinEvent.java index 104f59d13..3d227e8c8 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/NetworkJoinEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/NetworkJoinEvent.java @@ -1,10 +1,10 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; /** * Represents a player joining the network. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/NetworkLeaveEvent.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/NetworkLeaveEvent.java similarity index 74% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/NetworkLeaveEvent.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/NetworkLeaveEvent.java index c9ba76d19..b4577f480 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/events/player/NetworkLeaveEvent.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/events/player/NetworkLeaveEvent.java @@ -1,7 +1,7 @@ -package group.aelysium.rustyconnector.toolkit.velocity.events.player; +package group.aelysium.rustyconnector.toolkit.proxy.events.player; import group.aelysium.rustyconnector.toolkit.common.events.Event; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; /** * Represents a player joining the network. diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/IFamilies.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/IFamilies.java similarity index 90% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/IFamilies.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/IFamilies.java index 9bc4cd83d..44c00c257 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/IFamilies.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/IFamilies.java @@ -1,7 +1,7 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family; +package group.aelysium.rustyconnector.toolkit.proxy.family; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family.IRootFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.scalar_family.IRootFamily; import org.jetbrains.annotations.NotNull; import java.util.List; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/IFamily.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/IFamily.java similarity index 69% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/IFamily.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/IFamily.java index 70567ec2e..36eb973a5 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/IFamily.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/IFamily.java @@ -1,7 +1,8 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family; +package group.aelysium.rustyconnector.toolkit.proxy.family; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.connection.IPlayerConnectable; +import group.aelysium.rustyconnector.toolkit.proxy.connection.IPlayerConnectable; +import net.kyori.adventure.text.Component; import java.util.Optional; @@ -23,4 +24,10 @@ public interface IFamily extends IPlayerConnectable, Particle { * @return {@link IFamilyConnector} */ IFamilyConnector connector(); + + /** + * Returns the details of this family in a component which can be + * printed to the console or sent to a player. + */ + Component details(); } diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/IFamilyConnector.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/IFamilyConnector.java similarity index 62% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/IFamilyConnector.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/IFamilyConnector.java index 22768e149..7e000e4f9 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/IFamilyConnector.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/IFamilyConnector.java @@ -1,16 +1,16 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family; +package group.aelysium.rustyconnector.toolkit.proxy.family; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.connection.IPlayerConnectable; -import group.aelysium.rustyconnector.toolkit.velocity.family.whitelist.IWhitelist; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.connection.IPlayerConnectable; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Optional; public interface IFamilyConnector extends IPlayerConnectable, AutoCloseable { - @NotNull IMCLoader register(IMCLoader.Unregistered mcloader); + @NotNull IMCLoader register(@NotNull IMCLoader mcloader); void unregister(IMCLoader mcloader); void lock(IMCLoader mcloader); void unlock(IMCLoader mcloader); diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/UnavailableProtocol.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/UnavailableProtocol.java similarity index 64% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/UnavailableProtocol.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/UnavailableProtocol.java index fcd182bc1..dc0d02232 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/UnavailableProtocol.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/UnavailableProtocol.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family; +package group.aelysium.rustyconnector.toolkit.proxy.family; public enum UnavailableProtocol { CANCEL_CONNECTION_ATTEMPT, diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/AlgorithmType.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/AlgorithmType.java similarity index 86% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/AlgorithmType.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/AlgorithmType.java index 0eabbd32a..42119cb10 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/AlgorithmType.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/AlgorithmType.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing; +package group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing; public enum AlgorithmType { /** diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/ILoadBalancer.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/ILoadBalancer.java similarity index 94% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/ILoadBalancer.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/ILoadBalancer.java index 74df2676d..d3f54fc83 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/ILoadBalancer.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/ILoadBalancer.java @@ -1,10 +1,9 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing; +package group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Optional; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/ILoadBalancingService.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/ILoadBalancingService.java similarity index 64% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/ILoadBalancingService.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/ILoadBalancingService.java index 062dd4598..a78b61de1 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/ILoadBalancingService.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/ILoadBalancingService.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing; +package group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing; import group.aelysium.rustyconnector.toolkit.common.serviceable.interfaces.Service; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/ISortable.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/ISortable.java similarity index 76% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/ISortable.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/ISortable.java index db8858a7f..192498bd7 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/load_balancing/ISortable.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/load_balancing/ISortable.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing; +package group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing; public interface ISortable { /** diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/mcloader/IMCLoader.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/mcloader/IMCLoader.java similarity index 85% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/mcloader/IMCLoader.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/mcloader/IMCLoader.java index ea2661ab3..59ebf681a 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/mcloader/IMCLoader.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/mcloader/IMCLoader.java @@ -1,17 +1,15 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.mcloader; +package group.aelysium.rustyconnector.toolkit.proxy.family.mcloader; -import com.sun.jdi.request.DuplicateRequestException; +import group.aelysium.rustyconnector.toolkit.RC; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.common.magic_link.packet.IPacket; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ISortable; -import group.aelysium.rustyconnector.toolkit.velocity.connection.IPlayerConnectable; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ISortable; +import group.aelysium.rustyconnector.toolkit.proxy.connection.IPlayerConnectable; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.net.InetSocketAddress; -import java.security.InvalidAlgorithmParameterException; import java.util.Optional; import java.util.UUID; @@ -144,6 +142,12 @@ public interface IMCLoader extends ISortable, IPlayerConnectable { * If the server is already unlocked, or doesn't exist in the load balancer, nothing will happen. */ void unlock(); + + /** + * Unregisters the MCLoader from the proxy. + */ + void unregister(); + record Unregistered( @NotNull UUID uuid, @NotNull InetSocketAddress address, @@ -153,5 +157,16 @@ record Unregistered( int hardPlayerCap, int weight, int timeout - ) {} + ) { + /** + * Registers the MCLoader to the proxy. + * @param family The family to register into. + * @return A registered MCLoader. + */ + public @NotNull IMCLoader register(IFamily family) { + IMCLoader mcloader =; + RC.P.Adapter().registerMCLoader(); + family.connector().register(this); + } + } } diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/scalar_family/IRootFamily.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/scalar_family/IRootFamily.java similarity index 61% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/scalar_family/IRootFamily.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/scalar_family/IRootFamily.java index 9137ff36b..ced37f769 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/scalar_family/IRootFamily.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/scalar_family/IRootFamily.java @@ -1,7 +1,7 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family; +package group.aelysium.rustyconnector.toolkit.proxy.family.scalar_family; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; -import group.aelysium.rustyconnector.toolkit.velocity.family.whitelist.IWhitelist; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; import org.jetbrains.annotations.NotNull; public interface IRootFamily extends IScalarFamily { diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/scalar_family/IScalarFamily.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/scalar_family/IScalarFamily.java similarity index 82% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/scalar_family/IScalarFamily.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/scalar_family/IScalarFamily.java index d5cb44148..5c3b0ef14 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/scalar_family/IScalarFamily.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/scalar_family/IScalarFamily.java @@ -1,12 +1,12 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family; - -import group.aelysium.rustyconnector.toolkit.velocity.connection.IPlayerConnectable; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamilyConnector; -import group.aelysium.rustyconnector.toolkit.velocity.family.IFamily; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.ILoadBalancer; -import group.aelysium.rustyconnector.toolkit.velocity.family.whitelist.IWhitelist; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +package group.aelysium.rustyconnector.toolkit.proxy.family.scalar_family; + +import group.aelysium.rustyconnector.toolkit.proxy.connection.IPlayerConnectable; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamilyConnector; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -38,7 +38,7 @@ public Connector(@NotNull Flux loadBalancer, @Nullable Flux m.add(mcloader)); } @Override @@ -90,7 +90,7 @@ public Request connect(IPlayer player) { } catch (Exception ignore) {} try { - return this.loadBalancer.access().get(20, TimeUnit.SECONDS).connect(player); + return this.loadBalancer.access().get(20, TimeUnit.SECONDS).current().orElseThrow().connect(player); } catch (Exception ignore) { return IPlayerConnectable.failedRequest(player, Component.text("The server you're attempting to access isn't available! Try again later.")); } diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/whitelist/IWhitelist.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/whitelist/IWhitelist.java similarity index 59% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/whitelist/IWhitelist.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/whitelist/IWhitelist.java index ab9fd6704..77b7edf6a 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/whitelist/IWhitelist.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/whitelist/IWhitelist.java @@ -1,9 +1,9 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.whitelist; +package group.aelysium.rustyconnector.toolkit.proxy.family.whitelist; import group.aelysium.rustyconnector.toolkit.RustyConnector; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.IProxyFlame; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.IProxyFlame; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; import java.util.List; @@ -37,16 +37,4 @@ record Settings( boolean strict, boolean inverted ) {} - - - class Reference extends group.aelysium.rustyconnector.toolkit.velocity.util.Reference { - public Reference(String name) { - super(name); - } - - public TWhitelist get() { - IProxyFlame tinder = RustyConnector.Toolkit.proxy().orElseThrow(); - return (TWhitelist) tinder.services().whitelist().find(this.referencer).orElseThrow(); - } - } } diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/whitelist/IWhitelistPlayerFilter.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/whitelist/IWhitelistPlayerFilter.java similarity index 63% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/whitelist/IWhitelistPlayerFilter.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/whitelist/IWhitelistPlayerFilter.java index ff6d61d25..bbfad64e7 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/whitelist/IWhitelistPlayerFilter.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/whitelist/IWhitelistPlayerFilter.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.whitelist; +package group.aelysium.rustyconnector.toolkit.proxy.family.whitelist; import java.util.UUID; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/whitelist/IWhitelistService.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/whitelist/IWhitelistService.java similarity index 92% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/whitelist/IWhitelistService.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/whitelist/IWhitelistService.java index c2196a1c9..04cd79c90 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/family/whitelist/IWhitelistService.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/family/whitelist/IWhitelistService.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.family.whitelist; +package group.aelysium.rustyconnector.toolkit.proxy.family.whitelist; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; import group.aelysium.rustyconnector.toolkit.common.serviceable.interfaces.Service; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/lang/ProxyLang.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/lang/ProxyLang.java new file mode 100644 index 000000000..d98fad668 --- /dev/null +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/lang/ProxyLang.java @@ -0,0 +1,164 @@ +package group.aelysium.rustyconnector.toolkit.proxy.lang; + +import group.aelysium.rustyconnector.toolkit.common.lang.ASCIIAlphabet; +import group.aelysium.rustyconnector.toolkit.RC; +import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; +import group.aelysium.rustyconnector.toolkit.common.lang.Lang; +import group.aelysium.rustyconnector.toolkit.proxy.family.IFamily; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.scalar_family.IScalarFamily; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.JoinConfiguration; +import org.jetbrains.annotations.NotNull; + +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicReference; + +import static net.kyori.adventure.text.Component.*; +import static net.kyori.adventure.text.format.NamedTextColor.*; + +public class ProxyLang extends Lang { + public ProxyLang(ASCIIAlphabet asciiAlphabet) { + super(asciiAlphabet); + } + + public String no_player(String username) { + return "There is no online player with the username " + username; + } + public String already_connected() { + return "You're already connected to this server."; + } + + public Component usage() { + return usageBox( + join( + newlines(), + text("/rc family", AQUA), + text("View family related information.", DARK_GRAY), + space(), + text("/rc message", AQUA), + text("Access recently sent RustyConnector messages.", DARK_GRAY), + space(), + text("/rc reload", GOLD), + text("Reload entire plugin.", DARK_GRAY), + space(), + text("/rc send", AQUA), + text("Send players from families and servers to other families or servers.", DARK_GRAY) + ) + ); + } + + public String noFamily(@NotNull String familyName) { + return "There is no family with the name: " + familyName; + } + public String noServer(@NotNull String serverName) { + return "There is no server with the name: " + serverName; + } + public String sameFamily() { + return "You're already in that server."; + } + + public Component families() { + AtomicReference families = new AtomicReference<>(text("")); + + for (Particle.Flux family : RC.P.Families().dump()) + family.executeNow(f -> families.set(families.get().append(text("["+f.id()+"*] ").color(BLUE)))); + + return boxed( + join( + newlines(), + this.asciiAlphabet.generate("registered"), + space(), + this.asciiAlphabet.generate("families"), + space(), + border(), + space(), + families.get(), + text("*root family", GRAY), + space(), + border(), + space(), + text("/rc family ",DARK_AQUA), + text("See more details about a particular family.", GRAY) + ) + ); + }; + + public Component loadBalancer(ILoadBalancer loadBalancer) { + int locked = loadBalancer.size(true); + int unlocked = loadBalancer.size(false); + int total = locked + unlocked; + + double lockedPercentage = 0; + try { + lockedPercentage = (double) locked / total; + } catch (Exception ignore) {} + + int totalBlocks = 200; + double lockedBlocks = Math.floor(totalBlocks * lockedPercentage); + + StringBuilder lockedBlockSB = new StringBuilder(); + for (int i = 0; i < lockedBlocks; i++) + lockedBlockSB.append("█"); + StringBuilder unlockedBlockSB = new StringBuilder(); + for (int i = 0; i < totalBlocks - lockedBlocks; i++) + unlockedBlockSB.append("█"); + + Component blocks = join( + JoinConfiguration.noSeparators(), + text(lockedBlockSB.toString(), GRAY), + text(unlockedBlockSB.toString(), GREEN) + ); + + return blocks; + } + + public Component scalarFamily(IScalarFamily family) throws ExecutionException, InterruptedException, TimeoutException { + Component servers = text(""); + int i = 0; + + IScalarFamily.Connector connector = (IScalarFamily.Connector) family.connector(); + ILoadBalancer loadBalancer = connector.loadBalancer().access().get(5, TimeUnit.SECONDS); + + if(connector.mcloaders().isEmpty()) servers = text("There are no registered servers.", DARK_GRAY); + else if(loadBalancer.size(false) == 0) servers = text("All the MCLoaders in this family are locked.", DARK_GRAY); + + IFamily rootFamily = RC.P.Families().rootFamily().orElseThrow(); + String parentFamilyName = rootFamily.id(); + try { + parentFamilyName = family.parent().orElseThrow().orElseThrow().id(); + } catch (Exception ignore) {} + if(family.equals(rootFamily)) parentFamilyName = "none"; + + return headerBox(family.id(), + join( + newlines(), + text(" ---| Display Name: "+family.displayName()), + text(" ---| Parent Family: "+parentFamilyName), + text(" ---| Online Players: "+family.connector().players()), + text(""), + text(" ---| Servers:"), + text(" | - Total: "+family.connector().mcloaders().size()), + text(" | - Open: "), + text(" | - Locked: "), + space(), + border(), + space(), + text("Open Servers", AQUA), + space(), + text("/rc family sort", GOLD), + text("Resort all mcloaders in the family.", DARK_GRAY), + space(), + text("/rc family resetIndex", GOLD), + text("Reset player insertion point to first mcloader in the family.", DARK_GRAY), + space(), + text("/rc family locked", GOLD), + text("View mcloaders that are locked."), + space(), + loadBalancer(loadBalancer) + ) + ); + }; +} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/lang/ProxyLangLibrary.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/lang/ProxyLangLibrary.java new file mode 100644 index 000000000..c4022df34 --- /dev/null +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/lang/ProxyLangLibrary.java @@ -0,0 +1,85 @@ +package group.aelysium.rustyconnector.toolkit.proxy.lang; + +import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; +import group.aelysium.rustyconnector.toolkit.common.lang.ASCIIAlphabet; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.Lang; +import group.aelysium.rustyconnector.toolkit.mc_loader.lang.MCLoaderLangLibrary; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.ILoadBalancer; +import group.aelysium.rustyconnector.toolkit.proxy.family.whitelist.IWhitelist; +import org.jetbrains.annotations.NotNull; + +public class ProxyLangLibrary implements Particle { + private final ProxyLang lang; + private final ASCIIAlphabet asciiAlphabet; + private final IConfig git; + private final IConfig config; + private final IConfig family; + private final IConfig loadBalancer; + private final IConfig whitelist; + private final IConfig magicConfig; + private final IConfig magicLink; + + protected ProxyLangLibrary( + @NotNull ProxyLang lang, + @NotNull ASCIIAlphabet asciiAlphabet, + @NotNull IConfig git, + @NotNull IConfig config, + @NotNull IConfig family, + @NotNull IConfig loadBalancer, + @NotNull IConfig whitelist, + @NotNull IConfig magicConfig, + @NotNull IConfig magicLink + ) { + + this.lang = lang; + this.asciiAlphabet = asciiAlphabet; + this.git = git; + this.config = config; + this.family = family; + this.loadBalancer = loadBalancer; + this.whitelist = whitelist; + this.magicConfig = magicConfig; + this.magicLink = magicLink; + } + + @Override + public void close() throws Exception { + + } + + public static class Tinder extends Particle.Tinder { + private final Settings settings; + + public Tinder(@NotNull Settings settings) { + this.settings = settings; + } + + @Override + public @NotNull ProxyLangLibrary ignite() throws Exception { + return new ProxyLangLibrary( + settings.lang(), + settings.asciiAlphabet(), + settings.git(), + settings.config(), + settings.family(), + settings.loadBalancer(), + settings.whitelist(), + settings.magicConfig(), + settings.magicLink() + ); + } + } + + public record Settings( + @NotNull ProxyLang lang, + @NotNull ASCIIAlphabet asciiAlphabet, + @NotNull IConfig git, + @NotNull IConfig config, + @NotNull IConfig family, + @NotNull IConfig loadBalancer, + @NotNull IConfig whitelist, + @NotNull IConfig magicConfig, + @NotNull IConfig magicLink + ) {} +} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/player/IPlayer.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/player/IPlayer.java similarity index 86% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/player/IPlayer.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/player/IPlayer.java index 6e6009c20..3e937104a 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/player/IPlayer.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/player/IPlayer.java @@ -1,9 +1,8 @@ -package group.aelysium.rustyconnector.toolkit.velocity.player; +package group.aelysium.rustyconnector.toolkit.proxy.player; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import net.kyori.adventure.text.Component; -import java.util.Objects; import java.util.Optional; import java.util.UUID; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/storage/ILocalStorage.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/storage/ILocalStorage.java similarity index 78% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/storage/ILocalStorage.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/storage/ILocalStorage.java index d5d48b664..70a8bdfb3 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/storage/ILocalStorage.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/storage/ILocalStorage.java @@ -1,8 +1,8 @@ -package group.aelysium.rustyconnector.toolkit.velocity.storage; +package group.aelysium.rustyconnector.toolkit.proxy.storage; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import java.util.Optional; import java.util.UUID; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/storage/IRemoteStorage.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/storage/IRemoteStorage.java similarity index 89% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/storage/IRemoteStorage.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/storage/IRemoteStorage.java index d1c51fdd1..88291071b 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/storage/IRemoteStorage.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/storage/IRemoteStorage.java @@ -1,7 +1,7 @@ -package group.aelysium.rustyconnector.toolkit.velocity.storage; +package group.aelysium.rustyconnector.toolkit.proxy.storage; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; import java.util.Optional; import java.util.UUID; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/storage/IStorage.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/storage/IStorage.java similarity index 75% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/storage/IStorage.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/storage/IStorage.java index 98c66c371..c69ef90e6 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/storage/IStorage.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/storage/IStorage.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.storage; +package group.aelysium.rustyconnector.toolkit.proxy.storage; import group.aelysium.rustyconnector.toolkit.common.absolute_redundancy.Particle; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/AddressUtil.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/AddressUtil.java similarity index 95% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/AddressUtil.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/AddressUtil.java index 7acd4fd87..353bcfc06 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/AddressUtil.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/AddressUtil.java @@ -19,10 +19,8 @@ * https://github.com/PaperMC/Velocity/edit/dev/3.0.0/proxy/src/main/java/com/velocitypowered/proxy/util/AddressUtil.java */ -package group.aelysium.rustyconnector.toolkit.velocity.util; +package group.aelysium.rustyconnector.toolkit.proxy.util; -import com.google.common.base.Preconditions; -import com.google.common.net.InetAddresses; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.URI; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/ColorMapper.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/ColorMapper.java similarity index 95% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/ColorMapper.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/ColorMapper.java index e67eae622..a8b93bf6d 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/ColorMapper.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/ColorMapper.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.util; +package group.aelysium.rustyconnector.toolkit.proxy.util; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/DependencyInjector.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/DependencyInjector.java similarity index 96% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/DependencyInjector.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/DependencyInjector.java index 36cfc2acb..24297acc9 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/DependencyInjector.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/DependencyInjector.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.util; +package group.aelysium.rustyconnector.toolkit.proxy.util; public class DependencyInjector { public static DI1 inject(D1 dependency1) { diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/LiquidTimestamp.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/LiquidTimestamp.java similarity index 98% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/LiquidTimestamp.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/LiquidTimestamp.java index e12338db7..a007b692a 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/LiquidTimestamp.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/LiquidTimestamp.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.util; +package group.aelysium.rustyconnector.toolkit.proxy.util; import org.jetbrains.annotations.NotNull; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/Version.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/Version.java similarity index 97% rename from plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/Version.java rename to plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/Version.java index 47176ff1d..b6109a7e8 100644 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/Version.java +++ b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/proxy/util/Version.java @@ -1,4 +1,4 @@ -package group.aelysium.rustyconnector.toolkit.velocity.util; +package group.aelysium.rustyconnector.toolkit.proxy.util; import org.jetbrains.annotations.NotNull; diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/Entry.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/Entry.java deleted file mode 100644 index 59a40c40f..000000000 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/Entry.java +++ /dev/null @@ -1,29 +0,0 @@ -package group.aelysium.rustyconnector.toolkit.velocity.util; - -import java.util.Map; - -public class Entry implements Map.Entry { - private K key; - private V value; - - public Entry(K key, V value) { - this.key = key; - this.value = value; - } - - @Override - public K getKey() { - return this.key; - } - - @Override - public V getValue() { - return this.value; - } - - @Override - public V setValue(Object value) { - this.value = (V) value; - return this.value; - } -} diff --git a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/Reference.java b/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/Reference.java deleted file mode 100644 index 9d349347f..000000000 --- a/plugin/toolkit/src/main/java/group/aelysium/rustyconnector/toolkit/velocity/util/Reference.java +++ /dev/null @@ -1,32 +0,0 @@ -package group.aelysium.rustyconnector.toolkit.velocity.util; - -import java.util.NoSuchElementException; - -public abstract class Reference { - protected R referencer; - - public Reference(R referencer) { - this.referencer = referencer; - } - - /** - * Gets the owner referenced. - * If the owner could not be found, this will throw an exception. - * @return {@link T} - * @throws java.util.NoSuchElementException If the owner of this reference can't be found. - */ - public abstract TT get() throws NoSuchElementException; - - public R referencer() { - return this.referencer; - } - - @Override - public boolean equals(Object object) { - if (this == object) return true; - if (object == null || getClass() != object.getClass()) return false; - - Reference that = (Reference) object; - return this.referencer.equals(that.referencer()); - } -} diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/VelocityProxyAdapter.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/VelocityProxyAdapter.java index 6c1075ac1..5819cddbf 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/VelocityProxyAdapter.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/VelocityProxyAdapter.java @@ -7,11 +7,11 @@ import group.aelysium.rustyconnector.common.exception.NoOutputException; import group.aelysium.rustyconnector.proxy.family.mcloader.MCLoader; import group.aelysium.rustyconnector.proxy.players.Player; -import group.aelysium.rustyconnector.toolkit.velocity.ProxyAdapter; -import group.aelysium.rustyconnector.toolkit.velocity.connection.ConnectionResult; -import group.aelysium.rustyconnector.toolkit.velocity.connection.IPlayerConnectable; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.ProxyAdapter; +import group.aelysium.rustyconnector.toolkit.proxy.connection.ConnectionResult; +import group.aelysium.rustyconnector.toolkit.proxy.connection.IPlayerConnectable; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -46,19 +46,14 @@ public VelocityProxyAdapter(ProxyServer velocity) { return velocityPlayer.getVirtualHost().map(InetSocketAddress::getHostString).orElse("").toLowerCase(Locale.ROOT); } - @Override - public void handleInitialCommit(@NotNull Object player, @NotNull IMCLoader mcloader) { - - } - @Override public void registerMCLoader(@NotNull IMCLoader mcloader) { - this.velocity.registerServer(new ServerInfo(mcloader.uuid().toString(), mcloader.address())); + this.velocity.registerServer(new ServerInfo(mcloader.uuidOrDisplayName(), mcloader.address())); } @Override public void unregisterMCLoader(@NotNull IMCLoader mcloader) { - this.velocity.unregisterServer(new ServerInfo(mcloader.uuid().toString(), mcloader.address())); + this.velocity.unregisterServer(new ServerInfo(mcloader.uuidOrDisplayName(), mcloader.address())); } @Override diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/VelocityRustyConnector.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/VelocityRustyConnector.java index 415984b1a..1f8a0fc0d 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/VelocityRustyConnector.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/VelocityRustyConnector.java @@ -6,12 +6,11 @@ import com.velocitypowered.api.event.proxy.ProxyShutdownEvent; import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; -import group.aelysium.rustyconnector.common.lang.LangService; import group.aelysium.rustyconnector.common.lang.config.RootLanguageConfig; -import group.aelysium.rustyconnector.plugin.velocity.lang.ProxyLang; +import group.aelysium.rustyconnector.toolkit.proxy.lang.ProxyLang; import group.aelysium.rustyconnector.proxy.Flame; import group.aelysium.rustyconnector.toolkit.RustyConnector; -import group.aelysium.rustyconnector.toolkit.velocity.util.Version; +import group.aelysium.rustyconnector.toolkit.proxy.util.Version; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.JoinConfiguration; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/central/CommandRusty.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/central/CommandRusty.java index 4a9eea974..193018653 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/central/CommandRusty.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/central/CommandRusty.java @@ -16,15 +16,15 @@ import group.aelysium.rustyconnector.proxy.family.ranked_family.RankedFamily; import group.aelysium.rustyconnector.plugin.velocity.lib.players.Player; import group.aelysium.rustyconnector.plugin.velocity.lib.remote_storage.Storage; -import group.aelysium.rustyconnector.toolkit.velocity.connection.ConnectionResult; -import group.aelysium.rustyconnector.toolkit.velocity.connection.IPlayerConnectable; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.util.DependencyInjector; +import group.aelysium.rustyconnector.toolkit.proxy.connection.ConnectionResult; +import group.aelysium.rustyconnector.toolkit.proxy.connection.IPlayerConnectable; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.util.DependencyInjector; import group.aelysium.rustyconnector.plugin.velocity.PluginLogger; import group.aelysium.rustyconnector.proxy.family.scalar_family.ScalarFamily; import group.aelysium.rustyconnector.proxy.family.static_family.StaticFamily; import group.aelysium.rustyconnector.proxy.family.dynamic_scale.K8Service; -import group.aelysium.rustyconnector.plugin.velocity.lang.ProxyLang; +import group.aelysium.rustyconnector.toolkit.proxy.lang.ProxyLang; import group.aelysium.rustyconnector.proxy.family.mcloader.MCLoader; import group.aelysium.rustyconnector.toolkit.common.cache.MessageCache; import io.fabric8.kubernetes.api.model.Pod; @@ -175,7 +175,7 @@ class FamilyC { if(family instanceof RankedFamily) ProxyLang.RC_RANKED_FAMILY_INFO.send(logger, (RankedFamily) family, false); } catch (NoSuchElementException e) { - logger.send(Component.text("A family with that id doesn't exist!", NamedTextColor.RED)); + logger.send(Component.text("A family with that word_id doesn't exist!", NamedTextColor.RED)); } catch (Exception e) { logger.send(Component.text("Something prevented us from getting that family!\n"+e.getMessage(), NamedTextColor.RED)); } @@ -206,7 +206,7 @@ class FamilyC { ProxyLang.RC_RANKED_FAMILY_INFO.send(logger, (RankedFamily) family, false); }, () -> {throw new NullPointerException("This family is currently not available. Try again later!");}); } catch (NoSuchElementException e) { - logger.send(Component.text("A family with that id doesn't exist!", NamedTextColor.RED)); + logger.send(Component.text("A family with that word_id doesn't exist!", NamedTextColor.RED)); } catch (Exception e) { logger.send(Component.text("Something prevented us from doing that!\n"+e.getMessage(), NamedTextColor.RED)); } @@ -233,7 +233,7 @@ class FamilyC { }, () -> {throw new NullPointerException("This family is currently not available. Try again later!");}); } catch (NoSuchElementException e) { - logger.send(Component.text("A family with that id doesn't exist!", NamedTextColor.RED)); + logger.send(Component.text("A family with that word_id doesn't exist!", NamedTextColor.RED)); } catch (Exception e) { logger.send(Component.text("Something prevented us from doing that!\n"+e.getMessage(), NamedTextColor.RED)); } @@ -255,7 +255,7 @@ class FamilyC { if(family instanceof RankedFamily) ProxyLang.RC_RANKED_FAMILY_INFO.send(logger, (RankedFamily) family, true); } catch (NoSuchElementException e) { - logger.send(Component.text("A family with that id doesn't exist!", NamedTextColor.RED)); + logger.send(Component.text("A family with that word_id doesn't exist!", NamedTextColor.RED)); } catch (Exception e) { logger.send(Component.text("Something prevented us from doing that!\n"+e.getMessage(), NamedTextColor.RED)); } @@ -284,7 +284,7 @@ class FamilyC { logger.send(Component.text(playerNames)); } catch (NoSuchElementException e) { ProxyLang.RC_FAMILY.send(logger); - logger.send(Component.text("A family with that id doesn't exist!", NamedTextColor.RED)); + logger.send(Component.text("A family with that word_id doesn't exist!", NamedTextColor.RED)); } catch (Exception e) { ProxyLang.RC_FAMILY.send(logger); logger.send(Component.text("Something prevented us from doing that!\n"+e.getMessage(), NamedTextColor.RED)); diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/DefaultConfig.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/DefaultConfig.java index a9eaaeb5b..ca98566e1 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/DefaultConfig.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/DefaultConfig.java @@ -1,10 +1,10 @@ package group.aelysium.rustyconnector.plugin.velocity.config; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import group.aelysium.rustyconnector.common.exception.NoOutputException; import group.aelysium.rustyconnector.plugin.velocity.PluginLogger; -import group.aelysium.rustyconnector.plugin.velocity.lang.ProxyLang; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.proxy.lang.ProxyLang; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; import net.kyori.adventure.text.format.NamedTextColor; import org.yaml.snakeyaml.Yaml; @@ -16,7 +16,7 @@ import java.io.PrintWriter; import java.nio.file.Path; -public class DefaultConfig extends YAML { +public class DefaultConfig extends Config { protected DefaultConfig(Path dataFolder, String target, String name, LangService lang) { super(dataFolder, target, name, lang, LangFileMappings.PROXY_CONFIG_TEMPLATE); @@ -43,7 +43,7 @@ protected void register(int configVersion) throws IllegalStateException, NoOutpu this.whitelist_enabled = IConfig.getValue(this.data,"whitelist.enabled",Boolean.class); this.whitelist_name = IConfig.getValue(this.data,"whitelist.name",String.class); if(this.whitelist_enabled && this.whitelist_name.equals("")) - throw new IllegalStateException("whitelist.id cannot be empty in order to use a whitelist on the proxy!"); + throw new IllegalStateException("whitelist.word_id cannot be empty in order to use a whitelist on the proxy!"); this.whitelist_name = this.whitelist_name.replaceFirst("\\.yml$|\\.yaml$",""); diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/LoadBalancerConfig.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/LoadBalancerConfig.java index 8cb0dd1d7..02d2bcb96 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/LoadBalancerConfig.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/LoadBalancerConfig.java @@ -1,15 +1,15 @@ package group.aelysium.rustyconnector.plugin.velocity.config; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import group.aelysium.rustyconnector.common.lang.LangService; import group.aelysium.rustyconnector.toolkit.common.config.IConfigService; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; -import group.aelysium.rustyconnector.toolkit.velocity.family.load_balancing.AlgorithmType; +import group.aelysium.rustyconnector.toolkit.proxy.family.load_balancing.AlgorithmType; import java.nio.file.Path; -public class LoadBalancerConfig extends YAML implements group.aelysium.rustyconnector.toolkit.velocity.config.LoadBalancerConfig { +public class LoadBalancerConfig extends Config implements group.aelysium.rustyconnector.toolkit.proxy.config.LoadBalancerConfig { private boolean weighted = false; private AlgorithmType algorithm = AlgorithmType.ROUND_ROBIN; diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MagicLinkConfig.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MagicLinkConfig.java index 7df8b2ebc..4c525d62d 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MagicLinkConfig.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MagicLinkConfig.java @@ -1,18 +1,18 @@ package group.aelysium.rustyconnector.plugin.velocity.config; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import group.aelysium.rustyconnector.common.lang.LangService; import group.aelysium.rustyconnector.plugin.velocity.lib.magic_link.MagicLink; import group.aelysium.rustyconnector.plugin.velocity.lib.remote_storage.Storage; import group.aelysium.rustyconnector.toolkit.common.UserPass; import group.aelysium.rustyconnector.toolkit.common.config.IConfigService; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; import java.net.InetSocketAddress; import java.nio.file.Path; -public class MagicLinkConfig extends YAML { +public class MagicLinkConfig extends Config { private MagicLink.Configuration configuration; public MagicLink.Configuration storageConfiguration() { return this.configuration; diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MagicMCLoaderConfig.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MagicMCLoaderConfig.java index 4f177aed2..2b411d5b5 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MagicMCLoaderConfig.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MagicMCLoaderConfig.java @@ -1,16 +1,16 @@ package group.aelysium.rustyconnector.plugin.velocity.config; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import group.aelysium.rustyconnector.common.lang.LangService; import group.aelysium.rustyconnector.plugin.velocity.config.ConfigService; import group.aelysium.rustyconnector.plugin.velocity.lib.magic_link.MagicLink; import group.aelysium.rustyconnector.toolkit.common.config.IConfigService; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; import java.nio.file.Path; -public class MagicMCLoaderConfig extends YAML implements group.aelysium.rustyconnector.toolkit.velocity.config.MagicMCLoaderConfig { +public class MagicMCLoaderConfig extends Config implements group.aelysium.rustyconnector.toolkit.proxy.config.MagicMCLoaderConfig { private String server_family; private int server_weight; private int server_playerCap_soft; @@ -43,7 +43,7 @@ public int playerCap_hard() { protected void register() throws IllegalStateException { this.server_family = IConfig.getValue(this.data,"family",String.class); - if(this.server_family.equals("")) throw new IllegalStateException("You must provide a family id in order for RustyConnector to work! The family id must also exist on your families.yml configuration."); + if(this.server_family.equals("")) throw new IllegalStateException("You must provide a family word_id in order for RustyConnector to work! The family word_id must also exist on your families.yml configuration."); this.server_weight = IConfig.getValue(this.data,"weight",Integer.class); if(this.server_weight < 0) throw new IllegalStateException("Server weight cannot be a negative number."); diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MatchmakerConfig.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MatchmakerConfig.java index d6ec5b852..2fc6d18f4 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MatchmakerConfig.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/MatchmakerConfig.java @@ -1,20 +1,20 @@ package group.aelysium.rustyconnector.plugin.velocity.config; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import group.aelysium.rustyconnector.common.lang.LangService; import group.aelysium.rustyconnector.plugin.velocity.config.ConfigService; import group.aelysium.rustyconnector.proxy.family.matchmaking.rank.*; import group.aelysium.rustyconnector.toolkit.common.config.IConfigService; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; -import group.aelysium.rustyconnector.toolkit.velocity.family.matchmaking.IMatchmaker; -import group.aelysium.rustyconnector.toolkit.velocity.family.matchmaking.IVelocityPlayerRank; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; +import group.aelysium.rustyconnector.toolkit.proxy.family.matchmaking.IMatchmaker; +import group.aelysium.rustyconnector.toolkit.proxy.family.matchmaking.IVelocityPlayerRank; +import group.aelysium.rustyconnector.toolkit.proxy.util.LiquidTimestamp; import java.nio.file.Path; import java.util.concurrent.TimeUnit; -public class MatchmakerConfig extends YAML implements group.aelysium.rustyconnector.toolkit.velocity.config.MatchMakerConfig { +public class MatchmakerConfig extends Config implements group.aelysium.rustyconnector.toolkit.proxy.config.MatchMakerConfig { private IMatchmaker.Settings settings; public IMatchmaker.Settings settings() { diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/ScalarFamilyConfig.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/ScalarFamilyConfig.java index 2f3c1a201..e8e2b7653 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/ScalarFamilyConfig.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/ScalarFamilyConfig.java @@ -1,20 +1,20 @@ package group.aelysium.rustyconnector.plugin.velocity.config; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import group.aelysium.rustyconnector.common.lang.LangService; import group.aelysium.rustyconnector.plugin.velocity.config.ConfigService; import group.aelysium.rustyconnector.proxy.family.Family; import group.aelysium.rustyconnector.toolkit.common.config.IConfigService; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; -import group.aelysium.rustyconnector.toolkit.velocity.config.IProxyConfigService; -import group.aelysium.rustyconnector.toolkit.velocity.config.LoadBalancerConfig; -import group.aelysium.rustyconnector.toolkit.velocity.config.WhitelistConfig; +import group.aelysium.rustyconnector.toolkit.proxy.config.IProxyConfigService; +import group.aelysium.rustyconnector.toolkit.proxy.config.LoadBalancerConfig; +import group.aelysium.rustyconnector.toolkit.proxy.config.WhitelistConfig; import java.nio.file.Path; import java.util.Optional; -public class ScalarFamilyConfig extends YAML implements group.aelysium.rustyconnector.toolkit.velocity.config.ScalarFamilyConfig { +public class ScalarFamilyConfig extends Config implements group.aelysium.rustyconnector.toolkit.proxy.config.ScalarFamilyConfig { private String displayName; private Family.Reference parent_family = Family.Reference.rootFamily(); private String loadBalancer = "default"; @@ -71,7 +71,7 @@ protected void register() throws IllegalStateException { this.whitelist_enabled = IConfig.getValue(this.data,"whitelist.enabled",Boolean.class); this.whitelist_name = IConfig.getValue(this.data,"whitelist.name",String.class); if(this.whitelist_enabled && this.whitelist_name.equals("")) - throw new IllegalStateException("whitelist.id cannot be empty in order to use a whitelist in a family!"); + throw new IllegalStateException("whitelist.word_id cannot be empty in order to use a whitelist in a family!"); this.whitelist_name = this.whitelist_name.replaceFirst("\\.yml$|\\.yaml$",""); } diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/StorageConfig.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/StorageConfig.java index 983314ddb..0128773f8 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/StorageConfig.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/StorageConfig.java @@ -1,17 +1,17 @@ package group.aelysium.rustyconnector.plugin.velocity.config; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import group.aelysium.rustyconnector.common.lang.LangService; import group.aelysium.rustyconnector.plugin.velocity.lib.remote_storage.Storage; import group.aelysium.rustyconnector.toolkit.common.UserPass; import group.aelysium.rustyconnector.toolkit.common.config.IConfigService; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; import java.net.InetSocketAddress; import java.nio.file.Path; -public class StorageConfig extends YAML { +public class StorageConfig extends Config { private Storage.Configuration configuration; public Storage.Configuration storageConfiguration() { return this.configuration; diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/WhitelistConfig.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/WhitelistConfig.java index b86769e03..15530ad6f 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/WhitelistConfig.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/config/WhitelistConfig.java @@ -1,13 +1,13 @@ package group.aelysium.rustyconnector.plugin.velocity.config; -import group.aelysium.rustyconnector.common.config.YAML; +import group.aelysium.rustyconnector.common.config.Config; import group.aelysium.rustyconnector.common.lang.LangService; import group.aelysium.rustyconnector.plugin.velocity.PluginLogger; import group.aelysium.rustyconnector.plugin.velocity.central.Tinder; import group.aelysium.rustyconnector.plugin.velocity.config.ConfigService; -import group.aelysium.rustyconnector.plugin.velocity.lang.ProxyLang; +import group.aelysium.rustyconnector.toolkit.proxy.lang.ProxyLang; import group.aelysium.rustyconnector.toolkit.common.config.IConfigService; -import group.aelysium.rustyconnector.toolkit.common.config.IConfig; +import group.aelysium.rustyconnector.toolkit.common.lang.IConfig; import group.aelysium.rustyconnector.toolkit.common.lang.LangFileMappings; import net.kyori.adventure.text.format.NamedTextColor; @@ -15,7 +15,7 @@ import java.util.ArrayList; import java.util.List; -public class WhitelistConfig extends YAML implements group.aelysium.rustyconnector.toolkit.velocity.config.WhitelistConfig { +public class WhitelistConfig extends Config implements group.aelysium.rustyconnector.toolkit.proxy.config.WhitelistConfig { private boolean use_players = false; private List players = new ArrayList<>(); diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerChangeServer.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerChangeServer.java index f30112161..b7fdd23e1 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerChangeServer.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerChangeServer.java @@ -7,7 +7,7 @@ import com.velocitypowered.api.proxy.server.RegisteredServer; import group.aelysium.rustyconnector.plugin.velocity.lib.players.Player; import group.aelysium.rustyconnector.toolkit.RC; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; +import group.aelysium.rustyconnector.toolkit.proxy.family.mcloader.IMCLoader; import java.util.UUID; diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerChooseInitialServer.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerChooseInitialServer.java index fa7eed5bf..3131dcfeb 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerChooseInitialServer.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerChooseInitialServer.java @@ -5,10 +5,10 @@ import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.player.PlayerChooseInitialServerEvent; import com.velocitypowered.api.proxy.server.RegisteredServer; -import group.aelysium.rustyconnector.plugin.velocity.lib.players.Player; +import group.aelysium.rustyconnector.proxy.players.Player; import group.aelysium.rustyconnector.toolkit.RC; -import group.aelysium.rustyconnector.toolkit.velocity.connection.ConnectionResult; -import group.aelysium.rustyconnector.toolkit.velocity.connection.IPlayerConnectable; +import group.aelysium.rustyconnector.toolkit.proxy.connection.ConnectionResult; +import group.aelysium.rustyconnector.toolkit.proxy.connection.IPlayerConnectable; import net.kyori.adventure.text.Component; import java.util.concurrent.TimeUnit; diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerDisconnect.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerDisconnect.java index d7605d163..b2d1e8f3f 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerDisconnect.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerDisconnect.java @@ -6,7 +6,7 @@ import com.velocitypowered.api.event.connection.DisconnectEvent; import group.aelysium.rustyconnector.plugin.velocity.lib.players.Player; import group.aelysium.rustyconnector.toolkit.RC; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; +import group.aelysium.rustyconnector.toolkit.proxy.player.IPlayer; public class OnPlayerDisconnect { /** diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerKicked.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerKicked.java index 4dd2c07e7..de9a7e262 100644 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerKicked.java +++ b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/event_handlers/OnPlayerKicked.java @@ -7,7 +7,7 @@ import com.velocitypowered.api.proxy.server.RegisteredServer; import group.aelysium.rustyconnector.plugin.velocity.lib.players.Player; import group.aelysium.rustyconnector.toolkit.RC; -import group.aelysium.rustyconnector.toolkit.velocity.ProxyAdapter; +import group.aelysium.rustyconnector.toolkit.proxy.ProxyAdapter; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; diff --git a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/lang/ProxyLang.java b/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/lang/ProxyLang.java deleted file mode 100644 index fdd726204..000000000 --- a/plugin/velocity/src/main/java/group/aelysium/rustyconnector/plugin/velocity/lang/ProxyLang.java +++ /dev/null @@ -1,1030 +0,0 @@ -package group.aelysium.rustyconnector.plugin.velocity.lang; - -import group.aelysium.rustyconnector.toolkit.common.cache.CacheableMessage; -import group.aelysium.rustyconnector.common.lang.ASCIIAlphabet; -import group.aelysium.rustyconnector.common.lang.Lang; -import group.aelysium.rustyconnector.common.lang.LanguageResolver; -import group.aelysium.rustyconnector.proxy.family.ranked_family.RankedFamily; -import group.aelysium.rustyconnector.proxy.family.matchmaking.Matchmaker; -import group.aelysium.rustyconnector.toolkit.velocity.family.Family; -import group.aelysium.rustyconnector.toolkit.velocity.family.scalar_family.IRootFamily; -import group.aelysium.rustyconnector.toolkit.velocity.friends.IFriendRequest; -import group.aelysium.rustyconnector.toolkit.velocity.parties.IParty; -import group.aelysium.rustyconnector.toolkit.velocity.player.IPlayer; -import group.aelysium.rustyconnector.toolkit.velocity.family.mcloader.IMCLoader; -import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp; -import group.aelysium.rustyconnector.toolkit.velocity.util.AddressUtil; -import group.aelysium.rustyconnector.plugin.velocity.central.Tinder; -import group.aelysium.rustyconnector.proxy.family.scalar_family.RootFamily; -import group.aelysium.rustyconnector.proxy.family.scalar_family.ScalarFamily; -import group.aelysium.rustyconnector.proxy.family.static_family.StaticFamily; -import group.aelysium.rustyconnector.plugin.velocity.lib.friends.FriendsService; -import group.aelysium.rustyconnector.proxy.family.mcloader.MCLoader; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.JoinConfiguration; -import net.kyori.adventure.text.event.ClickEvent; -import net.kyori.adventure.text.event.HoverEvent; -import net.kyori.adventure.text.format.NamedTextColor; -import net.kyori.adventure.text.format.TextDecoration; - -import java.util.List; -import java.util.Objects; -import java.util.UUID; -import java.util.concurrent.atomic.AtomicReference; - -import static net.kyori.adventure.text.Component.*; -import static net.kyori.adventure.text.format.NamedTextColor.*; - -public class ProxyLang extends Lang { - public static LanguageResolver resolver() { - return Tinder.get().lang().resolver(); - } - - public final static String REASON = resolver().getRaw("core.single_word.reason"); - public final static String STATUS = resolver().getRaw("core.single_word.status"); - public final static String ID = resolver().getRaw("core.single_word.id"); - public final static String TIMESTAMP = resolver().getRaw("core.single_word.timestamp"); - public final static String CONTENTS = resolver().getRaw("core.single_word.contents"); - public final static String PAGES = resolver().getRaw("core.single_word.pages"); - public final static String USAGE = resolver().getRaw("core.single_word.usage"); - public final static String LEADER = resolver().getRaw("core.single_word.leader"); - public final static String PARTY = resolver().getRaw("core.single_word.party"); - public final static String LEAVE = resolver().getRaw("core.single_word.leave"); - public final static String DISBAND = resolver().getRaw("core.single_word.disband"); - public final static String ACCEPT = resolver().getRaw("core.single_word.accept"); - public final static String DENY = resolver().getRaw("core.single_word.deny"); - public final static String IGNORE = resolver().getRaw("core.single_word.ignore"); - public final static String DATE = resolver().getRaw("core.single_word.date"); - - public final static Component BORDER = text("█████████████████████████████████████████████████████████████████████████████████████████████████", DARK_GRAY); - - public final static Component SPACING = text(""); - - public final static Component UNKNOWN_COMMAND = text(resolver().getRaw("core.unknown_command")); - public final static Component NO_PERMISSION = text(resolver().getRaw("core.no_permission")); - public final static Component INTERNAL_ERROR = resolver().get("core.internal_error"); - - public final static Component WORDMARK_USAGE = ASCIIAlphabet.generate("usage"); - - public final static Component WORDMARK_MESSAGE = ASCIIAlphabet.generate("message"); - public final static Component SERVER_ALREADY_CONNECTED = resolver().get("proxy.server.already_connected"); - public final static ParameterizedMessage1 NO_PLAYER = (username) -> - resolver().get("core.no_player", LanguageResolver.tagHandler("username", username)); - - public final static ParameterizedMessage1 WORDMARK_RUSTY_CONNECTOR = (version) -> {// font: ANSI Shadow - Component versionComponent = empty(); - - if(version != null && !version.equals("")) - versionComponent = versionComponent.append(text("Version "+version, GREEN)); - - return join( - newlines(), - BORDER, - SPACING, - text(" /███████ /██", AQUA), - text("| ██__ ██ | ██", AQUA), - text("| ██ \\ ██ /██ /██ /███████ /██████ /██ /██", AQUA), - text("| ███████/| ██ | ██ /██_____/|_ ██_/ | ██ | ██", AQUA), - text("| ██__ ██| ██ | ██| ██████ | ██ | ██ | ██", AQUA), - text("| ██ \\ ██| ██ | ██ \\____ ██ | ██ /██| ██ | ██", AQUA), - text("| ██ | ██| ██████/ /███████/ | ████/| ███████", AQUA), - text("|__/ |__/ \\______/ |_______/ \\___/ \\____ ██", AQUA), - text(" /██ | ██ ", AQUA).append(versionComponent), - text(" | ██████/", AQUA), - text(" /██████ \\______/ /██", AQUA), - text(" /██__ ██ | ██", AQUA), - text("| ██ \\__/ /██████ /███████ /███████ /██████ /███████ /██████ /██████ /██████", AQUA), - text("| ██ /██__ ██| ██__ ██| ██__ ██ /██__ ██ /██_____/|_ ██_/ /██__ ██ /██__ ██", AQUA), - text("| ██ | ██ \\ ██| ██ \\ ██| ██ \\ ██| ████████| ██ | ██ | ██ \\ ██| ██ \\__/", AQUA), - text("| ██ ██| ██ | ██| ██ | ██| ██ | ██| ██_____/| ██ | ██ /██| ██ | ██| ██", AQUA), - text("| ██████/| ██████/| ██ | ██| ██ | ██| ███████| ███████ | ████/| ██████/| ██", AQUA), - text("\\______/ \\______/ |__/ |__/|__/ |__/ \\_______/ \\_______/ \\___/ \\______/ |__/", AQUA), - SPACING, - BORDER, - SPACING, - resolver().get("core.boot_wordmark.developed_by").append(text(" Aelysium | Juice")), - resolver().get("core.boot_wordmark.usage").color(YELLOW), - SPACING, - BORDER - ); - }; - - public final static ParameterizedMessage1 BOXED_MESSAGE = (message) -> join( - newlines(), - SPACING, - BORDER, - SPACING, - message, - SPACING, - BORDER, - SPACING - ); - public final static ParameterizedMessage2 BOXED_MESSAGE_COLORED = (message, color) -> join( - newlines(), - SPACING, - BORDER.color(color), - SPACING, - text(message).color(color), - SPACING, - BORDER.color(color), - SPACING - ); - public final static ParameterizedMessage2 BOXED_COMPONENT_COLORED = (message, color) -> join( - newlines(), - SPACING, - BORDER.color(color), - SPACING, - message.color(color), - SPACING, - BORDER.color(color), - SPACING - ); - - public final static ParameterizedMessage1 CACHED_MESSAGE = (message) -> join( - newlines(), - BORDER, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text( CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - BORDER - ); - - public final static ParameterizedMessage3,Integer, Integer> RC_MESSAGE_PAGE = (messages, pageNumber, maxPages) -> { - Component output = text(""); - for (CacheableMessage message : messages) { - if(!(message.getSentenceReason() == null)) - output = output.append(join( - newlines(), - BORDER, - SPACING, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - text(REASON+": " + message.getSentenceReason(), message.getSentence().color()), - SPACING, - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text(CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - SPACING - )); - else - output = output.append(join( - newlines(), - BORDER, - SPACING, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - SPACING, - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text(CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - SPACING - )); - } - - Component pageNumbers = text("[ ",DARK_GRAY); - for (int i = 1; i <= maxPages; i++) { - if(i == pageNumber) - pageNumbers = pageNumbers.append(text(i+" ",GOLD)); - else - pageNumbers = pageNumbers.append(text(i+" ",GRAY)); - } - pageNumbers = pageNumbers.append(text("]",DARK_GRAY)); - - return output.append( - join( - newlines(), - SPACING, - BORDER, - SPACING, - text(PAGES+":"), - pageNumbers, - SPACING, - BORDER - ) - ); - }; - - public final static Component WORDMARK_REGISTERED_FAMILIES = - join( - newlines(), - ASCIIAlphabet.generate("registered"), - SPACING, - ASCIIAlphabet.generate("families") - ); - - public final static Component RC_ROOT_USAGE = join( - newlines(), - BORDER, - SPACING, - WORDMARK_USAGE.color(AQUA), - SPACING, - resolver().getArray("proxy.root.usage.description"), - SPACING, - BORDER, - SPACING, - text("/rc family", AQUA), - resolver().get("proxy.root.usage.command_description.family"), - SPACING, - text("/rc message", AQUA), - resolver().get("proxy.root.usage.command_description.message"), - SPACING, - text("/rc reload", GOLD), - resolver().get("proxy.root.usage.command_description.reload"), - SPACING, - text("/rc send", AQUA), - resolver().get("proxy.root.usage.command_description.send"), - SPACING, - BORDER - ); - - public final static Component RC_MESSAGE_ROOT_USAGE = join( - newlines(), - BORDER, - SPACING, - WORDMARK_USAGE.color(AQUA), - SPACING, - BORDER, - SPACING, - text("/rc message get ", AQUA), - resolver().get("proxy.message.usage.get"), - SPACING, - text("/rc message list ", AQUA), - resolver().get("proxy.message.usage.list"), - SPACING, - BORDER - ); - - public final static Component RC_SEND_USAGE = join( - newlines(), - BORDER, - SPACING, - WORDMARK_USAGE.color(AQUA), - SPACING, - BORDER, - SPACING, - text("/rc send ", GOLD), - resolver().get("proxy.send.usage.family"), - SPACING, - text("/rc send server ", GOLD), - resolver().getArray("proxy.send.usage.server"), - SPACING, - BORDER - ); - - public final static Component RC_MESSAGE_GET_USAGE = join( - newlines(), - BORDER, - SPACING, - WORDMARK_USAGE.color(AQUA), - SPACING, - BORDER, - SPACING, - text("/rc message get ",AQUA), - resolver().get("proxy.message.usage.get"), - SPACING, - BORDER - ); - - public final static ParameterizedMessage1 RC_SEND_NO_PLAYER = username -> - resolver().get("proxy.send.no_player", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 RC_SEND_NO_FAMILY = familyName -> - resolver().get("proxy.send.no_family", LanguageResolver.tagHandler("family_name", familyName)); - public final static ParameterizedMessage1 RC_SEND_NO_SERVER = serverName -> - resolver().get("proxy.send.no_server", LanguageResolver.tagHandler("server_name", serverName)); - public final static Message RC_SEND_SAME_FAMILY = () -> resolver().get("proxy.send.same_family"); - - public final static ParameterizedMessage1 RC_MESSAGE_GET_MESSAGE = (message) -> join( - newlines(), - BORDER, - SPACING, - WORDMARK_MESSAGE.color(AQUA), - SPACING, - BORDER, - SPACING, - text(STATUS+": " + message.getSentence().name(), message.getSentence().color()), - text(REASON+": " + message.getSentenceReason(), message.getSentence().color()), - SPACING, - text(ID+": ", message.getSentence().color()).append(text(message.getSnowflake(), GRAY)), - text(TIMESTAMP+": ", message.getSentence().color()).append(text(message.getDate().toString(), GRAY)), - text(CONTENTS+": ", message.getSentence().color()).append(text(message.getContents(), GRAY)), - SPACING - ); - - public final static ParameterizedMessage1 RC_MESSAGE_ERROR = error -> join( - newlines(), - BORDER, - SPACING, - WORDMARK_MESSAGE.color(RED), - SPACING, - BORDER, - SPACING, - text(error,GRAY), - SPACING, - BORDER - ); - - public final static Message RC_FAMILY = () -> { - Tinder api = Tinder.get(); - Component families = text(""); - for (Family family : api.services().family().dump()) { - if(family instanceof RootFamily) - families = families.append(text("["+family.id()+"*] ").color(BLUE)); - if(family instanceof ScalarFamily) - families = families.append(text("["+family.id()+"] ").color(BLUE)); - if(family instanceof StaticFamily) - families = families.append(text("["+family.id()+"] ").color(DARK_GREEN)); - if(family instanceof RankedFamily) - families = families.append(text("["+family.id()+"] ").color(YELLOW)); - } - - return join( - newlines(), - BORDER, - SPACING, - WORDMARK_REGISTERED_FAMILIES.color(AQUA), - SPACING, - BORDER, - SPACING, - resolver().getArray("proxy.family.description"), - families, - SPACING, - BORDER, - SPACING, - text("/rc family ",DARK_AQUA), - resolver().get("proxy.family.details_usage"), - SPACING, - BORDER - ); - }; - - public final static ParameterizedMessage2 RC_SCALAR_FAMILY_INFO = (family, locked) -> { - Component servers = text(""); - int i = 0; - - if(family.registeredServers() == null) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.registeredServers().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.loadBalancer().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_unlocked_servers"); - else { - List serverList; - if(locked) - serverList = family.loadBalancer().lockedServers(); - else - serverList = family.loadBalancer().openServers(); - - for (IMCLoader server : serverList) { - Component serverEntry = resolver().get( - "proxy.family.generic.servers.details", - LanguageResolver.tagHandler("index_number", i + 1), - LanguageResolver.tagHandler("server_name", server.uuidOrDisplayName()), - LanguageResolver.tagHandler("server_address", AddressUtil.addressToString(server.registeredServer().getServerInfo().getAddress())), - LanguageResolver.tagHandler("player_count", server.playerCount()), - LanguageResolver.tagHandler("player_soft_cap", server.softPlayerCap()), - LanguageResolver.tagHandler("player_hard_cap", server.hardPlayerCap()), - LanguageResolver.tagHandler("server_weight", server.weight()) - ); - - if(family.loadBalancer().index() == i && !locked) - serverEntry = serverEntry.color(GREEN); - else - serverEntry = serverEntry.color(GRAY); - - servers = servers.append(serverEntry).append(newline()); - - i++; - } - } - - IRootFamily rootFamily = Tinder.get().services().family().rootFamily(); - String parentFamilyName = rootFamily.id(); - try { - parentFamilyName = Objects.requireNonNull(family.parent()).id(); - } catch (Exception ignore) {} - if(family.equals(rootFamily)) parentFamilyName = "none"; - - String persistence = "Disabled"; - if(family.loadBalancer().persistent()) - persistence = family.loadBalancer().attempts() + " Attempts"; - - return join( - newlines(), - BORDER, - SPACING, - ASCIIAlphabet.generate(family.id(), AQUA), - SPACING, - BORDER, - SPACING, - resolver().getArray( - "proxy.family.scalar.panel.info", - LanguageResolver.tagHandler("display_name", family.displayName()), - LanguageResolver.tagHandler("parent_family_name", parentFamilyName), - LanguageResolver.tagHandler("players_count", family.playerCount()), - - LanguageResolver.tagHandler("servers_count", family.loadBalancer().size()), - LanguageResolver.tagHandler("servers_open", family.loadBalancer().size(false)), - LanguageResolver.tagHandler("servers_locked", family.loadBalancer().size(true)), - - LanguageResolver.tagHandler("load_balancing_algorithm", family.loadBalancer()), - LanguageResolver.tagHandler("load_balancing_weighted", family.loadBalancer().weighted()), - LanguageResolver.tagHandler("load_balancing_persistence", persistence) - ), - SPACING, - BORDER, - SPACING, - resolver().get("proxy.family.generic.servers.open_servers"), - SPACING, - text("/rc family sort", GOLD), - resolver().get("proxy.family.generic.command_descriptions.sort"), - SPACING, - text("/rc family resetIndex", GOLD), - resolver().get("proxy.family.generic.command_descriptions.reset_index"), - SPACING, - text("/rc family locked", GOLD), - resolver().get("proxy.family.generic.command_descriptions.locked"), - SPACING, - servers, - SPACING, - BORDER - ); - }; - - public final static ParameterizedMessage2 RC_STATIC_FAMILY_INFO = (family, locked) -> { - Component servers = text(""); - int i = 0; - - if(family.registeredServers() == null) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.registeredServers().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.loadBalancer().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_unlocked_servers"); - else { - List serverList; - if(locked) - serverList = family.loadBalancer().lockedServers(); - else - serverList = family.loadBalancer().openServers(); - - for (IMCLoader server : serverList) { - Component serverEntry = resolver().get( - "proxy.family.generic.servers.details", - LanguageResolver.tagHandler("index_number", i + 1), - LanguageResolver.tagHandler("server_name", server.uuidOrDisplayName()), - LanguageResolver.tagHandler("server_address", AddressUtil.addressToString(server.registeredServer().getServerInfo().getAddress())), - LanguageResolver.tagHandler("player_count", server.playerCount()), - LanguageResolver.tagHandler("player_soft_cap", server.softPlayerCap()), - LanguageResolver.tagHandler("player_hard_cap", server.hardPlayerCap()), - LanguageResolver.tagHandler("server_weight", server.weight()) - ); - - if(family.loadBalancer().index() == i && !locked) - serverEntry = serverEntry.color(GREEN); - else - serverEntry = serverEntry.color(GRAY); - - servers = servers.append(serverEntry).append(newline()); - - i++; - } - } - - // Compile residence expiration - LiquidTimestamp expiration = family.homeServerExpiration(); - String homeServerExpiration = "NEVER"; - if(expiration != null) homeServerExpiration = expiration.toString(); - - // Compile Persistence - String persistence = "Disabled"; - if(family.loadBalancer().persistent()) - persistence = family.loadBalancer().attempts() + " Attempts"; - - return join( - newlines(), - BORDER, - SPACING, - ASCIIAlphabet.generate(family.id(), AQUA), - SPACING, - BORDER, - SPACING, - resolver().getArray( - "proxy.family.static.panel.info", - LanguageResolver.tagHandler("display_name", family.displayName()), - LanguageResolver.tagHandler("parent_family_name", family.parent().id()), - LanguageResolver.tagHandler("player_count", family.playerCount()), - - LanguageResolver.tagHandler("residence_expiration", homeServerExpiration), - LanguageResolver.tagHandler("servers_count", family.loadBalancer().size()), - LanguageResolver.tagHandler("servers_open", family.loadBalancer().size(false)), - LanguageResolver.tagHandler("servers_locked", family.loadBalancer().size(true)), - - LanguageResolver.tagHandler("load_balancing_algorithm", family.loadBalancer()), - LanguageResolver.tagHandler("load_balancing_weighted", family.loadBalancer().weighted()), - LanguageResolver.tagHandler("load_balancing_persistence", persistence) - ), - SPACING, - BORDER, - SPACING, - resolver().get("proxy.family.generic.servers.open_servers"), - SPACING, - text("/rc family sort", GOLD), - resolver().get("proxy.family.generic.command_descriptions.sort"), - SPACING, - text("/rc family resetIndex", GOLD), - resolver().get("proxy.family.generic.command_descriptions.reset_index"), - SPACING, - text("/rc family locked", GOLD), - resolver().get("proxy.family.generic.command_descriptions.locked"), - SPACING, - servers, - SPACING, - BORDER - ); - }; - - public final static Message RANKED_FAMILY_PARTY_DENIAL = () -> resolver().get("proxy.family.ranked.in_party"); - public final static Message RANKED_FAMILY_IN_MATCHMAKER_QUEUE_DENIAL = () -> resolver().get("proxy.family.ranked.in_matchmaker_queue"); - public final static Message RANKED_FAMILY_IN_MATCHMAKER_GAME_DENIAL = () -> resolver().get("proxy.family.ranked.in_matchmaker_game"); - public final static ParameterizedMessage2 RC_RANKED_FAMILY_INFO = (family, locked) -> { - Component servers = text(""); - int i = 0; - - if(family.registeredServers() == null) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.registeredServers().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_registered_servers"); - else if(family.loadBalancer().size() == 0) servers = resolver().get("proxy.family.generic.servers.no_unlocked_servers"); - else { - List serverList; - if(locked) - serverList = family.loadBalancer().lockedServers(); - else - serverList = family.loadBalancer().openServers(); - - for (IMCLoader server : serverList) { - Component serverEntry = resolver().get( - "proxy.family.generic.servers.details", - LanguageResolver.tagHandler("index_number", i + 1), - LanguageResolver.tagHandler("server_name", server.uuidOrDisplayName()), - LanguageResolver.tagHandler("server_address", AddressUtil.addressToString(server.registeredServer().getServerInfo().getAddress())), - LanguageResolver.tagHandler("player_count", server.playerCount()), - LanguageResolver.tagHandler("player_soft_cap", server.softPlayerCap()), - LanguageResolver.tagHandler("player_hard_cap", server.hardPlayerCap()), - LanguageResolver.tagHandler("server_weight", server.weight()) - ); - - if(family.loadBalancer().index() == i && !locked) - serverEntry = serverEntry.color(GREEN); - else - serverEntry = serverEntry.color(GRAY); - - servers = servers.append(serverEntry).append(newline()); - - i++; - } - } - - Matchmaker matchmaker = family.matchmaker(); - String algorithm = matchmaker.newPlayerRank().schemaName(); - - return join( - newlines(), - BORDER, - SPACING, - ASCIIAlphabet.generate(family.id(), AQUA), - SPACING, - BORDER, - SPACING, - resolver().getArray( - "proxy.family.ranked.panel.info", - LanguageResolver.tagHandler("display_name", family.displayName()), - LanguageResolver.tagHandler("parent_family_name", family.parent().id()), - - LanguageResolver.tagHandler("servers_count", family.loadBalancer().size()), - LanguageResolver.tagHandler("servers_open", family.loadBalancer().size(false)), - LanguageResolver.tagHandler("servers_locked", family.loadBalancer().size(true)), - - LanguageResolver.tagHandler("session_count", matchmaker.sessionCount()), - LanguageResolver.tagHandler("active_sessions", matchmaker.activeSessionCount()), - LanguageResolver.tagHandler("waiting_sessions", matchmaker.queuedSessionCount()), - - LanguageResolver.tagHandler("player_count", matchmaker.playerCount()), - LanguageResolver.tagHandler("active_players", matchmaker.activePlayerCount()), - LanguageResolver.tagHandler("waiting_players", matchmaker.queuedPlayerCount()), - - LanguageResolver.tagHandler("matchmaking_algorithm", algorithm) - ), - SPACING, - BORDER, - SPACING, - resolver().get("proxy.family.generic.servers.open_servers"), - SPACING, - text("/rc family sort", GOLD), - resolver().get("proxy.family.generic.command_descriptions.sort"), - SPACING, - text("/rc family resetIndex", GOLD), - resolver().get("proxy.family.generic.command_descriptions.reset_index"), - SPACING, - text("/rc family locked", GOLD), - resolver().get("proxy.family.generic.command_descriptions.locked"), - SPACING, - servers, - SPACING, - BORDER - ); - }; - - public final static Component MISSING_HOME_SERVER = resolver().get("proxy.family.static.residence.missing"); - public final static Component BLOCKED_STATIC_FAMILY_JOIN_ATTEMPT = resolver().get("proxy.family.static.residence.blocked_join_attempt"); - - public final static Component TPA_USAGE = text(USAGE+": /tpa <, deny, accept>",RED); - public final static Message TPA_DENY_USAGE = () -> join( - newlines(), - text(USAGE+": /tpa deny ",RED), - resolver().get("proxy.tpa.usage.deny") - ); - public final static Message TPA_ACCEPT_USAGE = () -> join( - newlines(), - text(USAGE+": /tpa accept ",RED), - resolver().get("proxy.tpa.usage.accept") - ); - - public final static ParameterizedMessage1 TPA_FAILURE = username -> resolver().get("proxy.tpa.sender_failure", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_FAILURE_TARGET = username -> resolver().get("proxy.tpa.target_failure", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_NOT_FRIENDS = username -> resolver().get("proxy.tpa.not_friends", LanguageResolver.tagHandler("username", username)); - public final static Component TPA_FAILURE_SELF_TP = resolver().get("proxy.tpa.self_failure"); - public final static ParameterizedMessage1 TPA_FAILURE_NO_USERNAME = username -> resolver().get("proxy.tpa.not_online", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_FAILURE_NO_REQUEST = username -> resolver().get("proxy.tpa.no_requests", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_DUPLICATE = username -> resolver().get("proxy.tpa.pending_request", LanguageResolver.tagHandler("username", username)); - - public final static ParameterizedMessage1 TPA_REQUEST_QUERY = (sender) -> join( - newlines(), - resolver().get("proxy.tpa.target_query.query", LanguageResolver.tagHandler("username", sender.username())), - join( - JoinConfiguration.separator(space()), - text("["+ACCEPT+"]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.tpa.target_query.accept_tooltip", LanguageResolver.tagHandler("username", sender.username())))).clickEvent(ClickEvent.runCommand("/tpa accept "+sender.username())), - text("["+DENY+"]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.tpa.target_query.deny_tooltip", LanguageResolver.tagHandler("username", sender.username())))).clickEvent(ClickEvent.runCommand("/tpa deny "+sender.username())) - ) - ); - public final static ParameterizedMessage1 TPA_REQUEST_SUBMISSION = username -> resolver().get("proxy.tpa.request_confirmation", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_ACCEPTED_SENDER = username -> resolver().getArray("proxy.tpa.sender_accepted", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_ACCEPTED_TARGET = username -> resolver().getArray("proxy.tpa.target_accepted", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_DENIED_SENDER = username -> resolver().getArray("proxy.tpa.sender_deny", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_DENIED_TARGET = username -> resolver().getArray("proxy.tpa.target_deny", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 TPA_REQUEST_EXPIRED = username -> resolver().get("proxy.tpa.expired_request", LanguageResolver.tagHandler("username", username)); - - public final static ParameterizedMessage1 TPA_REQUEST_BYPASSED = username -> resolver().get("proxy.tpa.bypassed_request", LanguageResolver.tagHandler("username", username)); - - public final static Component HUB_CONNECTION_FAILED = resolver().get("proxy.hub.connection_failed"); - - public final static ParameterizedMessage2 PARTY_BOARD = (party, member) -> { - boolean hasParty = party != null; - - if(hasParty) { - boolean isLeader = party.leader().equals(member); - boolean canInvite; - try { - boolean onlyLeaderCanInvite = Tinder.get().services().party().orElseThrow().settings().onlyLeaderCanInvite(); - canInvite = !onlyLeaderCanInvite || isLeader; - } catch (Exception ignore) { - canInvite = isLeader; - } - - final Component[] playersList = {text("")}; - if(isLeader) - party.players().forEach(partyMember -> { - - playersList[0] = playersList[0].appendNewline(); - - if(party.leader().equals(partyMember)) - playersList[0] = playersList[0].append( - join( - JoinConfiguration.separator(text(" ")), - text("[x]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.leave"))).clickEvent(ClickEvent.runCommand("/party leave")), - text("[^]", GRAY), - text(partyMember.username(), WHITE), - text("["+LEADER+"]", BLUE) - ) - ); - else - playersList[0] = playersList[0].append( - join( - JoinConfiguration.separator(text(" ")), - text("[x]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.kick"))).clickEvent(ClickEvent.runCommand("/party kick " + partyMember.username())), - text("[^]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.promote"))).clickEvent(ClickEvent.runCommand("/party promote " + partyMember.username())), - text(partyMember.username(), WHITE) - ) - ); - }); - else - party.players().forEach(partyMember -> { - playersList[0] = playersList[0].appendNewline(); - if(party.leader().equals(partyMember)) - playersList[0] = playersList[0].append( - join( - JoinConfiguration.separator(text(" ")), - text(partyMember.username(), WHITE), - text("["+LEADER+"]", BLUE) - ) - ); - else - playersList[0] = playersList[0].append( - join( - JoinConfiguration.separator(text(" ")), - text(partyMember.username(), WHITE) - ) - ); - }); - - Component header; - if(canInvite) - header = text("-------------------", GRAY) - .append(text(" "+PARTY+" ", WHITE)) - .append(text("[+]", GREEN)).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.invite_player"))).clickEvent(ClickEvent.suggestCommand("/party invite ")) - .append(text(" ------------------", GRAY)); - else - header = text("------------------", GRAY) - .append(text(" "+PARTY+" ", WHITE)) - .append(text(" ------------------", GRAY)); - - if(isLeader) - return join( - newlines(), - header, - playersList[0], - space(), - text("----------------", GRAY) - .appendSpace() - .append(text(DISBAND, RED, TextDecoration.UNDERLINED).clickEvent(ClickEvent.runCommand("/party disband"))) - .appendSpace() - .appendSpace() - .append(text(LEAVE, RED, TextDecoration.UNDERLINED).clickEvent(ClickEvent.runCommand("/party leave"))) - .appendSpace() - .append(text("----------------", GRAY)) - ); - else - return join( - newlines(), - header, - playersList[0], - space(), - text("------------------ ", GRAY).append(text(LEAVE, RED, TextDecoration.UNDERLINED).clickEvent(ClickEvent.runCommand("/party leave"))).append(text(" ------------------", GRAY)) - ); - } - - return resolver().get("proxy.party.create.button").clickEvent(ClickEvent.runCommand("/party create")); - }; - - public final static ParameterizedMessage1 PARTY_INVITE_RECEIVED = (username) -> join( - newlines(), - resolver().get("proxy.party.receiver_invite_query.query", LanguageResolver.tagHandler("username", username)), - join( - JoinConfiguration.separator(space()), - text("["+ACCEPT+"]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.receiver_invite_query.hover.accept"))).clickEvent(ClickEvent.runCommand("/party invites "+username+" accept")), - text("["+IGNORE+"]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.party.receiver_invite_query.hover.ignore"))).clickEvent(ClickEvent.runCommand("/party invites "+username+" ignore")) - ) - ); - - public final static Component PARTY_USAGE_INVITES = text(USAGE+": /party invites ",RED); - - public final static Component PARTY_USAGE_INVITE = text(USAGE+": /party invite ",RED); - - public final static Component PARTY_USAGE_KICK = text(USAGE+": /party kick ",RED); - - public final static Component PARTY_USAGE_PROMOTE = text(USAGE+": /party promote ",RED); - - public final static Component PARTY_DISBANDED = resolver().get("proxy.party.disbanded"); - public final static Component PARTY_JOINED_SELF = resolver().get("proxy.party.party_joined_self"); - public final static Component PARTY_INVITE_NO_DOUBLE_DIPPING = resolver().get("proxy.party.invite.no_double_dipping"); - public final static Component PARTY_INVITE_EXPIRED = resolver().get("proxy.party.invite.expired"); - public final static ParameterizedMessage1 PARTY_INVITE_TARGET_NOT_ONLINE = (username) -> - resolver().get("proxy.party.invite.target_not_online", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 PARTY_JOINED = (username) -> - resolver().get("proxy.party.party_joined", LanguageResolver.tagHandler("username", username)); - public final static Component PARTY_FOLLOWING_KICKED_GENERIC = resolver().get("proxy.party.following_kicked.generic"); - public final static Component PARTY_FOLLOWING_KICKED_SERVER_FULL = resolver().get("proxy.party.following_kicked.server_full"); - public final static Component PARTY_FOLLOWING_FAILED_GENERIC = resolver().get("proxy.party.following_failed.generic"); - public final static Component PARTY_FOLLOWING_FAILED_SERVER_FULL = resolver().get("proxy.party.following_failed.server_full"); - public final static ParameterizedMessage1 PARTY_INVITE_SENT = (username) -> resolver().get( - "proxy.party.invite.sent", - LanguageResolver.tagHandler("username", username) - ); - public final static Component PARTY_INVITE_NOT_ONLINE = resolver().get("proxy.party.invite.not_online"); - public final static Component PARTY_INVITE_FRIENDS_ONLY = resolver().get("proxy.party.invite.friends_only"); - public final static Component PARTY_INVITE_SELF_INVITE = resolver().get("proxy.party.invite.self_invite"); - public final static ParameterizedMessage1 PARTY_INVITE_ALREADY_A_MEMBER = (username) -> resolver().get( - "proxy.party.invite.already_a_member", - LanguageResolver.tagHandler("username", username) - ); - public final static Component PARTY_CREATED = resolver().get("proxy.party.created"); - public final static Component PARTY_KICKED = resolver().get("proxy.party.kicked"); - public final static Component PARTY_PROMOTED = resolver().get("proxy.party.promoted"); - public final static Component NO_PARTY = resolver().get("proxy.party.no_party"); - public final static ParameterizedMessage1 PARTY_NO_MEMBER = (username) -> resolver().get( - "proxy.party.no_member", - LanguageResolver.tagHandler("username", username) - ); - public final static Component PARTY_LEFT_SELF = resolver().get("proxy.party.left_self"); - public final static Component PARTY_CREATE_ALREADY_IN_PARTY = resolver().get("proxy.party.create.already_in_party"); - public final static Component PARTY_CREATE_NO_SERVER = resolver().get("proxy.party.create.no_server"); - public final static ParameterizedMessage1 PARTY_STATUS_PROMOTED = (player) -> resolver().get( - "proxy.party.status_promoted", - LanguageResolver.tagHandler("username", player.getUsername()) - ); - public final static Component PARTY_DEMOTED = resolver().get("proxy.party.demoted"); - public final static Component PARTY_ALREADY_LEADER = resolver().get("proxy.party.already_leader"); - public final static Component PARTY_SELF_KICK = resolver().get("proxy.party.self_kick"); - public final static Component PARTY_ONLY_LEADER_CAN_DISBAND = resolver().get("proxy.party.only_leader_can.disband"); - public final static Component PARTY_ONLY_LEADER_CAN_SWITCH = resolver().get("proxy.party.only_leader_can.switch"); - public final static Component PARTY_ONLY_LEADER_CAN_KICK = resolver().get("proxy.party.only_leader_can.kick"); - public final static Component PARTY_ONLY_LEADER_CAN_PROMOTE = resolver().get("proxy.party.only_leader_can.promote"); - public final static Component PARTY_ONLY_LEADER_CAN_INVITE = resolver().get("proxy.party.only_leader_can.invite"); - public final static ParameterizedMessage1 PARTY_NO_INVITE = (sender) -> resolver().get("proxy.party.invite.no_invite", LanguageResolver.tagHandler("username", sender)); - public final static ParameterizedMessage1 PARTY_IGNORE_INVITE = (sender) -> resolver().get("proxy.party.invite.ignore", LanguageResolver.tagHandler("username", sender)); - - - public final static String PARTY_INJECTED_ONLY_LEADER_CAN_INVITE = resolver().getRaw("proxy.party.injected_error.only_leader_can_invite"); - public final static String PARTY_INJECTED_FRIENDS_RESTRICTION_CONFLICT = resolver().getRaw("proxy.party.injected_error.friends_restriction_conflict"); - public final static String PARTY_INJECTED_FRIENDS_RESTRICTION = resolver().getRaw("proxy.party.injected_error.friends_restriction"); - public final static String PARTY_INJECTED_ACKNOWLEDGED = resolver().getRaw("proxy.party.injected_error.acknowledged"); - public final static String PARTY_INJECTED_EXPIRED_INVITE = resolver().getRaw("proxy.party.injected_error.expired_invite"); - public final static String PARTY_INJECTED_NO_SENDER = resolver().getRaw("proxy.party.injected_error.no_sender"); - public final static String PARTY_INJECTED_NO_TARGET = resolver().getRaw("proxy.party.injected_error.no_target"); - public final static String PARTY_INJECTED_INVALID_LEADER_INVITE = resolver().getRaw("proxy.party.injected_error.invalid_leader_invite"); - public final static String PARTY_INJECTED_INVALID_MEMBER_INVITE = resolver().getRaw("proxy.party.injected_error.invalid_member_invite"); - - public final static ParameterizedMessage1 FRIENDS_BOARD = (player) -> { - Tinder api = Tinder.get(); - FriendsService friendsService = api.services().friends().orElseThrow(); - int maxFriends = friendsService.settings().maxFriends(); - player.sendMessage(resolver().get("proxy.friends.panel.pending")); - - boolean isPartyEnabled = false; - try { - api.services().party().orElseThrow(); - isPartyEnabled = true; - } catch (Exception ignore) {} - boolean finalIsPartyEnabled = isPartyEnabled; - - boolean isFriendMessagingEnabled = friendsService.settings().allowMessaging(); - boolean canSeeFriendFamilies = friendsService.settings().showFamilies(); - - List friends = friendsService.friendStorage().get(player).orElse(List.of()); - - if(friends.size() != 0) { - final Component[] playersList = {text("")}; - - friends.forEach(friend -> { - playersList[0] = playersList[0].appendNewline(); - - playersList[0] = playersList[0].append(text("[x]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.unfriend", LanguageResolver.tagHandler("username",friend.username())))).clickEvent(ClickEvent.runCommand("/unfriend " + friend.username()))); - - playersList[0] = playersList[0].append(space()); - - - if(isFriendMessagingEnabled) { - playersList[0] = playersList[0].append(text("[m]", YELLOW).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.message", LanguageResolver.tagHandler("username",friend.username())))).clickEvent(ClickEvent.suggestCommand("/fm " + friend.username() + " "))); - playersList[0] = playersList[0].append(space()); - } - - if(finalIsPartyEnabled) { - playersList[0] = playersList[0].append(text("[p]", BLUE).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.invite_party", LanguageResolver.tagHandler("username",friend.username())))).clickEvent(ClickEvent.runCommand("/party invite " + friend.username() + " "))); - playersList[0] = playersList[0].append(space()); - } - - - com.velocitypowered.api.proxy.Player resolvedFriend = friend.resolve().orElse(null); - if(resolvedFriend == null) { - playersList[0] = playersList[0].append(text(friend.username(), GRAY).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.offline")))); - return; - } - if(resolvedFriend.getCurrentServer().orElse(null) == null) { - playersList[0] = playersList[0].append(text(friend.username(), GRAY).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.offline")))); - return; - } - - MCLoader mcLoader = new MCLoader.Reference(UUID.fromString(resolvedFriend.getCurrentServer().orElseThrow().getServerInfo().getName())).get(); - if(canSeeFriendFamilies) - playersList[0] = playersList[0].append(text(friend.username(), WHITE).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.currently_playing", LanguageResolver.tagHandler("family_name", mcLoader.family().displayName()))))); - else - playersList[0] = playersList[0].append(text(friend.username(), WHITE).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.online")))); - }); - - return join( - newlines(), - text("--------------", GRAY) - .append(resolver().get("proxy.friends.panel.header.main", LanguageResolver.tagHandler("friend_count", friends.size()), LanguageResolver.tagHandler("max_friends", maxFriends))) - .append(text("[+]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.panel.add_friend"))).clickEvent(ClickEvent.suggestCommand("/friends add "))) - .append(text(" --------------", GRAY)), - playersList[0], - space(), - text("---------------------------------------------", GRAY) - ); - } - - return join( - newlines(), - resolver().get("proxy.friends.panel.send_friend_request").clickEvent(ClickEvent.suggestCommand("/friends add ")) - ); - }; - - public final static ParameterizedMessage1 FRIEND_REQUEST = (sender) -> join( - newlines(), - resolver().get("proxy.friends.friend_request_query.query", LanguageResolver.tagHandler("username", sender.username())), - join( - JoinConfiguration.separator(space()), - text("["+ACCEPT+"]", GREEN).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.friend_request_query.hover.accept"))).clickEvent(ClickEvent.runCommand("/friends requests "+sender.username()+" accept")), - text("["+IGNORE+"]", RED).hoverEvent(HoverEvent.showText(resolver().get("proxy.friends.friend_request_query.hover.ignore"))).clickEvent(ClickEvent.runCommand("/friends requests "+sender.username()+" ignore")) - ) - ); - public final static ParameterizedMessage1 FRIEND_JOIN = (player) -> { - FriendsService friendsService = Tinder.get().services().friends().orElseThrow(); - - if(friendsService.settings().allowMessaging()) - return resolver().get("proxy.friends.friend_joined.resolved", LanguageResolver.tagHandler("username", player.username())); - else - return resolver().get("proxy.friends.friend_joined.regular", LanguageResolver.tagHandler("username", player.username())); - }; - public final static ParameterizedMessage1 FRIEND_LEAVE = (player) -> - resolver().get("proxy.friends.friend_leaves", LanguageResolver.tagHandler("username", player.username())); - public final static Message FRIEND_REQUEST_USAGE = () -> text(USAGE+": /friend requests ",RED); - public final static ParameterizedMessage1 BECOME_FRIENDS = (username) -> - resolver().get("proxy.friends.become_friends", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 FRIEND_REQUEST_SENT = (username) -> - resolver().get("proxy.friends.request.sent", LanguageResolver.tagHandler("username", username)); - public final static Component FRIEND_REQUEST_EXPIRED = resolver().get("proxy.friends.request.expired"); - public final static ParameterizedMessage1 FRIEND_REQUEST_IGNORE = (username) -> - resolver().get("proxy.friends.request.ignore", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 FRIEND_REQUEST_TARGET_NOT_ONLINE = (username) -> - resolver().get("proxy.friends.request.target_not_online", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 UNFRIEND_NOT_FRIENDS = (username) -> - resolver().get("proxy.friends.unfriend.not_friends", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 UNFRIEND_SUCCESS = (username) -> - resolver().get("proxy.friends.unfriend.success", LanguageResolver.tagHandler("username", username)); - public final static ParameterizedMessage1 FRIEND_REQUEST_ALREADY_FRIENDS = (username) -> - resolver().get("proxy.friends.request.already_friends", LanguageResolver.tagHandler("username", username)); - public final static Component FRIEND_MESSAGING_NO_SELF_MESSAGING = resolver().get("proxy.friends.messaging.no_self_messaging"); - public final static Component FRIEND_MESSAGING_ONLY_FRIENDS = resolver().get("proxy.friends.messaging.only_friends"); - public final static Component FRIEND_MESSAGING_REPLY = text(resolver().getRaw("proxy.friends.messaging.reply")); - public final static Component MAX_FRIENDS_REACHED = resolver().get("proxy.friends.max_friends_reached"); - public final static ParameterizedMessage1 FRIENDS_JOIN_MESSAGE_EMPTY = (friend_count) -> join( - newlines(), - resolver().getArray( - "proxy.friends.join_message_empty", - LanguageResolver.tagHandler("friend_count", friend_count) - ) - ); - public final static ParameterizedMessage1> FRIENDS_JOIN_MESSAGE = (requests) -> { - if(requests.size() > 8) - return FRIENDS_JOIN_MESSAGE_EMPTY.build(requests.size()); - - try { - AtomicReference from = new AtomicReference<>(""); - requests.forEach(request -> { - try { - from.set(from + ", " + request.sender().username()); - } catch (Exception ignore) {} - }); - - return join( - newlines(), - resolver().getArray( - "proxy.friends.join_message_countable", - LanguageResolver.tagHandler("friend_count", requests.size()), - LanguageResolver.tagHandler("friend_requests", from.get()) - ) - ); - } catch (Exception ignore) { - return FRIENDS_JOIN_MESSAGE_EMPTY.build(requests.size()); - } - }; - public final static String FRIEND_INJECTED_MAXED = resolver().getRaw("proxy.friends.injected_error.maxed"); - public final static String FRIEND_INJECTED_ACKNOWLEDGED = resolver().getRaw("proxy.friends.injected_error.acknowledged"); - public final static String FRIEND_INJECTED_INTERNAL_ERROR = resolver().getRaw("proxy.friends.injected_error.internal_error"); - - public final static Component NO_ONLINE_FRIENDS = resolver().get("proxy.friends.no_online_friends"); - public final static Component ONLINE_FRIENDS = resolver().get("proxy.friends.online_friends"); - - public final static Component UNFRIEND_USAGE = text(USAGE+": /unfriend ",RED); - public final static Component FM_USAGE = text(USAGE+": /fm ",RED); - - public final static ParameterizedMessage1 PING = uuidOrDisplayName -> text( - resolver().get("proxy.console_icons.ping") + " " + uuidOrDisplayName - ); - - public final static ParameterizedMessage2 REGISTRATION_REQUEST = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.attempting_registration") +" "+familyName - ); - - public final static ParameterizedMessage2 REGISTERED = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.registered") +" "+familyName - ); - - public final static ParameterizedMessage2 ERROR = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.error") +" "+familyName - ); - - public final static ParameterizedMessage2 UNREGISTRATION_REQUEST = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.attempting_unregistration") +" "+familyName - ); - - public final static ParameterizedMessage2 UNREGISTERED = (uuidOrDisplayName, familyName) -> text( - uuidOrDisplayName + " " + resolver().get("proxy.console_icons.unregistered") +" "+familyName - ); - - public final static ParameterizedMessage1 FAMILY_BALANCING = family -> text( - family.id() + " " + resolver().get("proxy.console_icons.family_balancing") - ); -}