From f175c55280b2ff2a6f9d8e9e03b33091e347767f Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 8 Apr 2020 09:16:23 -0500 Subject: [PATCH] Added some new commands and made the rewards system fully functional, release stage; --- .idea/misc.xml | 2 +- .settings/org.eclipse.jdt.apt.core.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 9 +++ .settings/org.eclipse.m2e.core.prefs | 4 ++ .vscode/settings.json | 4 ++ .../.DS_Store | Bin 0 -> 6148 bytes pom.xml | 4 +- .../Commands/CommandPlaytime.java | 10 ++- .../Commands/CommandPlaytimeLeaderboard.java | 38 ++++++++++++ .../Commands/CommandPluginInfo.java | 29 +++++++++ .../Commands/CommandSeen.java | 4 +- .../playtimerewardsplus/Commands/Debug.java | 2 +- .../Controllers/ConfigController.java | 24 +++++++- .../Controllers/PlayerDatabase.java | 24 +++++++- .../Controllers/RewardManager.java | 57 ++++++++++++++++++ .../playtimerewardsplus/Plugin.java | 6 +- src/main/resources/config.yml | 3 +- src/main/resources/plugin.yml | 6 ++ target/classes/config.yml | 6 ++ .../Commands/CommandPlaytime.class | Bin 0 -> 2292 bytes .../Commands/CommandPlaytimeLeaderboard.class | Bin 0 -> 2425 bytes .../Commands/CommandPluginInfo.class | Bin 0 -> 1661 bytes .../Commands/CommandSeen.class | Bin 0 -> 2665 bytes .../playtimerewardsplus/Commands/Debug.class | Bin 0 -> 3071 bytes .../Controllers/ConfigController.class | Bin 0 -> 6161 bytes .../PlayerDatabase$Sortbyroll.class | Bin 0 -> 1391 bytes .../Controllers/PlayerDatabase.class | Bin 0 -> 3346 bytes .../Controllers/RewardManager.class | Bin 0 -> 3439 bytes .../DataTypes/PlayerData.class | Bin 0 -> 3315 bytes .../DataTypes/Reward.class | Bin 0 -> 824 bytes .../Events/PlayerJoin.class | Bin 0 -> 1510 bytes .../PlaceholderAPIIntegration.class | Bin 0 -> 3053 bytes .../playtimerewardsplus/MasterClock.class | Bin 0 -> 2897 bytes .../playtimerewardsplus/Plugin.class | Bin 0 -> 3733 bytes target/classes/plugin.yml | 23 +++++++ 35 files changed, 239 insertions(+), 18 deletions(-) create mode 100644 .settings/org.eclipse.jdt.apt.core.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 .vscode/settings.json create mode 100644 out/artifacts/PlayrimeRewards___Rewritten__jar/.DS_Store create mode 100644 src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytimeLeaderboard.java create mode 100644 src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPluginInfo.java create mode 100644 src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/RewardManager.java create mode 100644 target/classes/config.yml create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytime.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytimeLeaderboard.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandPluginInfo.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandSeen.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Commands/Debug.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Controllers/ConfigController.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Controllers/PlayerDatabase$Sortbyroll.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Controllers/PlayerDatabase.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Controllers/RewardManager.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/DataTypes/PlayerData.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/DataTypes/Reward.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Events/PlayerJoin.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Integrations/PlaceholderAPIIntegration.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/MasterClock.class create mode 100644 target/classes/dev/astridlabs/playtimerewardsplus/Plugin.class create mode 100644 target/classes/plugin.yml diff --git a/.idea/misc.xml b/.idea/misc.xml index 4b661a5..362d049 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,7 @@ - + \ No newline at end of file diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..d4313d4 --- /dev/null +++ b/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3fc7e86 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2b52057 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "maven.view": "hierarchical", + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/out/artifacts/PlayrimeRewards___Rewritten__jar/.DS_Store b/out/artifacts/PlayrimeRewards___Rewritten__jar/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0org.apache.maven.plugins maven-compiler-plugin - 6 - 6 + 8 + 8 diff --git a/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytime.java b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytime.java index 2775139..ff2fd28 100644 --- a/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytime.java +++ b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytime.java @@ -2,6 +2,7 @@ package dev.astridlabs.playtimerewardsplus.Commands; import dev.astridlabs.playtimerewardsplus.DataTypes.PlayerData; import dev.astridlabs.playtimerewardsplus.Plugin; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -16,11 +17,16 @@ public class CommandPlaytime implements CommandExecutor { } @Override - public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) { + public boolean onCommand(CommandSender sender, Command command, String s, String[] args) { if(sender instanceof Player){ Player player = (Player) sender; + if(args.length > 0){ + Player mentioned = Bukkit.getPlayer(args[0]); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix + "&a"+args[0]+"'s current playtime is: &7"+Integer.toString(plugin.db.getPlayer(mentioned.getUniqueId()).getPlaytime()/3600)+" Hours")); - player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix + "&aYour current playtime is: &7"+Integer.toString(plugin.db.getPlayer(player.getUniqueId()).getPlaytime()/3600)+" Hours")); + }else{ + player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix + "&aYour current playtime is: &7"+Integer.toString(plugin.db.getPlayer(player.getUniqueId()).getPlaytime()/3600)+" Hours")); + } } return true; diff --git a/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytimeLeaderboard.java b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytimeLeaderboard.java new file mode 100644 index 0000000..7601e8b --- /dev/null +++ b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytimeLeaderboard.java @@ -0,0 +1,38 @@ +package dev.astridlabs.playtimerewardsplus.Commands; + +import dev.astridlabs.playtimerewardsplus.DataTypes.PlayerData; +import dev.astridlabs.playtimerewardsplus.Plugin; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.Iterator; +import java.util.List; + +public class CommandPlaytimeLeaderboard implements CommandExecutor { + + private Plugin plugin; + + public CommandPlaytimeLeaderboard(Plugin plugin){ + this.plugin = plugin; + } + public boolean onCommand(CommandSender sender, Command command, String label, String[] args){ + + if (sender instanceof Player) { + Player player = (Player) sender; + + int i = 0; + for (PlayerData pl : plugin.db.getSortedPlayerlist()){ + if(i<5){ + player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"&a"+pl.getDisplayName()+"&8| "+Integer.toString(pl.getPlaytime()/3600))); + i++; + } + i++; + } + } + + return true; + } +} \ No newline at end of file diff --git a/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPluginInfo.java b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPluginInfo.java new file mode 100644 index 0000000..194a4d1 --- /dev/null +++ b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandPluginInfo.java @@ -0,0 +1,29 @@ +package dev.astridlabs.playtimerewardsplus.Commands; + +import dev.astridlabs.playtimerewardsplus.Plugin; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class CommandPluginInfo implements CommandExecutor { + + private Plugin plugin; + + public CommandPluginInfo(Plugin plugin){ + this.plugin = plugin; + } + // This method is called, when somebody uses our command + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (sender instanceof Player) { + Player player = (Player) sender; + player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"&8[&6Playtime Rewards&7+&8]")); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"This plugin was developed by: &aAstrid (O_dude)")); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"Current Plugin Version: &70.01a")); + } + + return true; + } +} \ No newline at end of file diff --git a/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandSeen.java b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandSeen.java index 35a3491..d47b807 100644 --- a/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandSeen.java +++ b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/CommandSeen.java @@ -25,8 +25,8 @@ public class CommandSeen implements CommandExecutor { Player mentioned = Bukkit.getPlayer(pName); player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"&8--------&7 "+mentioned.getDisplayName()+" &8--------")); - player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"&aPlayers Playtime: &7"+Integer.toString(plugin.db.getPlayer(mentioned.getUniqueId()).getPlaytime()/3600)+" Hours")); - player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"&aPlayers Logoff Location (X,Y,Z): &7"+plugin.config.getSavedX(mentioned.getUniqueId())+" "+plugin.config.getSavedY(mentioned.getUniqueId())+" "+plugin.config.getSavedZ(mentioned.getUniqueId()))); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"&Playtime: &7"+Integer.toString(plugin.db.getPlayer(mentioned.getUniqueId()).getPlaytime()/3600)+" Hours")); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"&aLogoff Location (X,Y,Z): &7"+plugin.config.getSavedX(mentioned.getUniqueId())+" "+plugin.config.getSavedY(mentioned.getUniqueId())+" "+plugin.config.getSavedZ(mentioned.getUniqueId()))); } diff --git a/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/Debug.java b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/Debug.java index f7a5340..60c4680 100644 --- a/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/Debug.java +++ b/src/main/java/dev/astridlabs/playtimerewardsplus/Commands/Debug.java @@ -30,7 +30,7 @@ public class Debug implements CommandExecutor { } - if(args[0].equals("location")){ + if(args[0].equals("save")){ player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+DebugPrefix + "&aForce dumping memory to disk, this could cause file corruption")); plugin.config.savePlayers(); diff --git a/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/ConfigController.java b/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/ConfigController.java index 58b9dbe..727a02a 100644 --- a/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/ConfigController.java +++ b/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/ConfigController.java @@ -1,14 +1,19 @@ package dev.astridlabs.playtimerewardsplus.Controllers; import dev.astridlabs.playtimerewardsplus.DataTypes.PlayerData; +import dev.astridlabs.playtimerewardsplus.DataTypes.Reward; import dev.astridlabs.playtimerewardsplus.Plugin; +import org.bukkit.Bukkit; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.UUID; +import java.util.function.Consumer; import java.util.logging.Level; public class ConfigController { @@ -56,13 +61,26 @@ public class ConfigController { } + + + public List getRewards(){ + List returnList = new ArrayList(); + if (!customConfig.getConfigurationSection("rewards").getKeys(false).isEmpty()) { + customConfig.getConfigurationSection("rewards").getKeys(false).forEach((str) -> { + returnList.add(new Reward(Integer.parseInt(str), customConfig.getBoolean("rewards." + str + ".doesRepeat"), customConfig.getString("rewards." + str + ".message"), customConfig.getStringList("rewards." + str + ".commands"))); + }); + } + + return returnList; + } + public String getSavedX(UUID uuid){ - return this.customConfig.getString("data."+uuid.toString()+"lastLocation.X"); + return this.customConfig.getString("data."+uuid.toString()+".lastLocation.X"); } public String getSavedY(UUID uuid){ - return this.customConfig.getString("data."+uuid.toString()+"lastLocation.Y"); + return this.customConfig.getString("data."+uuid.toString()+".lastLocation.Y"); } public String getSavedZ(UUID uuid){ - return this.customConfig.getString("data."+uuid.toString()+"lastLocation.Z"); + return this.customConfig.getString("data."+uuid.toString()+".lastLocation.Z"); } } diff --git a/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/PlayerDatabase.java b/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/PlayerDatabase.java index 2447555..157f308 100644 --- a/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/PlayerDatabase.java +++ b/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/PlayerDatabase.java @@ -10,9 +10,7 @@ import dev.astridlabs.playtimerewardsplus.Plugin; import org.bukkit.Location; import org.bukkit.entity.Player; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.util.*; public class PlayerDatabase { @@ -35,6 +33,26 @@ public class PlayerDatabase { return returnedPlayer; } + class Sortbyroll implements Comparator + { + // Used for sorting in ascending order of + // roll number + public int compare(PlayerData a, PlayerData b) + { + return b.getPlaytime() - a.getPlaytime(); + } + } + + public List getSortedPlayerlist(){ + List sorted = new ArrayList(); + + sorted.addAll(playerList); + Collections.sort(sorted, new Sortbyroll()); + + return sorted; + + } + public void updatePlayerDisplayName(UUID uuid, String displayName){ PlayerData player = getPlayer(uuid); diff --git a/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/RewardManager.java b/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/RewardManager.java new file mode 100644 index 0000000..a68a2d0 --- /dev/null +++ b/src/main/java/dev/astridlabs/playtimerewardsplus/Controllers/RewardManager.java @@ -0,0 +1,57 @@ +package dev.astridlabs.playtimerewardsplus.Controllers; + +import dev.astridlabs.playtimerewardsplus.DataTypes.PlayerData; +import dev.astridlabs.playtimerewardsplus.DataTypes.Reward; +import dev.astridlabs.playtimerewardsplus.Plugin; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.ConsoleCommandSender; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +public class RewardManager { + private List rewards = new ArrayList(); + private Plugin plugin; + + public RewardManager(Plugin plugin){ + this.plugin = plugin; + } + + public void unlockRewards(Player player, String chatPrefix){ + for (int i = 0; i < rewards.size(); i++) { + Reward reward = rewards.get(i); + PlayerData pd = plugin.db.getPlayer(player.getUniqueId()); + if(reward.DoesRepeat == true){ + if((pd.getPlaytime()/reward.TimeRequred)>1){ + //Put Unlock Code Here + player.sendMessage(ChatColor.translateAlternateColorCodes('&', chatPrefix+reward.UnlockMessage)); + + for (int b = 0; b < reward.Commands.size(); b++) { + String rewardCommand = reward.Commands.get(b); + + ConsoleCommandSender console = Bukkit.getServer().getConsoleSender(); + Bukkit.dispatchCommand(console, rewardCommand.replace("%PLAYER%", player.getDisplayName())); + } + } + }else if(reward.DoesRepeat == false){ + if(pd.getPlaytime() == reward.TimeRequred){ + //Put Unlock Code Here + player.sendMessage(ChatColor.translateAlternateColorCodes('&', chatPrefix+reward.UnlockMessage)); + + for (int b = 0; b < reward.Commands.size(); b++) { + String rewardCommand = reward.Commands.get(b); + + ConsoleCommandSender console = Bukkit.getServer().getConsoleSender(); + Bukkit.dispatchCommand(console, rewardCommand.replace("%PLAYER%", player.getDisplayName())); + } + } + } + } + } + + public void loadRewards(){ + this.rewards = plugin.config.getRewards(); + } +} diff --git a/src/main/java/dev/astridlabs/playtimerewardsplus/Plugin.java b/src/main/java/dev/astridlabs/playtimerewardsplus/Plugin.java index 66b735b..c57d5bf 100644 --- a/src/main/java/dev/astridlabs/playtimerewardsplus/Plugin.java +++ b/src/main/java/dev/astridlabs/playtimerewardsplus/Plugin.java @@ -1,8 +1,6 @@ package dev.astridlabs.playtimerewardsplus; -import dev.astridlabs.playtimerewardsplus.Commands.CommandPlaytime; -import dev.astridlabs.playtimerewardsplus.Commands.CommandSeen; -import dev.astridlabs.playtimerewardsplus.Commands.Debug; +import dev.astridlabs.playtimerewardsplus.Commands.*; import dev.astridlabs.playtimerewardsplus.Controllers.ConfigController; import dev.astridlabs.playtimerewardsplus.Controllers.PlayerDatabase; import dev.astridlabs.playtimerewardsplus.Events.PlayerJoin; @@ -56,6 +54,8 @@ public class Plugin extends JavaPlugin { this.getCommand("pt").setExecutor(new CommandPlaytime(this)); this.getCommand("ptdebug").setExecutor(new Debug(this)); this.getCommand("ptseen").setExecutor(new CommandSeen(this)); + this.getCommand("ptleader").setExecutor(new CommandPlaytimeLeaderboard(this)); + this.getCommand("ptinfo").setExecutor(new CommandPluginInfo(this)); } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index cab13e8..9bb45d4 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -2,4 +2,5 @@ Config: PluginChatPrefix: "&7[&6PTRR+&7]" PlaceholderChatPrefix: "&8[%time%&8]&f" -data: {} \ No newline at end of file +data: {} +rewards: \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 46b430a..103a119 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -13,5 +13,11 @@ commands: ptseen: description: Get information about a player usage: /ptseen + ptinfo: + description: Get information about the plugin + usage: /ptinfo + ptleader: + description: Get current top 5 leaderboard + usage: /ptleader softdepend: [PlaceholderAPI] # This is used, if your plugin works without PlaceholderAPI. diff --git a/target/classes/config.yml b/target/classes/config.yml new file mode 100644 index 0000000..9bb45d4 --- /dev/null +++ b/target/classes/config.yml @@ -0,0 +1,6 @@ +Config: + PluginChatPrefix: "&7[&6PTRR+&7]" + PlaceholderChatPrefix: "&8[%time%&8]&f" + +data: {} +rewards: \ No newline at end of file diff --git a/target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytime.class b/target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytime.class new file mode 100644 index 0000000000000000000000000000000000000000..a5869dbf7374469bd49efd7939da6408b5ed00c6 GIT binary patch literal 2292 zcmb7FZBrXn6n<{rHY^K-@Fp$Rhzbd`L~9i#rL}}2X#+(AskFY`B$u$T?8e;h2AOndJYtmnt%ZvQ|Yf^yPI^tk(BR!d~YkgEaBHRpv&K+q&HQ%8>Fa zfn`=R4_j5K2NZNqn67S_qQY>Y*`rju2LvWRpjciHq(p+_g=ZLVHgBIIgW?}BjJ?8~ z{4+u@-kKxzg4kr%OCsOttbK*73(4P4ex#C?Xq1Sbe5okY2A+vF;7%FTrC z%q1pfHGF|h4G-{8!I#qYR|>w?@D09IKq-|_)=&ZE97!xw1&-WpDX41LhOS`;y9}2m z_$HmbECfTQgZJS>(n3Lo*jc6bN;{(LQj?qTd7;O*ABl3^wTKeIqoHNRV&&r+Qv#U}79^HGHxn zeLWRAJDGlt;1BqH`VR!>!lR*QKVoY%6uf$j&|G9R9GmzJ;ms$AOdTR{2;~UTco!|w zM9L~Hjic_-$Wv$xN9Z|1?-Ba?dt=5iV$!OgmLtTEG4K?F0sMs3_MV5DyoEdU7W$dW z2ttA}jwr1|RM;?j2-E=rb&QI42+Vzwo)aVzpk=Zc!+pGscMu`VLrjnqrjwKZKs&)C sk_492r7-0|dV*dp$qSkDuAp10_Bc>0{{R3 literal 0 HcmV?d00001 diff --git a/target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytimeLeaderboard.class b/target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandPlaytimeLeaderboard.class new file mode 100644 index 0000000000000000000000000000000000000000..fd472f552ce76ddffb50769f512dc8c04f2d1b72 GIT binary patch literal 2425 zcmb7FZF3V<6n<`!_NM8!gwO)TDh0Kqtq?@yt-M$Qm0~EBVioZ1Cb^_bx4Ut711+MA zGmOqS{R8;XFMjchGgv@p9Q^8Ua=_DcpqoXFd=bP;)4`Y20Mm=nVm~wGKCJDPh!eEKTP2Q zrp<8C9DkI;3_k8e9G^&BlDI5!MWDUv)GD?sFj6S%>p2yKzFl@yG00UNwHVs-+SfOf zUk->1a#Im_lx9b5*A9;h?8*KQyP+9@MBXcFfei)Q)swaPqV_MUqQjj`!7C|eM)|f` zH#QUDtQ`oPY2_t(Z+>36bS=c zZ=oMwTG)nH1hzKSaTO~P#1&DJC|l6DDp9d83!4F0xQ00k4(0_8wjloXN+Yo4c@3Pb z*$#zc!Npz+9;z(=AcOb{EMH>q(5(Rr0YZtIh3mLsVF8O~@Fi|q_!_q?e1mTV##;!f z!O+VjFOYr~;rZerNFCR}EA%4W}3i<4@ecX9PQ z8_iCjlem@ZDbTwrun9NR6*f?Tjn4$w*fjaO;f!)>^v&ehvy!2=B8cAX#M99+ zCe6I(7@hWqzH$Rcg?h{(sV*nciTTj5BkjuOTS=b&J5Ad>r-MLM7*_9koXubdKh0Yq z(8qtwG#`GpW1RQnRgSN5HO_U6&(!dJh~bgn5&JE|Z0Fd`&o7Wc0-N}S?!f?8o9k$L z-pLj1BCqV^cpY!leTqr65f3bl{Ehfsd_VFC@gr^V1MS225W9!OGTI)ZUEql9lMf*U z?xJXBNr6Y`IFjsbPyURveQoK%Kask0ADwkOYZ+acZVr9PWo$5ubYrn`8JUgUY3Bhp zac3Dl577G%n`5}sF8KT9$xn%28BZK0t6|0r@*>Gh7o$&;m4jsD7&-ZloZMlaKQO-^ zna==`7m(!n6yC%jXI<=fyO3puY23sRy|ojw^puY!jNmQuVD@%nPsG*|a@ZSjxrDc| sk9@wv^DN?zu|s0Nka+iB6eSKkq1!fzgA#`%4oeb*Q6dG7a*W~Ff7T74m;e9( literal 0 HcmV?d00001 diff --git a/target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandPluginInfo.class b/target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandPluginInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..fda501eb066f3a7f60be0775d085a46b0d3fcaa9 GIT binary patch literal 1661 zcmb7EYi|=r6g}fd)^QvHNeHjBEH7inkPVNL5c3Kyk&w(o1O>GSp|N*jmTY#d-8Cdq z<^REd;0qG(N>%%ne^gaMoUxZ;u!X{hot=B<&Yg45Ju@FZzW)orSuAHUhT<@GV8%en zz=Jb_ZxR!=M$MuB6y zvKCrRS8helh6>bE8Q3A?LhE)XxXf)A9M6d^3CtFLU|(@nAXV{gB`{WXJax0RQB%QP zS##+buljZAuFAmCcI-?=kDO58@^%iX_!}G2vqLMMbirQt)_ejU_Py9GuvV!0LBp!G z*4LfLs&}`2-nF7UTLtCsM3k$K7X+ri6V9}0c2T*S*FL!Hf(#nubz%T;fzg#n*4J;yX557A zir)(AYT40knu=-s!tSijpTh(ebJ&G(fxSKKepRf%o^P>SZ8Tx5meQI z{KEbGIn9t(pn0b&!TfwFzwjW3%eZ1-DTk}5-i6MSx|7Ny8Ql)lnzKnw$!3$P5;$4t zZ-24R6?cKE$wYov(*l!){y;`d_7tIytoW{mJskzo3tbthB{x!m$4O^JUw10)c%jmF zYI$J(5q%wQs4$cb%5C=`{Hr*`H*X9qonJz$j_+ZD^9f9H+)Znlc7p%x%o~WA(kmoh zbYiAB?%-3X#}so6GshlUQ{8Cn#Xefx*U2iFZ9fjgIsfI3A+EJc{~-Aco29>zTukpv z@67*+)NgN)o_UGHOANh+F`nV@8pCgqeTR_*1_$M~6EymDQ0h4mB#9S9rqN8oV8x^K zoMt8WSiv7etZTZ&^-=hk#!pDoZvS6h8$aV9tI|G`Y-*<3IE*75X4*K4W2`k#ZyMr1 LCS(U`BvAMSS8c(U literal 0 HcmV?d00001 diff --git a/target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandSeen.class b/target/classes/dev/astridlabs/playtimerewardsplus/Commands/CommandSeen.class new file mode 100644 index 0000000000000000000000000000000000000000..3f344ce65d13748a06e311822f62e3c639277857 GIT binary patch literal 2665 zcmb7G+fo}x5IrLaR*2;eHehgM;>Z#=C5{tpuuVXiSh2vw0s=Uf)vml+VU(Ml zXm7 z9+OQN#FT>T0o=e%1=9gENacH&k+WGpV$JYk&W~GCo)6%C+?JZSA0J4wJ5opluz4dx zI!_g%d7YPREhjATkXxAo*%hKoW#cJwyRI3UeUo84{0e@NRR&+o%m{|Igl34vVlE}D zWuDSW)0r^STwmpuCS^zIv$wPY!?k)giJ7?^H!_8&Gf4_zP^wL);V2k3!wJ*MMpMO| z9nFrWD-KnABO|P-msm_Cw)rlP>fFdilSGt}ow|Qo71=1$%1gpx=y!(`hOOBpVo|P9 zY7O~Co-0E?6_@hPNpsT>846brGB<`HcevX5Gbqji!@x_-X@5r4`nZ*)Pge~f3@u5U zr*{^3-YG{QX%?-tnAc>%+8tUY&*Kt+iXnWaB8UqNy)K@Q!B+6O3XT-R*^{7Wi<(X- z6{J;UFs?#ilX3`M9dmx6iJ*!swiud&RjmpQTMD*S>_AtM19fvtNRlkucQP27P+=mk z;sGdjLGErVD5}`SLj`*(O87#?_>y=I-X?%V$6$yj%&fV&8I)Zq%Mc8&jjoSwL@M#V z!q*DEQSk_miAKumTRc|ros=f(I7be1$6A#LtrBuKwJp*%)!RkmiE`iC6X~LDQd4-t z@?dqiOlQjtPCb+rcBR|OC$$>i>E4LDKaQ1&x+78tkjjNXsaGbkEp9JaVpH2AE_psr zUCS^Qu5m_Ashr}|zO9t>oJJQ8FIA35cQ|s&ob3FzS%JaO?ZPf|h?%-1X27<%QP8<9 zW^`Lv22IK<@(Q9NUkb-g$E~?lvpjzbqEO&jYW$vBfT#kV40ZK%eOHxXTc)lHOWvvS zHkji!Pw|2vT+M`k#n2uUMV#2{JOp2~H9fkr5}zZJ8+DW>X1-_-hC2>|YRpJIY0D&+ zOL^f=nzE^<<7>HApdKDn$*Y_ExM7QI`I_vg_N}9&;%kPz%Jm|ZgW5kXo#SqAr@^TW z)26YhWf^AbLFgup=Hyt_5Yp*a@W{{b{8YAigT_{RH~?+%p&d==K!~I> z6>D5Vm?ZKmN2U7>5e!#ivLEOj;s;pc$RF@Np=ZPI@J=@L`Mj4W8~Yj$;G0zX8rnm@ zqGA0R8i$|4^AyTH{GClS^eN8~V31-n4f{|J(DEFu9@O?}Bcn=)cInz7T|4*DwU6$O z)^_~>Ju=jpdP1E&3e|fQs!w|N*H}3BqJ;rkaAocLky!FV@;M|~K@SvSu?4;8LLd5Z z4vQGT6AUsRSxAoWkzEV^!3ai)$u9hjF^r>;Z2v-(bc*EmumUuD6K@goQg<0|%lgpl c3VBfVX!Z`?r3y|^+y=0JX%mL4BzSP`e+F6LYXATM literal 0 HcmV?d00001 diff --git a/target/classes/dev/astridlabs/playtimerewardsplus/Commands/Debug.class b/target/classes/dev/astridlabs/playtimerewardsplus/Commands/Debug.class new file mode 100644 index 0000000000000000000000000000000000000000..5d333e68832a958df107be4ff50d03fc46fc9d46 GIT binary patch literal 3071 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 TcBbIlI2R`$C(Z3RiBJC@1~Ik_ literal 0 HcmV?d00001 diff --git a/target/classes/dev/astridlabs/playtimerewardsplus/Controllers/PlayerDatabase$Sortbyroll.class b/target/classes/dev/astridlabs/playtimerewardsplus/Controllers/PlayerDatabase$Sortbyroll.class new file mode 100644 index 0000000000000000000000000000000000000000..2b707701f40c0955b15615164b1388f6268f5400 GIT binary patch literal 1391 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 literal 0 HcmV?d00001 diff --git a/target/classes/dev/astridlabs/playtimerewardsplus/MasterClock.class b/target/classes/dev/astridlabs/playtimerewardsplus/MasterClock.class new file mode 100644 index 0000000000000000000000000000000000000000..c7667e4a411e571c49ae391d3164561cb54d57fd GIT binary patch literal 2897 zcmb7G>2nih82`OZ=(fqyBhb=TkXEkrpaHFNp9Lh6wnz^YFE+_by6tv1Y&L1@h4+EC z=m)+#!)G0+;s?iX&iGe2gapPEXFQAvoDbt! zTu@|E!&Hc7rWKh{7A}Sn!E+%zk4quEfEN{cNs*V;hga0MCi6!&%^QIS*wr6_FjM!NA!&yJ+ z8L9a(BkQ}>kQQjkXVZo!m554|z?SHPEhr}qSk{%&zM@yN|k%1ruKy1 zRIZLd*p`cxT}K6zbXB@M)3I|Jh%PkgU zdo3rI>op3FnU-k{OFEYEs*cz2x`sD&yoqZ}sgAeswvKo3u0Yp=YN2B<9@nv7k@xVv zjt}smhL3c7jO&b3$0zty$7lFl#~1ig$5)DcjT<_?!3}m}9c^Bf8-Zvf zdoxPPZ|k@~e;o*lhnkIQ%~Qk!x~d6~9t_Q;l!3 zAbDhi@$oYg0^PN=l?0W$YABc72I$G3f;B{Z?W$5va{StvLuy#G5&48|aR#m?p=(V5 zqbmC;b-w9;W5sxd&pBbPHe=@+<#Ll!Rhu<(<8sOKd*%|Owf)V;vb;anCz5mYMd^lg zlGT0K4k?D9dOd06B+Y~w-L!39&C56^X{7ASKS0yd@lzBz@{ldG)<>~riaddH(W=_{ z_WSDzq1NFnfmfD`Q(v{CpZ)(`fZ?3V|Xx?>s;gsh!dyzJ)y1D$J zsNU#0(a3WkQls+Hi4Vy;i6sOS474JhE}jak&U7q9GvzQ>9?>rne>t)_gs>aKevC_{7-O{1g23N6eGly#_WVUXq3*3xwAU%Ujxy0= z7##%FDX@Y~V}#Q+zPlXy!QfCggX^y3xYO6$&fM-`UUw45EBKs^onxKdT-Ra(MzlQOCb`)lFq`3-GDMEZzAy7?A5h6uK21zRf2 zN)~(2NIQe{y_-24CfYq*?WNBVA8T*X&nnjat5|oHu&Nw3qv0NQXgJVLfCtHFz@h&D DP5cI3 literal 0 HcmV?d00001 diff --git a/target/classes/dev/astridlabs/playtimerewardsplus/Plugin.class b/target/classes/dev/astridlabs/playtimerewardsplus/Plugin.class new file mode 100644 index 0000000000000000000000000000000000000000..70b667ce4a7199ca9423465217e8d25acdfe247d GIT binary patch literal 3733 zcmbtX*H;u*82?>BW*Nq|Lez+gq5_LDL5&R?)j$>`f)XUf+1<-BGR$mdXA#qTuckNC zW4h7EDw30vr#$2>|3dzS_?B~W^4*zTnMF*NWFBt$+Wp%7zB|AEb@?X%Tk)fey%>;i zR7L>?ORxub$TZwpio0;P*dCLh$q0D3h=iz&QVh-`X7QDYT}3- z7#NjcO0Z-s#efi-2;d$WHj)D31dtN*m^kJ{0OMjlDP-I$;XWBv7%av8cp!iW#r%+j zhh@}YPz;X*@Td^@n1sh=Y!bjH@MHi_NqAaD0|o*vT|Rbr zdXgpq%WN|}p^OBVd)n%j+HtULJjxS}Zka^3!|zVdV<}q`NVUTp(+oZ4c_Rb#v(E2z zwCG5emT=XiG^M1ZSXpMPp7aiud##imb#LbUfk4t!0 z!FzaL!f6E`;6sLrc8%N8DM%+ltR zF0xa>r}&JH_YSI`HE$(+uHX#5Q1B(bqT5_qso-mTqu>DAN%B?J+^eCW4ebiP#di!_ z^Kf6=7&o2lt?#sSs%&Q!e2;Ss3w&xd^>ipWj~^I1@(|i#Iy~+rvMV}!DM^YCrQiZ4 z$gqT?AdQO*jd_S}u|`KVGbU=5yAb6{lrssJ6inhWgOqS$Jd&c?(=Zo#tsYNt!bx&Y zS84lPm@~@sx}1T8V{nb4%+UTHgk&uWyD}mcRcWfHR5HvVE8kl?(?=plI*4Dvl(-zV zd8p+T42Ctn+)uc5Sap-SlPXD;roLtl)lrn-k~nvIxjiO)R9;i-FM}SKisNG6!C6{G z@MYT!LrpI0KQ$!9PMLjLa->hRJ}OW({xdUndFC{BcIGHFQ>u_c>IJVY7`ZxoP0_P8 zY{lc^*a}kE^nhbuQJzl1#5$Ga^pD4e6$ zwW`tu(Gm%6(oNZv7e}TJlYRlm@*WTjW!dQXPow7tC7qWVU7D%6ajeR9MNa-?h)DEm zpXsxaP>Hp9To?VzE5r06$jM6ztLdm=L1A*c@%ky74V9DI>HNCMchZy zQ3jce&Qvw(f3y13XI<1Q#`Jh}yOFmev6cTuLobsgciP5zH04-yL8^1?&x*|`k|k>t z=9VV4F)nH)JzBAbUd?;y?E{%;-*d!qJX{e##O)j8805-dTEiPcI0Nm^Xwz+`q0~sOU z1fY=s=g9KKScVleiaCTEC>Fwx-Q+)D6+zb$yqYMgP=R%{swS%SsKW+qqwz2{!a+U# z8a3b)Hsdrw&(eR;&)9+AuoJ)2kI*03?Z%*zWLMD7Tn}!e2-LZ&LvCEIWa83GXD&d| xpoG3|35QGnq(3!=BiUGyZ06DjywL2Pj=T7`1m&7UnKm8oz}0y76Se@i{|&!iRF?n% literal 0 HcmV?d00001 diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml new file mode 100644 index 0000000..103a119 --- /dev/null +++ b/target/classes/plugin.yml @@ -0,0 +1,23 @@ +main: dev.astridlabs.playtimerewardsplus.Plugin +name: PlaytimeRewardsRewrittenPlus +author: Astrid (O_dude) +version: 0.1a + +commands: + pt: + description: This command shows your current playtime + usage: /pt + ptdebug: + description: This is a debug command for debugging stuff + usage: /ptdebug + ptseen: + description: Get information about a player + usage: /ptseen + ptinfo: + description: Get information about the plugin + usage: /ptinfo + ptleader: + description: Get current top 5 leaderboard + usage: /ptleader + +softdepend: [PlaceholderAPI] # This is used, if your plugin works without PlaceholderAPI.