From 1e1298c647ef642eb8b68b21ab76f6a3ddca4c14 Mon Sep 17 00:00:00 2001
From: len <40720638+destro174@users.noreply.github.com>
Date: Sun, 4 Apr 2021 17:48:59 +0200
Subject: [PATCH] initial commit
---
.gitignore | 38 +++
pom.xml | 51 ++++
src/main/java/com/liteflags/LiteFlags.java | 50 ++++
.../java/com/liteflags/auth/AuthTimer.java | 53 ++++
.../com/liteflags/auth/Authentication.java | 34 +++
.../java/com/liteflags/commands/AuthCMD.java | 4 +
.../java/com/liteflags/commands/FlagCMD.java | 283 ++++++++++++++++++
src/main/java/com/liteflags/data/Data.java | 4 +
.../com/liteflags/data/database/Database.java | 233 ++++++++++++++
.../data/database/DatabaseConnection.java | 47 +++
.../com/liteflags/data/database/Methods.java | 112 +++++++
.../com/liteflags/data/maps/MapCache.java | 11 +
.../java/com/liteflags/events/ChatEvent.java | 58 ++++
.../java/com/liteflags/events/LoginEvent.java | 43 +++
.../com/liteflags/events/LogoutEvent.java | 36 +++
.../java/com/liteflags/events/MoveEvent.java | 27 ++
.../java/com/liteflags/util/Utilities.java | 95 ++++++
src/main/resources/config.yml | 99 ++++++
src/main/resources/plugin.yml | 9 +
19 files changed, 1287 insertions(+)
create mode 100755 .gitignore
create mode 100644 pom.xml
create mode 100644 src/main/java/com/liteflags/LiteFlags.java
create mode 100644 src/main/java/com/liteflags/auth/AuthTimer.java
create mode 100644 src/main/java/com/liteflags/auth/Authentication.java
create mode 100644 src/main/java/com/liteflags/commands/AuthCMD.java
create mode 100644 src/main/java/com/liteflags/commands/FlagCMD.java
create mode 100644 src/main/java/com/liteflags/data/Data.java
create mode 100644 src/main/java/com/liteflags/data/database/Database.java
create mode 100644 src/main/java/com/liteflags/data/database/DatabaseConnection.java
create mode 100644 src/main/java/com/liteflags/data/database/Methods.java
create mode 100644 src/main/java/com/liteflags/data/maps/MapCache.java
create mode 100644 src/main/java/com/liteflags/events/ChatEvent.java
create mode 100644 src/main/java/com/liteflags/events/LoginEvent.java
create mode 100644 src/main/java/com/liteflags/events/LogoutEvent.java
create mode 100644 src/main/java/com/liteflags/events/MoveEvent.java
create mode 100644 src/main/java/com/liteflags/util/Utilities.java
create mode 100644 src/main/resources/config.yml
create mode 100644 src/main/resources/plugin.yml
diff --git a/.gitignore b/.gitignore
new file mode 100755
index 0000000..258d112
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,38 @@
+# Plugin
+.idea
+run
+
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# IntelliJ
+*.iml
+*.ipr
+*.iws
+.idea/
+out/
+
+# Maven
+target/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..bd38114
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,51 @@
+
+
+ 4.0.0
+
+ groupId
+ LiteFlags
+ 0.5
+
+
+ 11
+ 11
+
+
+ ${project.artifactId}
+ clean package install
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.5.1
+
+ 11
+ 11
+
+
+
+
+
+ src/main/resources
+
+
+
+
+
+
+ papermc
+ https://papermc.io/repo/repository/maven-public/
+
+
+
+
+ com.destroystokyo.paper
+ paper-api
+ 1.16.5-R0.1-SNAPSHOT
+ provided
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/liteflags/LiteFlags.java b/src/main/java/com/liteflags/LiteFlags.java
new file mode 100644
index 0000000..4bb6fd5
--- /dev/null
+++ b/src/main/java/com/liteflags/LiteFlags.java
@@ -0,0 +1,50 @@
+package com.liteflags;
+
+import com.liteflags.auth.AuthTimer;
+import com.liteflags.commands.FlagCMD;
+import com.liteflags.data.database.DatabaseConnection;
+import com.liteflags.events.ChatEvent;
+import com.liteflags.events.LoginEvent;
+import com.liteflags.events.LogoutEvent;
+import com.liteflags.events.MoveEvent;
+import java.sql.SQLException;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public class LiteFlags extends JavaPlugin {
+ private static LiteFlags instance;
+ public DatabaseConnection database;
+ public AuthTimer timer;
+
+ public void onEnable() {
+ instance = this;
+ this.saveDefaultConfig();
+ this.getCommand("flag").setExecutor(new FlagCMD(this));
+ this.getCommand("flaglist").setExecutor(new FlagCMD(this));
+ this.getServer().getPluginManager().registerEvents(new LoginEvent(this), this);
+ this.getServer().getPluginManager().registerEvents(new LogoutEvent(this), this);
+ this.getServer().getPluginManager().registerEvents(new ChatEvent(this), this);
+ this.getServer().getPluginManager().registerEvents(new MoveEvent(this), this);
+
+ try {
+ DatabaseConnection var10000 = this.database;
+ DatabaseConnection.initialize();
+ } catch (SQLException var2) {
+ this.getLogger().severe("*** Could not connect to the database. ***");
+ this.getLogger().severe("*** This plugin will be disabled. ***");
+ this.setEnabled(false);
+ var2.printStackTrace();
+ }
+
+ }
+
+ public void onDisable() {
+ }
+
+ public static LiteFlags getInstance() {
+ return instance;
+ }
+
+ public AuthTimer authTimer() {
+ return this.timer;
+ }
+}
diff --git a/src/main/java/com/liteflags/auth/AuthTimer.java b/src/main/java/com/liteflags/auth/AuthTimer.java
new file mode 100644
index 0000000..38d4dd9
--- /dev/null
+++ b/src/main/java/com/liteflags/auth/AuthTimer.java
@@ -0,0 +1,53 @@
+package com.liteflags.auth;
+
+import com.liteflags.LiteFlags;
+import com.liteflags.data.maps.MapCache;
+import com.liteflags.util.Utilities;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+
+public class AuthTimer {
+ public LiteFlags flags;
+ public static Map taskID = new HashMap();
+
+ public AuthTimer(LiteFlags flags) {
+ this.flags = flags;
+ }
+
+ public static void startTimer(final Player player) {
+ int tid = LiteFlags.getInstance().getServer().getScheduler().scheduleSyncRepeatingTask(LiteFlags.getInstance(), new Runnable() {
+ int timeRemaining = LiteFlags.getInstance().getConfig().getInt("Authenticate_Timer");
+
+ public void run() {
+ if (this.timeRemaining <= 0) {
+ if (player.hasPermission("liteflags.authentication.success")) {
+ AuthTimer.endTask(player);
+ } else {
+ player.sendMessage(Utilities.format(LiteFlags.getInstance().getConfig().getString("Messages.Authenticate").replace("%code%", (CharSequence)MapCache.reauthedPlayers.get(player.getUniqueId().toString()))));
+ Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), LiteFlags.getInstance().getConfig().getString("Authenticate_Timer_Command").replace("%player%", player.getName()).replace("%code%", (CharSequence)MapCache.reauthedPlayers.get(player.getUniqueId().toString())));
+ this.timeRemaining = LiteFlags.getInstance().getConfig().getInt("Authenticate_Timer");
+ }
+ } else if (player.hasPermission("liteflags.authentication.success")) {
+ AuthTimer.endTask(player);
+ } else {
+ --this.timeRemaining;
+ }
+
+ }
+ }, 0L, 20L);
+ Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), LiteFlags.getInstance().getConfig().getString("Authenticate_Timer_Command").replace("%player%", player.getName()).replace("%code%", (CharSequence)MapCache.reauthedPlayers.get(player.getUniqueId().toString())));
+ taskID.put(player.getUniqueId(), tid);
+ }
+
+ public static void endTask(Player player) {
+ if (taskID.containsKey(player.getUniqueId())) {
+ int tid = (Integer)taskID.get(player.getUniqueId());
+ LiteFlags.getInstance().getServer().getScheduler().cancelTask(tid);
+ taskID.remove(player.getUniqueId());
+ }
+
+ }
+}
diff --git a/src/main/java/com/liteflags/auth/Authentication.java b/src/main/java/com/liteflags/auth/Authentication.java
new file mode 100644
index 0000000..a8f1ef1
--- /dev/null
+++ b/src/main/java/com/liteflags/auth/Authentication.java
@@ -0,0 +1,34 @@
+package com.liteflags.auth;
+
+import com.liteflags.LiteFlags;
+import com.liteflags.data.maps.MapCache;
+import com.liteflags.util.Utilities;
+import java.util.Random;
+import java.util.UUID;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+
+public class Authentication {
+ public static String getAuthKey() {
+ String randChars = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789abcdefghijklmnopqrstuvwsyz";
+ StringBuilder salt = new StringBuilder();
+ Random rnd = new Random();
+
+ while(salt.length() < 6) {
+ int index = (int)(rnd.nextFloat() * (float)randChars.length());
+ salt.append(randChars.charAt(index));
+ }
+
+ return "." + salt.toString();
+ }
+
+ public static void checkAuthStatus(UUID uuid) {
+ Player player = Bukkit.getPlayer(uuid);
+ if (!player.hasPermission("liteflags.authentication.success")) {
+ MapCache.reauthedPlayers.put(player.getUniqueId().toString(), getAuthKey());
+ AuthTimer.startTimer(player);
+ player.sendMessage(Utilities.format(LiteFlags.getInstance().getConfig().getString("Messages.Authenticate").replace("%code%", (CharSequence)MapCache.reauthedPlayers.get(player.getUniqueId().toString()))));
+ }
+
+ }
+}
diff --git a/src/main/java/com/liteflags/commands/AuthCMD.java b/src/main/java/com/liteflags/commands/AuthCMD.java
new file mode 100644
index 0000000..1fa92f9
--- /dev/null
+++ b/src/main/java/com/liteflags/commands/AuthCMD.java
@@ -0,0 +1,4 @@
+package com.liteflags.commands;
+
+public class AuthCMD {
+}
diff --git a/src/main/java/com/liteflags/commands/FlagCMD.java b/src/main/java/com/liteflags/commands/FlagCMD.java
new file mode 100644
index 0000000..f70133b
--- /dev/null
+++ b/src/main/java/com/liteflags/commands/FlagCMD.java
@@ -0,0 +1,283 @@
+package com.liteflags.commands;
+
+import com.liteflags.LiteFlags;
+import com.liteflags.data.database.Database;
+import com.liteflags.data.database.Methods;
+import com.liteflags.data.maps.MapCache;
+import com.liteflags.util.Utilities;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import net.md_5.bungee.api.chat.ClickEvent;
+import net.md_5.bungee.api.chat.ComponentBuilder;
+import net.md_5.bungee.api.chat.HoverEvent;
+import net.md_5.bungee.api.chat.TextComponent;
+import net.md_5.bungee.api.chat.HoverEvent.Action;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.OfflinePlayer;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+public class FlagCMD implements CommandExecutor {
+ private LiteFlags flags;
+
+ public FlagCMD(LiteFlags flags) {
+ this.flags = flags;
+ }
+
+ public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
+ OfflinePlayer target;
+ String removeTimeLetter;
+ if (cmd.getName().equalsIgnoreCase("flag") && sender instanceof Player) {
+ if (sender.hasPermission("liteflags.staff")) {
+ if (args.length == 0) {
+ sender.sendMessage(ChatColor.RED + "Invalid command. /flag help");
+ }
+
+ if (args.length == 1 && args[0].equalsIgnoreCase("help")) {
+ sender.sendMessage(ChatColor.YELLOW + "/flaglist | /fl " + ChatColor.GRAY + "- Shows all the players with active flags");
+ sender.sendMessage(ChatColor.YELLOW + "/flaglist | /fl " + ChatColor.GRAY + "- Shows all flags a player has");
+ sender.sendMessage(ChatColor.YELLOW + "/flag