commit 2713c781c025e95a79097776b4fdf501b2c8bd30 Author: LBuddyBoy <57610607+LBuddyBoy@users.noreply.github.com> Date: Fri Oct 13 22:00:56 2023 -0500 Initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.idea/$CACHE_FILE$ b/.idea/$CACHE_FILE$ new file mode 100644 index 0000000..6b3bb0d --- /dev/null +++ b/.idea/$CACHE_FILE$ @@ -0,0 +1,422 @@ + + + + + + + + + AOP + + + Abstraction issuesJava + + + ActionScript specificJavaScript and TypeScript + + + Android + + + Angular + + + Ant + + + ArquillianJava + + + Assignment issuesGroovy + + + Assignment issuesJava + + + Assignment issuesJavaScript and TypeScript + + + Async code and promisesJavaScript and TypeScript + + + Batch Applications + + + Bidirectional TextInternationalizationLintAndroid + + + Bitwise operation issuesJavaScript and TypeScript + + + CDI (Contexts and Dependency Injection) + + + Class structureJava + + + Cloning issuesJava + + + Code maturityJava + + + Code quality toolsJavaScript and TypeScript + + + Code style issuesJava + + + Code style issuesJavaScript and TypeScript + + + CodePlugin DevKit + + + CodeSpring CoreSpring + + + Control flow issuesJava + + + Control flow issuesJavaScript and TypeScript + + + CorrectnessLintAndroid + + + DOM issuesJavaScript and TypeScript + + + Data flowGroovy + + + Data flowJava + + + Data flowJavaScript and TypeScript + + + Declaration redundancyJava + + + ECMAScript 6 migration aidsJavaScript and TypeScript + + + EditorConfig + + + EmbeddedPerformanceJava + + + EncapsulationJava + + + Error handlingJava + + + Flow type checkerJavaScript and TypeScript + + + FreeMarker + + + Function metricsJavaScript and TypeScript + + + GeneralJavaScript and TypeScript + + + Google Web Toolkit + + + Groovy + + + Guice + + + HTML + + + IconsUsabilityLintAndroid + + + Imports and dependenciesJavaScript and TypeScript + + + Inheritance issuesJava + + + Internationalization + + + InternationalizationLintAndroid + + + InteroperabilityLintAndroid + + + JBoss Seam + + + JPA + + + JSP + + + JUnitJava + + + JVM languages + + + Java + + + Java 10Java language level migration aidsJava + + + Java 5Java language level migration aidsJava + + + Java 7Java language level migration aidsJava + + + Java 8Java language level migration aidsJava + + + Java EE + + + Java interop issuesKotlin + + + Java language level issuesJava + + + Java language level migration aidsJava + + + JavaFX + + + JavaScript and TypeScript + + + Kotlin + + + Kotlin Android + + + Kotlin InteroperabilityInteroperabilityLintAndroid + + + Language injection + + + LintAndroid + + + LintLintAndroid + + + LoggingJava + + + MemoryJava + + + MessagesCorrectnessLintAndroid + + + Method metricsJava + + + Micronaut + + + Naming conventionsGroovy + + + Naming conventionsJava + + + Naming conventionsJavaScript and TypeScript + + + Node.jsJavaScript and TypeScript + + + Nullability problemsProbable bugsJava + + + Numeric issuesJava + + + Other problemsKotlin + + + OtherGroovy + + + Pattern validation + + + PerformanceJava + + + PerformanceLintAndroid + + + Plugin DevKit + + + PortabilityJava + + + Potentially confusing code constructsGroovy + + + Potentially confusing code constructsJavaScript and TypeScript + + + Potentially undesirable code constructsJavaScript and TypeScript + + + Probable bugsGroovy + + + Probable bugsJava + + + Probable bugsJavaScript and TypeScript + + + Probable bugsKotlin + + + Proofreading + + + Quarkus + + + RESTful Web Service (JAX-RS) + + + Reactive Streams + + + ReactorReactive Streams + + + Redundant constructsKotlin + + + Reflective accessJava + + + SQL + + + Serialization issuesJava + + + Sponge + + + Spring + + + Spring AOPSpring + + + Spring CoreSpring + + + Spring DataSpring + + + Spring MVCSpring + + + Spring Web FlowSpring + + + Style issuesKotlin + + + StyleGroovy + + + Switch statement issuesJavaScript and TypeScript + + + TestNGJava + + + Threading issuesGroovy + + + Threading issuesJava + + + Try statement issuesJavaScript and TypeScript + + + TypeScriptJavaScript and TypeScript + + + TypographyUsabilityLintAndroid + + + UI form + + + Unit testingJavaScript and TypeScript + + + Unused symbolsJavaScript and TypeScript + + + UsabilityLintAndroid + + + Validity issuesJavaScript and TypeScript + + + Velocity + + + Verbose or redundant code constructsJava + + + VisibilityJava + + + Web Services + + + WebSocket + + + XML + + + XMLSpring CoreSpring + + + XPath + + + + + FormSpellChecking + + + + + + \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/LBuddyBoy Development.iml b/.idea/LBuddyBoy Development.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/LBuddyBoy Development.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..e442615 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,102 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..e5601b9 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + mongo + true + com.dbschema.MongoJdbcDriver + mongodb://localhost:27017 + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..30bab2a --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..3724819 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6cd5fbf --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..d176457 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..7cece1d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/saveactions_settings.xml b/.idea/saveactions_settings.xml new file mode 100644 index 0000000..3828093 --- /dev/null +++ b/.idea/saveactions_settings.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..c2746a5 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Bunkers/.idea/.gitignore b/Bunkers/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/Bunkers/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/Bunkers/.idea/compiler.xml b/Bunkers/.idea/compiler.xml new file mode 100644 index 0000000..092dcbf --- /dev/null +++ b/Bunkers/.idea/compiler.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/.idea/encodings.xml b/Bunkers/.idea/encodings.xml new file mode 100644 index 0000000..2341fa2 --- /dev/null +++ b/Bunkers/.idea/encodings.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/.idea/jarRepositories.xml b/Bunkers/.idea/jarRepositories.xml new file mode 100644 index 0000000..32ab6e7 --- /dev/null +++ b/Bunkers/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/.idea/misc.xml b/Bunkers/.idea/misc.xml new file mode 100644 index 0000000..3469ed4 --- /dev/null +++ b/Bunkers/.idea/misc.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/.idea/uiDesigner.xml b/Bunkers/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/Bunkers/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/Bunkers.iml b/Bunkers/Bunkers.iml new file mode 100644 index 0000000..7caaa8e --- /dev/null +++ b/Bunkers/Bunkers.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/.idea/.gitignore b/Bunkers/BunkersCommunicator/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/Bunkers/BunkersCommunicator/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Bunkers/BunkersCommunicator/.idea/compiler.xml b/Bunkers/BunkersCommunicator/.idea/compiler.xml new file mode 100644 index 0000000..ede8d30 --- /dev/null +++ b/Bunkers/BunkersCommunicator/.idea/compiler.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/.idea/discord.xml b/Bunkers/BunkersCommunicator/.idea/discord.xml new file mode 100644 index 0000000..30bab2a --- /dev/null +++ b/Bunkers/BunkersCommunicator/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/.idea/jarRepositories.xml b/Bunkers/BunkersCommunicator/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/Bunkers/BunkersCommunicator/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/.idea/misc.xml b/Bunkers/BunkersCommunicator/.idea/misc.xml new file mode 100644 index 0000000..317892c --- /dev/null +++ b/Bunkers/BunkersCommunicator/.idea/misc.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/.idea/runConfigurations.xml b/Bunkers/BunkersCommunicator/.idea/runConfigurations.xml new file mode 100644 index 0000000..797acea --- /dev/null +++ b/Bunkers/BunkersCommunicator/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/.idea/saveactions_settings.xml b/Bunkers/BunkersCommunicator/.idea/saveactions_settings.xml new file mode 100644 index 0000000..3828093 --- /dev/null +++ b/Bunkers/BunkersCommunicator/.idea/saveactions_settings.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/.idea/uiDesigner.xml b/Bunkers/BunkersCommunicator/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/Bunkers/BunkersCommunicator/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/BunkersCommunicator.iml b/Bunkers/BunkersCommunicator/BunkersCommunicator.iml new file mode 100644 index 0000000..7ace91d --- /dev/null +++ b/Bunkers/BunkersCommunicator/BunkersCommunicator.iml @@ -0,0 +1,15 @@ + + + + + + + SPIGOT + + + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/dependency-reduced-pom.xml b/Bunkers/BunkersCommunicator/dependency-reduced-pom.xml new file mode 100644 index 0000000..b00e90c --- /dev/null +++ b/Bunkers/BunkersCommunicator/dependency-reduced-pom.xml @@ -0,0 +1,43 @@ + + + + Bunkers + dev.lbuddyboy + 1.0 + + 4.0.0 + com.steelpvp + BunkersCommunicator + 1.0 + + + + maven-compiler-plugin + + 8 + 8 + -parameters + + + + maven-shade-plugin + 2.4.3 + + + package + + shade + + + + + + + + 1.8 + 1.8 + UTF-8 + UTF-8 + + + diff --git a/Bunkers/BunkersCommunicator/pom.xml b/Bunkers/BunkersCommunicator/pom.xml new file mode 100644 index 0000000..5cc3e71 --- /dev/null +++ b/Bunkers/BunkersCommunicator/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + + Bunkers + dev.lbuddyboy + 1.0 + + + com.steelpvp + BunkersCommunicator + 1.0 + + + UTF-8 + UTF-8 + 1.8 + 1.8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + -parameters + + + + org.apache.maven.plugins + maven-shade-plugin + 2.4.3 + + + package + + shade + + + + + + + + + + org.spigotmc + spigot-api + 1.19.4-R0.1-SNAPSHOT + + + org.mongodb + mongo-java-driver + 3.12.10 + + + com.google.code.gson + gson + 2.8.6 + compile + + + org.projectlombok + lombok + 1.18.26 + + + org.jetbrains + annotations + 23.0.0 + + + redis.clients + jedis + 2.9.0 + + + + \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/BunkersCom.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/BunkersCom.java new file mode 100644 index 0000000..f6ee294 --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/BunkersCom.java @@ -0,0 +1,40 @@ +package dev.lbuddyboy.communicate; + +import dev.lbuddyboy.communicate.database.mongo.MongoHandler; +import dev.lbuddyboy.communicate.database.redis.RedisHandler; +import dev.lbuddyboy.communicate.profile.ProfileHandler; +import lombok.Getter; +import lombok.Setter; +import org.bukkit.plugin.java.JavaPlugin; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 14/04/2022 / 4:16 PM + * BunkersCommunicator / PACKAGE_NAME + */ + +@Getter +public class BunkersCom extends JavaPlugin { + + @Getter private static BunkersCom instance; + @Setter private List bunkersGames; + private MongoHandler mongoHandler; + private RedisHandler redisHandler; + private ProfileHandler profileHandler; + + @Override + public void onEnable() { + instance = this; + + this.saveDefaultConfig(); + + this.bunkersGames = new ArrayList<>(); + this.mongoHandler = new MongoHandler(); + this.redisHandler = new RedisHandler(this); + this.profileHandler = new ProfileHandler(); + + } +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/BunkersGame.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/BunkersGame.java new file mode 100644 index 0000000..701ffb2 --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/BunkersGame.java @@ -0,0 +1,27 @@ +package dev.lbuddyboy.communicate; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 14/04/2022 / 4:21 PM + * BunkersCommunicator / dev.lbuddyboy.communicate.database + */ + +@AllArgsConstructor +@Data +public class BunkersGame { + + private String name; + private int playersLeft; + private long startedAt; + private List teams; + private boolean ended; + private boolean kothActivated; + private int kothTime; + private GameState gameState; + +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/FinalGame.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/FinalGame.java new file mode 100644 index 0000000..aff5c3f --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/FinalGame.java @@ -0,0 +1,49 @@ +package dev.lbuddyboy.communicate; + +import com.google.gson.JsonObject; +import lombok.Data; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 14/04/2022 / 9:20 PM + * BunkersCommunicator / dev.lbuddyboy.communicate + */ + +@Data +public class FinalGame { + + private String server; + private String winner; + private String team; + private int kills, deaths; + private long startedAt, endedAt; + + public JsonObject serialize() { + JsonObject object = new JsonObject(); + + object.addProperty("server", this.server); + object.addProperty("winner", this.winner); + object.addProperty("team", this.team); + object.addProperty("kills", this.kills); + object.addProperty("deaths", this.deaths); + object.addProperty("startedAt", this.startedAt); + object.addProperty("endedAt", this.endedAt); + + return object; + } + + public static FinalGame deserialize(JsonObject object) { + FinalGame finalGame = new FinalGame(); + + finalGame.setServer(object.get("server").getAsString()); + finalGame.setWinner(object.get("winner").getAsString()); + finalGame.setTeam(object.get("team").getAsString()); + finalGame.setKills(object.get("kills").getAsInt()); + finalGame.setDeaths(object.get("deaths").getAsInt()); + finalGame.setStartedAt(object.get("startedAt").getAsLong()); + finalGame.setEndedAt(object.get("endedAt").getAsLong()); + + return finalGame; + } + +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/GameState.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/GameState.java new file mode 100644 index 0000000..8037876 --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/GameState.java @@ -0,0 +1,7 @@ +package dev.lbuddyboy.communicate; + +public enum GameState { + + WAITING, COUNTING, STARTING, ACTIVE, ENDING, ENDED + +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/Team.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/Team.java new file mode 100644 index 0000000..5fafc94 --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/Team.java @@ -0,0 +1,52 @@ +package dev.lbuddyboy.communicate; + +import lombok.AllArgsConstructor; +import lombok.Data; +import org.bukkit.ChatColor; + +import java.text.DecimalFormat; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 19/03/2022 / 7:09 PM + * SteelBunkers / com.steelpvp.bunkers.team + */ + +@Data +@AllArgsConstructor +public class Team { + + private final ChatColor color; + private final int maxDTR; + private double dtr; + + public String getDisplay() { + return this.color + ChatColor.BOLD.toString() + getName(); + } + + public String getName() { + if (color == ChatColor.RED) { + return "ʀᴇᴅ"; + } + if (color == ChatColor.YELLOW) { + return "ʏᴇʟʟᴏᴡ"; + } + if (color == ChatColor.GREEN) { + return "ɢʀᴇᴇɴ"; + } + if (color == ChatColor.BLUE) { + return "ʙʟᴜᴇ"; + } + + return "ᴄᴇɴᴛʀᴀʟ"; + } + + public String getDTRFormatted() { + return new DecimalFormat("0.0").format(this.dtr); + } + + public boolean isRaidable() { + return this.dtr < 0; + } + +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/mongo/MongoHandler.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/mongo/MongoHandler.java new file mode 100644 index 0000000..4054c2f --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/mongo/MongoHandler.java @@ -0,0 +1,77 @@ +package dev.lbuddyboy.communicate.database.mongo; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.mongodb.*; +import com.mongodb.client.MongoClients; +import com.mongodb.client.MongoDatabase; +import dev.lbuddyboy.communicate.BunkersCom; +import lombok.Getter; +import org.bukkit.Bukkit; +import org.bukkit.configuration.file.FileConfiguration; + +import java.lang.reflect.Type; +import java.util.List; +import java.util.UUID; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 07/09/2021 / 4:39 PM + * lCore / me.lbuddyboy.core.dev.lbuddyboy.communicate.database + */ + +@Getter +public class MongoHandler { + + private MongoClient mongoClient; + private com.mongodb.client.MongoClient mongoClientURI; + private MongoDatabase mongoDatabase; + private final Gson GSON = new Gson(); + + private final Type LIST_STRING_TYPE = new TypeToken>() {}.getType(); + private final Type LIST_UUID_TYPE = new TypeToken>() {}.getType(); + + public MongoHandler() { +// if (!InventoryCache.init()) return; + + FileConfiguration config = BunkersCom.getInstance().getConfig(); + + if (config.getBoolean("mongo.use-uri")) { + + String username = config.getString("mongo.auth.username"); + String password = config.getString("mongo.auth.password"); + + String database = config.getString("mongo.database"); + String host = config.getString("mongo.host"); + int port = config.getInt("mongo.port"); + + ConnectionString connectionString = new ConnectionString("mongodb://" + username + ":" + password + "@" + host + ":" + port + "/" + database + "?authSource=admin"); + MongoClientSettings settings = MongoClientSettings.builder() + .applyConnectionString(connectionString) + .build(); + + this.mongoClientURI = MongoClients.create(settings); + this.mongoDatabase = mongoClientURI.getDatabase(database); + return; + } + + boolean auth = config.getBoolean("mongo.auth.enabled"); + String username = config.getString("mongo.auth.username"); + String password = config.getString("mongo.auth.password"); + + String database = config.getString("mongo.database"); + String host = config.getString("mongo.host"); + int port = config.getInt("mongo.port"); + + if (!auth) { + mongoClient = new MongoClient(host, port); + } else { + mongoClient = new MongoClient(new ServerAddress(host, port), MongoCredential.createCredential(username, database, password.toCharArray()), + MongoClientOptions.builder().build()); + + } + mongoDatabase = this.mongoClient.getDatabase(database); + Bukkit.getConsoleSender().sendMessage("Successfully connected the Mongo Database"); + } + +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/JedisPacket.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/JedisPacket.java new file mode 100644 index 0000000..69d1ba7 --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/JedisPacket.java @@ -0,0 +1,19 @@ +package dev.lbuddyboy.communicate.database.redis; + +import dev.lbuddyboy.communicate.BunkersCom; + +public interface JedisPacket { + + default BunkersCom getPlugin() { + return BunkersCom.getInstance(); + } + + void onReceive(); + + String getID(); + + default void send() { + getPlugin().getRedisHandler().sendToAll(this); + } +} + diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/RedisCommand.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/RedisCommand.java new file mode 100644 index 0000000..ccd5a19 --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/RedisCommand.java @@ -0,0 +1,8 @@ +package dev.lbuddyboy.communicate.database.redis; + +import redis.clients.jedis.Jedis; + +public interface RedisCommand { + T execute(Jedis var1); +} + diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/RedisHandler.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/RedisHandler.java new file mode 100644 index 0000000..e69bba7 --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/RedisHandler.java @@ -0,0 +1,108 @@ +package dev.lbuddyboy.communicate.database.redis; + +import com.google.gson.Gson; +import dev.lbuddyboy.communicate.BunkersCom; +import dev.lbuddyboy.communicate.database.redis.sub.JedisSubscriber; +import lombok.Getter; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; +import redis.clients.jedis.JedisPoolConfig; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 07/09/2021 / 2:44 PM + * BuddyLibs / me.lbuddyboy.core.dev.lbuddyboy.communicate.database.redis + */ + +@Getter +public class RedisHandler { + + @Getter private static final Gson GSON = new Gson(); + private static BunkersCom instance; + + public RedisHandler(BunkersCom instance) { + RedisHandler.instance = instance; + + connect(); + } + + private static final String GLOBAL_MESSAGE_CHANNEL = "JedisPacket:All"; + static final String PACKET_MESSAGE_DIVIDER = "||"; + + public static void connect() { + JedisPool connectTo = new JedisPool(new JedisPoolConfig(), + instance.getConfig().getString("redis.host"), instance.getConfig().getInt("redis.port"), 20000, + (instance.getConfig().getString("redis.auth.password").isEmpty() ? null : instance.getConfig().getString("redis.auth.password")), + instance.getConfig().getInt("redis.channel-id", 0)); + + Thread subscribeThread = new Thread(() -> { + while (true) { + try { + Jedis jedis = connectTo.getResource(); + Throwable throwable = null; + try { + JedisSubscriber pubSub = new JedisSubscriber(); + jedis.subscribe(pubSub, GLOBAL_MESSAGE_CHANNEL); + } catch (Throwable pubSub) { + throwable = pubSub; + throw pubSub; + } finally { + if (jedis == null) continue; + if (throwable != null) { + try { + jedis.close(); + } catch (Throwable pubSub) { + throwable.addSuppressed(pubSub); + } + continue; + } + jedis.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }, "lCore - Packet Subscribe Thread"); + subscribeThread.setDaemon(true); + subscribeThread.start(); + } + + public void sendToAll(JedisPacket packet) { + JedisPool jedisPool = new JedisPool(new JedisPoolConfig(), + instance.getConfig().getString("redis.host"), instance.getConfig().getInt("redis.port"), 20000, + (instance.getConfig().getString("redis.auth.password").isEmpty() ? null : instance.getConfig().getString("redis.auth.password")), + instance.getConfig().getInt("redis.channel-id", 0)); + + new Thread(() -> { + try (Jedis jedis = jedisPool.getResource()) { + String encodedPacket = packet.getClass().getName() + "||" + GSON.toJson(packet); + jedis.publish(GLOBAL_MESSAGE_CHANNEL, encodedPacket); + } + }).start(); + } + + public static T runRedisCommand(RedisCommand redisCommand) { + JedisPool jedisPool = new JedisPool(new JedisPoolConfig(), + instance.getConfig().getString("redis.host"), instance.getConfig().getInt("redis.port"), 20000, + (instance.getConfig().getString("redis.auth.password").isEmpty() ? null : instance.getConfig().getString("redis.auth.password")), + instance.getConfig().getInt("redis.channel-id", 0)); + Jedis jedis = jedisPool.getResource(); + + T result = null; + try { + result = redisCommand.execute(jedis); + } catch (Exception e) { + e.printStackTrace(); + if (jedis != null) { + jedisPool.getResource(); + jedis = null; + } + } finally { + if (jedis != null) { + jedisPool.getResource(); + } + } + return result; + } + +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/packets/BunkersUpdatePacket.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/packets/BunkersUpdatePacket.java new file mode 100644 index 0000000..d170c0f --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/packets/BunkersUpdatePacket.java @@ -0,0 +1,30 @@ +package dev.lbuddyboy.communicate.database.redis.packets; + +import dev.lbuddyboy.communicate.BunkersCom; +import dev.lbuddyboy.communicate.BunkersGame; +import dev.lbuddyboy.communicate.database.redis.JedisPacket; +import lombok.AllArgsConstructor; + +import java.util.List; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 14/04/2022 / 4:25 PM + * BunkersCommunicator / dev.lbuddyboy.communicate.database.redis.packets + */ + +@AllArgsConstructor +public class BunkersUpdatePacket implements JedisPacket { + + private List games; + + @Override + public void onReceive() { + BunkersCom.getInstance().setBunkersGames(this.games); + } + + @Override + public String getID() { + return "Bunkers Game Update"; + } +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/packets/UserUpdatePacket.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/packets/UserUpdatePacket.java new file mode 100644 index 0000000..42e8e4a --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/packets/UserUpdatePacket.java @@ -0,0 +1,33 @@ +package dev.lbuddyboy.communicate.database.redis.packets; + +import dev.lbuddyboy.communicate.BunkersCom; +import dev.lbuddyboy.communicate.database.redis.JedisPacket; +import dev.lbuddyboy.communicate.profile.Profile; +import lombok.AllArgsConstructor; +import org.bukkit.Bukkit; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 20/12/2021 / 1:20 AM + * lCore-Premium / me.lbuddyboy.core.database.redis.packets + */ + +@AllArgsConstructor +public class UserUpdatePacket implements JedisPacket { + + private Profile newProfile; + + @Override + public void onReceive() { + if (Bukkit.getPlayer(newProfile.getUniqueId()) != null) return; + + Bukkit.getScheduler().runTaskAsynchronously(BunkersCom.getInstance(), () -> { + BunkersCom.getInstance().getProfileHandler().getProfiles().put(newProfile.getUniqueId(), newProfile); + }); + } + + @Override + public String getID() { + return "User Update"; + } +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/sub/JedisSubscriber.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/sub/JedisSubscriber.java new file mode 100644 index 0000000..3471252 --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/database/redis/sub/JedisSubscriber.java @@ -0,0 +1,29 @@ +package dev.lbuddyboy.communicate.database.redis.sub; + +import com.google.gson.Gson; +import dev.lbuddyboy.communicate.database.redis.JedisPacket; +import lombok.NoArgsConstructor; +import lombok.SneakyThrows; + +@NoArgsConstructor +public class JedisSubscriber extends redis.clients.jedis.JedisPubSub { + + @SneakyThrows + @Override + public void onMessage(String channel, String message) { + Class packetClass; + int packetMessageSplit = message.indexOf("||"); + String packetClassStr = message.substring(0, packetMessageSplit); + String messageJson = message.substring(packetMessageSplit + "||".length()); + try { + packetClass = Class.forName(packetClassStr); + } catch (ClassNotFoundException ignored) { + return; + } + JedisPacket packet = (JedisPacket) new Gson().fromJson(messageJson, packetClass); + if (packet != null) { + packet.onReceive(); + } + } +} + diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/profile/Profile.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/profile/Profile.java new file mode 100644 index 0000000..675d0df --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/profile/Profile.java @@ -0,0 +1,110 @@ +package dev.lbuddyboy.communicate.profile; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.mongodb.client.model.Filters; +import com.mongodb.client.model.ReplaceOptions; +import dev.lbuddyboy.communicate.BunkersCom; +import dev.lbuddyboy.communicate.FinalGame; +import lombok.Data; +import lombok.Getter; +import org.bson.Document; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 23/09/2021 / 2:24 AM + * LBuddyBoy Development / me.lbuddyboy.core.profile + */ + +@Data +public class Profile { + + @Getter + private static final JsonParser jsonParser = new JsonParser(); + + private final UUID uniqueId; + private String name; + private List gameHistory; + private int oresMined, kills, deaths, wins, kothCaptures; + + private boolean loaded; + + public Profile(UUID uniqueId) { + this.uniqueId = uniqueId; + this.name = Bukkit.getOfflinePlayer(uniqueId).getName(); + this.gameHistory = new ArrayList<>(); + + load(); + } + + public void load() { + + Document document = BunkersCom.getInstance().getMongoHandler().getMongoDatabase().getCollection("profiles").find(Filters.eq("uniqueId", this.uniqueId.toString())).first(); + + if (document == null) { + System.out.println("Detected a null profile."); + Player player = Bukkit.getPlayer(this.uniqueId); + if (player != null) { + Bukkit.getScheduler().runTaskLater(BunkersCom.getInstance(), () -> player.kickPlayer("Failed to load your profile"), 10); + } + return; + } + + if (document.containsKey("oresMined")) { + this.oresMined = document.getInteger("oresMined"); + } + + if (document.containsKey("kills")) { + this.kills = document.getInteger("kills"); + } + + if (document.containsKey("deaths")) { + this.deaths = document.getInteger("deaths"); + } + + if (document.containsKey("wins")) { + this.wins = document.getInteger("wins"); + } + + if (document.containsKey("kothCaptures")) { + this.kothCaptures = document.getInteger("kothCaptures"); + } + + if (document.containsKey("gameHistory")) { + for (JsonElement jsonElement : jsonParser.parse(document.getString("gameHistory")).getAsJsonArray()) { + this.gameHistory.add(FinalGame.deserialize(jsonElement.getAsJsonObject())); + } + } + + loaded = true; + } + + public void save() { + Bukkit.getScheduler().runTaskAsynchronously(BunkersCom.getInstance(), () -> { + Document document = new Document(); + + document.put("uniqueId", this.uniqueId.toString()); + document.put("name", this.name); + document.put("oresMined", this.oresMined); + document.put("kills", this.kills); + document.put("deaths", this.deaths); + document.put("wins", this.wins); + document.put("kothCaptures", this.kothCaptures); + + JsonArray gameHistory = new JsonArray(); + this.gameHistory.forEach(game -> gameHistory.add(game.serialize())); + document.put("gameHistory", gameHistory.toString()); + + BunkersCom.getInstance().getMongoHandler().getMongoDatabase().getCollection("profiles").replaceOne(Filters.eq("uniqueId", this.uniqueId.toString()), document, new ReplaceOptions().upsert(true)); + }); + + } + +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/profile/ProfileHandler.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/profile/ProfileHandler.java new file mode 100644 index 0000000..f8dd217 --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/profile/ProfileHandler.java @@ -0,0 +1,46 @@ +package dev.lbuddyboy.communicate.profile; + +import com.mongodb.client.MongoCollection; +import dev.lbuddyboy.communicate.BunkersCom; +import lombok.Getter; +import org.bson.Document; +import org.bukkit.Bukkit; + +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 23/09/2021 / 2:31 AM + * LBuddyBoy Development / me.lbuddyboy.core.profile + */ + +@Getter +public class ProfileHandler { + + private Map profiles; + private MongoCollection collection; + + public ProfileHandler() { + this.profiles = new ConcurrentHashMap<>(); + this.collection = BunkersCom.getInstance().getMongoHandler().getMongoDatabase().getCollection("profiles"); + + Bukkit.getPluginManager().registerEvents(new ProfileListener(), BunkersCom.getInstance()); + + } + + public Profile getByUUID(UUID toLook) { + if (profiles.get(toLook) != null) { + return profiles.get(toLook); + } + + Profile profile = new Profile(toLook); + if (!profile.isLoaded()) { + return null; + } + + return profile; + } + +} diff --git a/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/profile/ProfileListener.java b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/profile/ProfileListener.java new file mode 100644 index 0000000..eedf26a --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/java/dev/lbuddyboy/communicate/profile/ProfileListener.java @@ -0,0 +1,54 @@ +package dev.lbuddyboy.communicate.profile; + +import dev.lbuddyboy.communicate.BunkersCom; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.AsyncPlayerPreLoginEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 23/09/2021 / 2:28 AM + * LBuddyBoy Development / me.lbuddyboy.core.profile + */ +public class ProfileListener implements Listener { + + @EventHandler + public void onAsyncPreLogin(AsyncPlayerPreLoginEvent event) { + + Profile profile = new Profile(event.getUniqueId()); + profile.setName(event.getName()); + + BunkersCom.getInstance().getProfileHandler().getProfiles().put(event.getUniqueId(), profile); + } + + @EventHandler + public void onJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + + Bukkit.getScheduler().runTaskAsynchronously(BunkersCom.getInstance(), () -> { + Profile profile = BunkersCom.getInstance().getProfileHandler().getProfiles().get(player.getUniqueId()); + + + profile.save(); + }); + + } + + @EventHandler + public void onQuit(PlayerQuitEvent event) { + Player player = event.getPlayer(); + + Bukkit.getScheduler().runTaskAsynchronously(BunkersCom.getInstance(), () -> { + + Profile profile = BunkersCom.getInstance().getProfileHandler().getByUUID(player.getUniqueId()); + + profile.save(); + BunkersCom.getInstance().getProfileHandler().getProfiles().remove(profile.getUniqueId()); + }); + } + +} diff --git a/Bunkers/BunkersCommunicator/src/main/resources/config.yml b/Bunkers/BunkersCommunicator/src/main/resources/config.yml new file mode 100644 index 0000000..d98369c --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/resources/config.yml @@ -0,0 +1,22 @@ + +redis: + enabled: false + host: "localhost" + port: 6379 + auth: + enabled: false + password: "" + channel-id: 0 + +mongo: + enabled: false + use-uri: false + uri: "" + host: "localhost" # dont use this if you have the uri + port: 27017 # dont use this if you have the uri + database: "lCore" # use this to determine the db name + auth: # dont use this if you have the uri + enabled: false # dont use this if you have the uri + username: "" # dont use this if you have the uri + password: "" # dont use this if you have the uri + auth-db: "" # dont use this if you have the uri diff --git a/Bunkers/BunkersCommunicator/src/main/resources/plugin.yml b/Bunkers/BunkersCommunicator/src/main/resources/plugin.yml new file mode 100644 index 0000000..d08848a --- /dev/null +++ b/Bunkers/BunkersCommunicator/src/main/resources/plugin.yml @@ -0,0 +1,5 @@ +name: BunkersCommunicator +main: dev.lbuddyboy.communicate.BunkersCom +version: 0.1 +author: LBuddyBoy +api-version: 1.19 \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/target/BunkersCommunicator-1.0.jar b/Bunkers/BunkersCommunicator/target/BunkersCommunicator-1.0.jar new file mode 100644 index 0000000..0e9b6d7 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/BunkersCommunicator-1.0.jar differ diff --git a/Bunkers/BunkersCommunicator/target/classes/config.yml b/Bunkers/BunkersCommunicator/target/classes/config.yml new file mode 100644 index 0000000..d98369c --- /dev/null +++ b/Bunkers/BunkersCommunicator/target/classes/config.yml @@ -0,0 +1,22 @@ + +redis: + enabled: false + host: "localhost" + port: 6379 + auth: + enabled: false + password: "" + channel-id: 0 + +mongo: + enabled: false + use-uri: false + uri: "" + host: "localhost" # dont use this if you have the uri + port: 27017 # dont use this if you have the uri + database: "lCore" # use this to determine the db name + auth: # dont use this if you have the uri + enabled: false # dont use this if you have the uri + username: "" # dont use this if you have the uri + password: "" # dont use this if you have the uri + auth-db: "" # dont use this if you have the uri diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/BunkersCom.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/BunkersCom.class new file mode 100644 index 0000000..df9f073 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/BunkersCom.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/BunkersGame.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/BunkersGame.class new file mode 100644 index 0000000..fa87f93 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/BunkersGame.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/FinalGame.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/FinalGame.class new file mode 100644 index 0000000..c32ac05 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/FinalGame.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/GameState.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/GameState.class new file mode 100644 index 0000000..e3f76b4 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/GameState.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/Team.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/Team.class new file mode 100644 index 0000000..658c3ca Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/Team.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/mongo/MongoHandler$1.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/mongo/MongoHandler$1.class new file mode 100644 index 0000000..a2e2e79 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/mongo/MongoHandler$1.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/mongo/MongoHandler$2.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/mongo/MongoHandler$2.class new file mode 100644 index 0000000..9c1afb8 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/mongo/MongoHandler$2.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/mongo/MongoHandler.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/mongo/MongoHandler.class new file mode 100644 index 0000000..936b628 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/mongo/MongoHandler.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/JedisPacket.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/JedisPacket.class new file mode 100644 index 0000000..159d1b2 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/JedisPacket.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/RedisCommand.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/RedisCommand.class new file mode 100644 index 0000000..8371a68 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/RedisCommand.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/RedisHandler.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/RedisHandler.class new file mode 100644 index 0000000..3e7a8c2 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/RedisHandler.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/packets/BunkersUpdatePacket.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/packets/BunkersUpdatePacket.class new file mode 100644 index 0000000..4808fd6 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/packets/BunkersUpdatePacket.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/packets/UserUpdatePacket.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/packets/UserUpdatePacket.class new file mode 100644 index 0000000..bb756c5 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/packets/UserUpdatePacket.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/sub/JedisSubscriber.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/sub/JedisSubscriber.class new file mode 100644 index 0000000..3f48a29 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/database/redis/sub/JedisSubscriber.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/profile/Profile.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/profile/Profile.class new file mode 100644 index 0000000..81a2249 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/profile/Profile.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/profile/ProfileHandler.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/profile/ProfileHandler.class new file mode 100644 index 0000000..eab364e Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/profile/ProfileHandler.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/profile/ProfileListener.class b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/profile/ProfileListener.class new file mode 100644 index 0000000..b873290 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/classes/dev/lbuddyboy/communicate/profile/ProfileListener.class differ diff --git a/Bunkers/BunkersCommunicator/target/classes/plugin.yml b/Bunkers/BunkersCommunicator/target/classes/plugin.yml new file mode 100644 index 0000000..d08848a --- /dev/null +++ b/Bunkers/BunkersCommunicator/target/classes/plugin.yml @@ -0,0 +1,5 @@ +name: BunkersCommunicator +main: dev.lbuddyboy.communicate.BunkersCom +version: 0.1 +author: LBuddyBoy +api-version: 1.19 \ No newline at end of file diff --git a/Bunkers/BunkersCommunicator/target/maven-archiver/pom.properties b/Bunkers/BunkersCommunicator/target/maven-archiver/pom.properties new file mode 100644 index 0000000..6b37012 --- /dev/null +++ b/Bunkers/BunkersCommunicator/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Jun 09 22:53:19 CDT 2023 +groupId=com.steelpvp +artifactId=BunkersCommunicator +version=1.0 diff --git a/Bunkers/BunkersCommunicator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/Bunkers/BunkersCommunicator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..b53c1bf --- /dev/null +++ b/Bunkers/BunkersCommunicator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,17 @@ +dev\lbuddyboy\communicate\BunkersGame.class +dev\lbuddyboy\communicate\database\redis\JedisPacket.class +dev\lbuddyboy\communicate\database\mongo\MongoHandler.class +dev\lbuddyboy\communicate\database\redis\packets\UserUpdatePacket.class +dev\lbuddyboy\communicate\GameState.class +dev\lbuddyboy\communicate\database\redis\sub\JedisSubscriber.class +dev\lbuddyboy\communicate\FinalGame.class +dev\lbuddyboy\communicate\database\mongo\MongoHandler$2.class +dev\lbuddyboy\communicate\database\mongo\MongoHandler$1.class +dev\lbuddyboy\communicate\database\redis\packets\BunkersUpdatePacket.class +dev\lbuddyboy\communicate\database\redis\RedisCommand.class +dev\lbuddyboy\communicate\profile\ProfileListener.class +dev\lbuddyboy\communicate\profile\ProfileHandler.class +dev\lbuddyboy\communicate\database\redis\RedisHandler.class +dev\lbuddyboy\communicate\BunkersCom.class +dev\lbuddyboy\communicate\profile\Profile.class +dev\lbuddyboy\communicate\Team.class diff --git a/Bunkers/BunkersCommunicator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/Bunkers/BunkersCommunicator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..ea87062 --- /dev/null +++ b/Bunkers/BunkersCommunicator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,15 @@ +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\BunkersGame.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\database\redis\packets\BunkersUpdatePacket.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\profile\ProfileHandler.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\profile\Profile.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\database\mongo\MongoHandler.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\database\redis\RedisCommand.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\database\redis\sub\JedisSubscriber.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\GameState.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\FinalGame.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\database\redis\JedisPacket.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\BunkersCom.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\database\redis\RedisHandler.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\database\redis\packets\UserUpdatePacket.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\profile\ProfileListener.java +D:\ServerFiles\MineSurge\Bunkers\BunkersCommunicator\src\main\java\dev\lbuddyboy\communicate\Team.java diff --git a/Bunkers/BunkersCommunicator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/Bunkers/BunkersCommunicator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/Bunkers/BunkersCommunicator/target/original-BunkersCommunicator-1.0.jar b/Bunkers/BunkersCommunicator/target/original-BunkersCommunicator-1.0.jar new file mode 100644 index 0000000..0cdeb45 Binary files /dev/null and b/Bunkers/BunkersCommunicator/target/original-BunkersCommunicator-1.0.jar differ diff --git a/Bunkers/BunkersHub/BunkersHub.iml b/Bunkers/BunkersHub/BunkersHub.iml new file mode 100644 index 0000000..fa63d4b --- /dev/null +++ b/Bunkers/BunkersHub/BunkersHub.iml @@ -0,0 +1,12 @@ + + + + + + + SPIGOT + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersHub/dependency-reduced-pom.xml b/Bunkers/BunkersHub/dependency-reduced-pom.xml new file mode 100644 index 0000000..f70b2ce --- /dev/null +++ b/Bunkers/BunkersHub/dependency-reduced-pom.xml @@ -0,0 +1,154 @@ + + + + Bunkers + dev.lbuddyboy + 1.0 + + 4.0.0 + BunkersHub + 1.0 + + + + maven-shade-plugin + 3.3.0 + + + package + + shade + + + + + co.aikar:acf-paper + + + + + + + + + + + viaversion-repo + https://repo.viaversion.com + + + + + org.spigotmc + spigot-api + 1.19.4-R0.1-SNAPSHOT + compile + + + com.viaversion + viaversion-api + LATEST + provided + + + org.projectlombok + lombok + 1.18.24 + compile + + + org.jetbrains + annotations + 23.0.0 + compile + + + dev.lbuddyboy + lSpoof + 1.0 + compile + + + dev.lbuddyboy.lqueue + lQueue-API + 1.0 + compile + + + me.clip + PlaceholderAPI + 1.0 + system + ${project.basedir}/libs/PlaceholderAPI-2.10.10-DEV-108.jar + + + me.signatured + EzQueue + 1.0 + system + ${project.basedir}/libs/queue/EzQueueSpigot.jar + + + me.joeloi + Portal + 1.0 + system + ${project.basedir}/libs/queue/portal-bukkit.jar + + + net.milkbowl + Vault + 1.0 + system + ${project.basedir}/libs/rank/Vault.jar + + + me.quartz.hestia + HestiaAPI + 1.0 + system + ${project.basedir}/libs/rank/HestiaAPI.jar + + + dev.brou + MizuAPI + 1.0 + system + ${project.basedir}/libs/rank/MizuAPI.jar + + + me.activad + AquaCoreAPI + 1.0 + system + ${project.basedir}/libs/rank/AquaCoreAPI.jar + + + me.lbuddyboy + lCore + 1.0 + system + ${project.basedir}/libs/rank/lCore-1.0.jar + + + dev.lbuddyboy + Flash + 1.0 + system + ${project.basedir}/libs/rank/Flash-Bukkit-1.0.jar + + + com.steelpvp + BunkersCommunicator + 1.0-SNAPSHOT + system + ${project.basedir}/libs/BunkersCommunicator-1.0.jar + + + + 8 + 8 + UTF-8 + UTF-8 + + diff --git a/Bunkers/BunkersHub/libs/BunkersCommunicator-1.0.jar b/Bunkers/BunkersHub/libs/BunkersCommunicator-1.0.jar new file mode 100644 index 0000000..7cd66a3 Binary files /dev/null and b/Bunkers/BunkersHub/libs/BunkersCommunicator-1.0.jar differ diff --git a/Bunkers/BunkersHub/libs/PlaceholderAPI-2.10.10-DEV-108.jar b/Bunkers/BunkersHub/libs/PlaceholderAPI-2.10.10-DEV-108.jar new file mode 100644 index 0000000..85c3828 Binary files /dev/null and b/Bunkers/BunkersHub/libs/PlaceholderAPI-2.10.10-DEV-108.jar differ diff --git a/Bunkers/BunkersHub/libs/queue/EzQueueSpigot.jar b/Bunkers/BunkersHub/libs/queue/EzQueueSpigot.jar new file mode 100644 index 0000000..096a268 Binary files /dev/null and b/Bunkers/BunkersHub/libs/queue/EzQueueSpigot.jar differ diff --git a/Bunkers/BunkersHub/libs/queue/portal-bukkit.jar b/Bunkers/BunkersHub/libs/queue/portal-bukkit.jar new file mode 100644 index 0000000..1b5df3c Binary files /dev/null and b/Bunkers/BunkersHub/libs/queue/portal-bukkit.jar differ diff --git a/Bunkers/BunkersHub/libs/rank/AquaCoreAPI.jar b/Bunkers/BunkersHub/libs/rank/AquaCoreAPI.jar new file mode 100644 index 0000000..a46620f Binary files /dev/null and b/Bunkers/BunkersHub/libs/rank/AquaCoreAPI.jar differ diff --git a/Bunkers/BunkersHub/libs/rank/Flash-Bukkit-1.0.jar b/Bunkers/BunkersHub/libs/rank/Flash-Bukkit-1.0.jar new file mode 100644 index 0000000..e63813c Binary files /dev/null and b/Bunkers/BunkersHub/libs/rank/Flash-Bukkit-1.0.jar differ diff --git a/Bunkers/BunkersHub/libs/rank/HestiaAPI.jar b/Bunkers/BunkersHub/libs/rank/HestiaAPI.jar new file mode 100644 index 0000000..d6d12f7 Binary files /dev/null and b/Bunkers/BunkersHub/libs/rank/HestiaAPI.jar differ diff --git a/Bunkers/BunkersHub/libs/rank/MizuAPI.jar b/Bunkers/BunkersHub/libs/rank/MizuAPI.jar new file mode 100644 index 0000000..2f3ad3b Binary files /dev/null and b/Bunkers/BunkersHub/libs/rank/MizuAPI.jar differ diff --git a/Bunkers/BunkersHub/libs/rank/Vault.jar b/Bunkers/BunkersHub/libs/rank/Vault.jar new file mode 100644 index 0000000..60aef0c Binary files /dev/null and b/Bunkers/BunkersHub/libs/rank/Vault.jar differ diff --git a/Bunkers/BunkersHub/libs/rank/lCore-1.0.jar b/Bunkers/BunkersHub/libs/rank/lCore-1.0.jar new file mode 100644 index 0000000..c59a737 Binary files /dev/null and b/Bunkers/BunkersHub/libs/rank/lCore-1.0.jar differ diff --git a/Bunkers/BunkersHub/pom.xml b/Bunkers/BunkersHub/pom.xml new file mode 100644 index 0000000..2054a85 --- /dev/null +++ b/Bunkers/BunkersHub/pom.xml @@ -0,0 +1,175 @@ + + + 4.0.0 + + + Bunkers + dev.lbuddyboy + 1.0 + + + BunkersHub + 1.0 + + + 8 + 8 + UTF-8 + UTF-8 + + + + + viaversion-repo + https://repo.viaversion.com + + + + + + org.spigotmc + spigot-api + 1.19.4-R0.1-SNAPSHOT + + + com.viaversion + viaversion-api + LATEST + provided + + + org.projectlombok + lombok + 1.18.24 + + + co.aikar + acf-paper + 0.5.1-SNAPSHOT + + + org.jetbrains + annotations + 23.0.0 + + + me.clip + PlaceholderAPI + 1.0 + system + ${project.basedir}/libs/PlaceholderAPI-2.10.10-DEV-108.jar + + + + + + me.signatured + EzQueue + 1.0 + system + ${project.basedir}/libs/queue/EzQueueSpigot.jar + + + + me.joeloi + Portal + 1.0 + system + ${project.basedir}/libs/queue/portal-bukkit.jar + + + + + + net.milkbowl + Vault + 1.0 + system + ${project.basedir}/libs/rank/Vault.jar + + + me.quartz.hestia + HestiaAPI + 1.0 + system + ${project.basedir}/libs/rank/HestiaAPI.jar + + + dev.brou + MizuAPI + 1.0 + system + ${project.basedir}/libs/rank/MizuAPI.jar + + + me.activad + AquaCoreAPI + 1.0 + system + ${project.basedir}/libs/rank/AquaCoreAPI.jar + + + me.lbuddyboy + lCore + 1.0 + system + ${project.basedir}/libs/rank/lCore-1.0.jar + + + dev.lbuddyboy + lSpoof + 1.0 + + + dev.lbuddyboy.lqueue + lQueue-API + 1.0 + + + dev.lbuddyboy + Flash + 1.0 + system + ${project.basedir}/libs/rank/Flash-Bukkit-1.0.jar + + + com.steelpvp + BunkersCommunicator + 1.0-SNAPSHOT + system + ${project.basedir}/libs/BunkersCommunicator-1.0.jar + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.3.0 + + + package + + shade + + + + + co.aikar:acf-paper + + + + + + + + + + \ No newline at end of file diff --git a/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/HistoryCommand.java b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/HistoryCommand.java new file mode 100644 index 0000000..47667ed --- /dev/null +++ b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/HistoryCommand.java @@ -0,0 +1,24 @@ +package dev.lbuddyboy.hub.command; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Default; +import dev.lbuddyboy.hub.games.GameHistoryMenu; +import dev.lbuddyboy.hub.games.GameProfileMenu; +import org.bukkit.entity.Player; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 22/09/2021 / 1:46 AM + * LBuddyBoy-Development / me.lbuddyboy.hub.command + */ + +@CommandAlias("gamehistory") +public class HistoryCommand extends BaseCommand { + + @Default + public static void enable(Player sender) { + new GameHistoryMenu().openMenu(sender); + } + +} diff --git a/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/PvPModeCommand.java b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/PvPModeCommand.java new file mode 100644 index 0000000..7d53b01 --- /dev/null +++ b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/PvPModeCommand.java @@ -0,0 +1,68 @@ +package dev.lbuddyboy.hub.command; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Default; +import dev.lbuddyboy.hub.lHub; +import dev.lbuddyboy.hub.util.CC; +import dev.lbuddyboy.hub.util.CompMaterial; +import dev.lbuddyboy.hub.util.ItemBuilder; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.metadata.FixedMetadataValue; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 22/09/2021 / 1:46 AM + * LBuddyBoy-Development / me.lbuddyboy.hub.command + */ + +@CommandAlias("pvpmode") +public class PvPModeCommand extends BaseCommand { + + @Default + public static void enable(Player sender) { + if (sender.hasMetadata("pvpmode")) { + sender.removeMetadata("pvpmode", lHub.getInstance()); + sender.sendMessage(CC.translate("&cPvP Mode is now disabled.")); + lHub.getInstance().getItemHandler().setItems(sender); + sender.teleport(lHub.getInstance().getSettingsHandler().getSpawnLocation()); + + for (Player online : Bukkit.getOnlinePlayers()) { + if (!online.hasMetadata("pvpmode")) continue; + + online.hidePlayer(sender); + sender.hidePlayer(online); + } + return; + } + sender.getInventory().clear(); + + sender.setMetadata("pvpmode", new FixedMetadataValue(lHub.getInstance(), true)); + sender.sendMessage(CC.translate("&aPvP Mode is now enabled.")); + + ItemStack[] armor = new ItemStack[4]; + + armor[3] = new ItemStack(Material.DIAMOND_HELMET); + armor[2] = new ItemStack(Material.LEATHER_CHESTPLATE); + armor[1] = new ItemStack(Material.LEATHER_LEGGINGS); + armor[0] = new ItemStack(Material.DIAMOND_BOOTS); + + sender.getInventory().setItem(0, new ItemStack(Material.DIAMOND_SWORD)); + sender.getInventory().setItem(8, new ItemBuilder(CompMaterial.RED_DYE.getMaterial()).setAmount(1).setData(CompMaterial.RED_DYE.getData()).setDisplayName("&c&lLeave PvP").create()); + sender.getInventory().setArmorContents(armor); + sender.getInventory().setHeldItemSlot(0); + sender.updateInventory(); + sender.teleport(lHub.getInstance().getSettingsHandler().getSpawnLocation()); + + for (Player online : Bukkit.getOnlinePlayers()) { + if (!online.hasMetadata("pvpmode")) continue; + + online.showPlayer(sender); + sender.showPlayer(online); + } + } + +} diff --git a/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/StatsCommand.java b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/StatsCommand.java new file mode 100644 index 0000000..b39a098 --- /dev/null +++ b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/StatsCommand.java @@ -0,0 +1,31 @@ +package dev.lbuddyboy.hub.command; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Default; +import dev.lbuddyboy.hub.games.GameProfileMenu; +import dev.lbuddyboy.hub.lHub; +import dev.lbuddyboy.hub.util.CC; +import dev.lbuddyboy.hub.util.CompMaterial; +import dev.lbuddyboy.hub.util.ItemBuilder; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.metadata.FixedMetadataValue; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 22/09/2021 / 1:46 AM + * LBuddyBoy-Development / me.lbuddyboy.hub.command + */ + +@CommandAlias("stats") +public class StatsCommand extends BaseCommand { + + @Default + public static void enable(Player sender) { + new GameProfileMenu().openMenu(sender); + } + +} diff --git a/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/lHubCommand.java b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/lHubCommand.java new file mode 100644 index 0000000..18095a8 --- /dev/null +++ b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/command/lHubCommand.java @@ -0,0 +1,56 @@ +package dev.lbuddyboy.hub.command; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Subcommand; +import dev.lbuddyboy.hub.lHub; +import dev.lbuddyboy.hub.lModule; +import dev.lbuddyboy.hub.util.CC; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.io.IOException; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 22/09/2021 / 1:46 AM + * LBuddyBoy-Development / me.lbuddyboy.hub.command + */ + +@CommandAlias("lhub|hubcore|lhubcore") +@CommandPermission("lhub.admin") +public class lHubCommand extends BaseCommand { + + @Subcommand("setspawn") + public void setspawn(Player sender) { + lHub.getInstance().getSettingsHandler().setSpawnLocation(sender.getLocation()); + Bukkit.getOnlinePlayers().forEach(player -> player.teleport(lHub.getInstance().getSettingsHandler().getSpawnLocation())); + + sender.sendMessage(CC.translate("&aSuccessfully set the new world spawn.")); + } + + @Subcommand("reload|rl") + @CommandPermission("lhub.admin") + public void reload(CommandSender sender) throws IOException { + + lHub.getInstance().getModules().forEach(lModule::save); + lHub.getInstance().getModules().forEach(lModule::reload); + + sender.sendMessage(CC.translate("&aSuccessfully reloaded all the configs.")); + } + + + @Subcommand("build|buildmode") + @CommandPermission("lhub.admin") + public void buildmode(Player sender) { + if (lHub.getInstance().getSettingsHandler().getBuildModes().contains(sender)) { + sender.sendMessage(CC.translate("&cYou have just %status% your build mode.".replaceAll("%status%", "disabled"))); + lHub.getInstance().getSettingsHandler().getBuildModes().remove(sender); + return; + } + sender.sendMessage(CC.translate("&aYou have just %status% your build mode.".replaceAll("%status%", "enabled"))); + lHub.getInstance().getSettingsHandler().getBuildModes().add(sender); + } +} diff --git a/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/config/Doc.java b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/config/Doc.java new file mode 100644 index 0000000..82315a7 --- /dev/null +++ b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/config/Doc.java @@ -0,0 +1,30 @@ +package dev.lbuddyboy.hub.config; + +import dev.lbuddyboy.hub.util.ConfigFile; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.util.Collections; +import java.util.List; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 22/09/2021 / 1:39 AM + * LBuddyBoy-Development / me.lbuddyboy.hub.config + */ +public class Doc extends ConfigFile { + + public Doc(String configName) { + super(configName); + } + + @Override + public YamlConfiguration getConfig() { + return getDoc().gc(); + } + + @Override + public List values() { + return Collections.emptyList(); + } + +} diff --git a/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/config/DocHandler.java b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/config/DocHandler.java new file mode 100644 index 0000000..ae9f6d6 --- /dev/null +++ b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/config/DocHandler.java @@ -0,0 +1,43 @@ +package dev.lbuddyboy.hub.config; + +import dev.lbuddyboy.hub.lHub; +import dev.lbuddyboy.hub.lModule; +import lombok.Getter; +import lombok.SneakyThrows; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 22/09/2021 / 1:40 AM + * LBuddyBoy-Development / me.lbuddyboy.hub.config + */ + +@Getter +public class DocHandler implements lModule { + + private Doc itemDoc; + private Doc settingsDoc; + private Doc scoreBoardDoc; + private Doc queueDoc; + + @Override + public void load(lHub plugin) { + this.itemDoc = new Doc("items"); + this.settingsDoc = new Doc("settings"); + this.scoreBoardDoc = new Doc("scoreboard"); + this.queueDoc = new Doc("queue"); + } + + @Override + public void unload(lHub plugin) { + + } + + @SneakyThrows + @Override + public void reload() { + this.itemDoc.getDoc().reloadConfig(); + this.settingsDoc.getDoc().reloadConfig(); + this.scoreBoardDoc.getDoc().reloadConfig(); + this.queueDoc.getDoc().reloadConfig(); + } +} diff --git a/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/games/GameHistoryMenu.java b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/games/GameHistoryMenu.java new file mode 100644 index 0000000..fd50a26 --- /dev/null +++ b/Bunkers/BunkersHub/src/main/java/dev/lbuddyboy/hub/games/GameHistoryMenu.java @@ -0,0 +1,70 @@ +package dev.lbuddyboy.hub.games; + +import dev.lbuddyboy.communicate.BunkersCom; +import dev.lbuddyboy.communicate.FinalGame; +import dev.lbuddyboy.communicate.profile.Profile; +import dev.lbuddyboy.hub.util.CC; +import dev.lbuddyboy.hub.util.ItemBuilder; +import dev.lbuddyboy.hub.util.TimeUtils; +import dev.lbuddyboy.hub.util.menu.Button; +import dev.lbuddyboy.hub.util.menu.paged.PagedMenu; +import org.bukkit.Material; +import org.bukkit.entity.Player; + +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author LBuddyBoy (lbuddyboy.me) + * 15/04/2022 / 7:24 AM + * Bunkers-Hub / services.xenlan.hub.games + */ +public class GameHistoryMenu extends PagedMenu { + + @Override + public String getPageTitle(Player player) { + return "Game History"; + } + + @Override + public List