diff options
Diffstat (limited to 'src/net/brysonsteck/Resurrection/commands')
-rw-r--r-- | src/net/brysonsteck/Resurrection/commands/CommandAbout.java | 16 | ||||
-rw-r--r-- | src/net/brysonsteck/Resurrection/commands/CommandHowLong.java | 105 |
2 files changed, 120 insertions, 1 deletions
diff --git a/src/net/brysonsteck/Resurrection/commands/CommandAbout.java b/src/net/brysonsteck/Resurrection/commands/CommandAbout.java index ac95f20..40ea0a8 100644 --- a/src/net/brysonsteck/Resurrection/commands/CommandAbout.java +++ b/src/net/brysonsteck/Resurrection/commands/CommandAbout.java @@ -1,14 +1,28 @@ package net.brysonsteck.Resurrection.commands; +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 CommandAbout implements CommandExecutor { + String currentVersion; + boolean checked = false; + + public CommandAbout(String currentVersion) { + this.currentVersion = currentVersion; + } + @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { - String aboutMessage = "This is the about message for Resurrection."; + String aboutMessage = ChatColor.GREEN + "" + ChatColor.BOLD + "Resurrection\n\n" + ChatColor.RESET + + "Resurrection is a Spigot Minecraft plugin that forces players to wait 24 hours before respawning.\n" + + "The current version of this plugin is " + currentVersion + ".\n\n" + + "This plugin is licensed under the GNU Affero General Public License v3.0. Read more here: " + + "For more information on this plugin or to download it for yourself, visit the GitHub repository at https://github.com/brysonsteck/resurrection" + + "\u00a9 2021 Bryson Steck."; + if (commandSender instanceof Player) { Player p = (Player) commandSender; p.sendMessage(aboutMessage); diff --git a/src/net/brysonsteck/Resurrection/commands/CommandHowLong.java b/src/net/brysonsteck/Resurrection/commands/CommandHowLong.java new file mode 100644 index 0000000..72daf30 --- /dev/null +++ b/src/net/brysonsteck/Resurrection/commands/CommandHowLong.java @@ -0,0 +1,105 @@ +package net.brysonsteck.Resurrection.commands; + +import net.brysonsteck.Resurrection.player.PlayerData; +import net.brysonsteck.Resurrection.player.TimeCheck; +import org.bukkit.Bukkit; +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 CommandHowLong implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { + if (commandSender instanceof Player) { + boolean self = false; + boolean valid = false; + + if (strings.length == 0) { + self = true; + valid = true; + } else if (strings.length == 1) { + valid = true; + } + + if (valid) { + Player p; + if (self) { + p = (Player) commandSender; + } else { + p = Bukkit.getPlayer(strings[0]); + if (p == null) { + commandSender.sendMessage(ChatColor.RED + "ERROR: Player does not exist or is offline!"); + return false; + } + } + PlayerData playerData = new PlayerData(); + playerData.readData(); + String rawData = playerData.getRawData(); + String[] rawPlayers = rawData.split(";"); + for (String players : rawPlayers) { + if (players.startsWith(p.getDisplayName())) { + String[] playerSplit = players.split(","); + if (Boolean.parseBoolean(playerSplit[1])) { + long currentTime = System.currentTimeMillis(); + long resurrectionTime = Long.parseLong(playerSplit[2]); + + TimeCheck timeCheck = new TimeCheck(resurrectionTime - currentTime); + if (self) { + commandSender.sendMessage("You will respawn in " + timeCheck.formatTime()); + } else { + commandSender.sendMessage(p.getDisplayName() + " will respawn in " + timeCheck.formatTime()); + } + return true; + } + } + } + commandSender.sendMessage("ERROR: An error has occurred while trying to get time information. This is a bug in the program and not your fault."); + return false; + } + } else { + boolean valid = false; + + if (strings.length == 0) { + System.out.println("[Resurrection] ERROR: The /howlong command requires the name of a player when ran through the console."); + return false; + } else if (strings.length == 1) { + valid = true; + } + + if (valid) { + + Player p = Bukkit.getPlayer(strings[0]); + if (p == null) { + commandSender.sendMessage(ChatColor.RED + "ERROR: Player does not exist or is offline!"); + return false; + } + + PlayerData playerData = new PlayerData(); + playerData.readData(); + String rawData = playerData.getRawData(); + String[] rawPlayers = rawData.split(";"); + for (String players : rawPlayers) { + if (players.startsWith(p.getDisplayName())) { + String[] playerSplit = players.split(","); + if (Boolean.parseBoolean(playerSplit[1])) { + long currentTime = System.currentTimeMillis(); + long resurrectionTime = Long.parseLong(playerSplit[2]); + + TimeCheck timeCheck = new TimeCheck(resurrectionTime - currentTime); + + commandSender.sendMessage(p.getDisplayName() + " will respawn in " + timeCheck.formatTime()); + + return true; + } + } + } + commandSender.sendMessage("ERROR: An error has occurred while trying to get time information. This is a bug in the program and not your fault."); + return false; + } + } + return false; + } +} |