Archived
Added some new commands and made the rewards system fully functional, release stage;
This commit is contained in:
@@ -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;
|
||||
|
||||
+38
@@ -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.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())));
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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<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){
|
||||
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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<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){
|
||||
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;
|
||||
|
||||
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));
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user