Added some new commands and made the rewards system fully functional, release stage;

This commit is contained in:
BuildTools
2020-04-08 09:16:23 -05:00
parent 2f2754cab8
commit f175c55280
35 changed files with 239 additions and 18 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_9" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>
+2
View File
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=false
+9
View File
@@ -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
+4
View File
@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
+4
View File
@@ -0,0 +1,4 @@
{
"maven.view": "hierarchical",
"java.configuration.updateBuildConfiguration": "interactive"
}
Binary file not shown.
+2 -2
View File
@@ -13,8 +13,8 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<configuration> <configuration>
<source>6</source> <source>8</source>
<target>6</target> <target>8</target>
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>
@@ -2,6 +2,7 @@ package dev.astridlabs.playtimerewardsplus.Commands;
import dev.astridlabs.playtimerewardsplus.DataTypes.PlayerData; import dev.astridlabs.playtimerewardsplus.DataTypes.PlayerData;
import dev.astridlabs.playtimerewardsplus.Plugin; import dev.astridlabs.playtimerewardsplus.Plugin;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -16,11 +17,16 @@ public class CommandPlaytime implements CommandExecutor {
} }
@Override @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){ if(sender instanceof Player){
Player player = (Player) sender; 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; return true;
@@ -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;
}
}
@@ -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;
}
}
@@ -25,8 +25,8 @@ public class CommandSeen implements CommandExecutor {
Player mentioned = Bukkit.getPlayer(pName); Player mentioned = Bukkit.getPlayer(pName);
player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+"&8--------&7 "+mentioned.getDisplayName()+" &8--------")); 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+"&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+"&aLogoff Location (X,Y,Z): &7"+plugin.config.getSavedX(mentioned.getUniqueId())+" "+plugin.config.getSavedY(mentioned.getUniqueId())+" "+plugin.config.getSavedZ(mentioned.getUniqueId())));
} }
@@ -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")); player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.PluginChatPrefix+DebugPrefix + "&aForce dumping memory to disk, this could cause file corruption"));
plugin.config.savePlayers(); plugin.config.savePlayers();
@@ -1,14 +1,19 @@
package dev.astridlabs.playtimerewardsplus.Controllers; package dev.astridlabs.playtimerewardsplus.Controllers;
import dev.astridlabs.playtimerewardsplus.DataTypes.PlayerData; import dev.astridlabs.playtimerewardsplus.DataTypes.PlayerData;
import dev.astridlabs.playtimerewardsplus.DataTypes.Reward;
import dev.astridlabs.playtimerewardsplus.Plugin; import dev.astridlabs.playtimerewardsplus.Plugin;
import org.bukkit.Bukkit;
import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.function.Consumer;
import java.util.logging.Level; import java.util.logging.Level;
public class ConfigController { public class ConfigController {
@@ -56,13 +61,26 @@ public class ConfigController {
} }
public List<Reward> getRewards(){
List<Reward> returnList = new ArrayList<Reward>();
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){ 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){ 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){ public String getSavedZ(UUID uuid){
return this.customConfig.getString("data."+uuid.toString()+"lastLocation.Z"); return this.customConfig.getString("data."+uuid.toString()+".lastLocation.Z");
} }
} }
@@ -10,9 +10,7 @@ import dev.astridlabs.playtimerewardsplus.Plugin;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.UUID;
public class PlayerDatabase { public class PlayerDatabase {
@@ -35,6 +33,26 @@ public class PlayerDatabase {
return returnedPlayer; return returnedPlayer;
} }
class Sortbyroll implements Comparator<PlayerData>
{
// Used for sorting in ascending order of
// roll number
public int compare(PlayerData a, PlayerData b)
{
return b.getPlaytime() - a.getPlaytime();
}
}
public List<PlayerData> getSortedPlayerlist(){
List<PlayerData> sorted = new ArrayList<PlayerData>();
sorted.addAll(playerList);
Collections.sort(sorted, new Sortbyroll());
return sorted;
}
public void updatePlayerDisplayName(UUID uuid, String displayName){ public void updatePlayerDisplayName(UUID uuid, String displayName){
PlayerData player = getPlayer(uuid); PlayerData player = getPlayer(uuid);
@@ -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<Reward> rewards = new ArrayList<Reward>();
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();
}
}
@@ -1,8 +1,6 @@
package dev.astridlabs.playtimerewardsplus; package dev.astridlabs.playtimerewardsplus;
import dev.astridlabs.playtimerewardsplus.Commands.CommandPlaytime; import dev.astridlabs.playtimerewardsplus.Commands.*;
import dev.astridlabs.playtimerewardsplus.Commands.CommandSeen;
import dev.astridlabs.playtimerewardsplus.Commands.Debug;
import dev.astridlabs.playtimerewardsplus.Controllers.ConfigController; import dev.astridlabs.playtimerewardsplus.Controllers.ConfigController;
import dev.astridlabs.playtimerewardsplus.Controllers.PlayerDatabase; import dev.astridlabs.playtimerewardsplus.Controllers.PlayerDatabase;
import dev.astridlabs.playtimerewardsplus.Events.PlayerJoin; import dev.astridlabs.playtimerewardsplus.Events.PlayerJoin;
@@ -56,6 +54,8 @@ public class Plugin extends JavaPlugin {
this.getCommand("pt").setExecutor(new CommandPlaytime(this)); this.getCommand("pt").setExecutor(new CommandPlaytime(this));
this.getCommand("ptdebug").setExecutor(new Debug(this)); this.getCommand("ptdebug").setExecutor(new Debug(this));
this.getCommand("ptseen").setExecutor(new CommandSeen(this)); this.getCommand("ptseen").setExecutor(new CommandSeen(this));
this.getCommand("ptleader").setExecutor(new CommandPlaytimeLeaderboard(this));
this.getCommand("ptinfo").setExecutor(new CommandPluginInfo(this));
} }
+2 -1
View File
@@ -2,4 +2,5 @@ Config:
PluginChatPrefix: "&7[&6PTRR+&7]" PluginChatPrefix: "&7[&6PTRR+&7]"
PlaceholderChatPrefix: "&8[%time%&8]&f" PlaceholderChatPrefix: "&8[%time%&8]&f"
data: {} data: {}
rewards:
+6
View File
@@ -13,5 +13,11 @@ commands:
ptseen: ptseen:
description: Get information about a player description: Get information about a player
usage: /ptseen 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. softdepend: [PlaceholderAPI] # This is used, if your plugin works without PlaceholderAPI.
+6
View File
@@ -0,0 +1,6 @@
Config:
PluginChatPrefix: "&7[&6PTRR+&7]"
PlaceholderChatPrefix: "&8[%time%&8]&f"
data: {}
rewards:
+23
View File
@@ -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.