added howlong command
This commit is contained in:
parent
2352b42b13
commit
2bc8c99f5a
6 changed files with 139 additions and 14 deletions
Binary file not shown.
|
@ -1,8 +1,8 @@
|
|||
package net.brysonsteck.Resurrection;
|
||||
|
||||
import net.brysonsteck.Resurrection.commands.CommandAbout;
|
||||
import net.brysonsteck.Resurrection.commands.CommandHowLong;
|
||||
import net.brysonsteck.Resurrection.commands.CommandResurrect;
|
||||
import net.brysonsteck.Resurrection.player.PlayerData;
|
||||
import net.brysonsteck.Resurrection.player.PlayerListener;
|
||||
import net.brysonsteck.Resurrection.startup.CheckForUpdate;
|
||||
import org.bukkit.event.Listener;
|
||||
|
@ -11,7 +11,6 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Hashtable;
|
||||
|
||||
public class Resurrection extends JavaPlugin implements Listener {
|
||||
|
||||
|
@ -69,14 +68,16 @@ public class Resurrection extends JavaPlugin implements Listener {
|
|||
// check for updates
|
||||
System.out.println("[Resurrection] Checking for updates...");
|
||||
CheckForUpdate check = new CheckForUpdate();
|
||||
String newestVersion = check.getVersion();
|
||||
String newestVersionURL = check.getVersionURL();
|
||||
if (pluginInfo.getVersion().equals(newestVersion)) {
|
||||
System.out.println("[Resurrection] " + newestVersion + " is the latest version of Resurrection.");
|
||||
} else {
|
||||
System.out.println("[Resurrection] A new version of Resurrection is available! (current: " + pluginInfo.getVersion() + ", newest: " + newestVersion);
|
||||
System.out.println("[Resurrection] You can download the latest release on GitHub here \\/");
|
||||
System.out.println("[Resurrection] " + newestVersionURL);
|
||||
if (check.isSuccess()) {
|
||||
String newestVersion = check.getVersion();
|
||||
String newestVersionURL = check.getVersionURL();
|
||||
if (pluginInfo.getVersion().equals(newestVersion)) {
|
||||
System.out.println("[Resurrection] " + newestVersion + " is the latest version of Resurrection.");
|
||||
} else {
|
||||
System.out.println("[Resurrection] A new version of Resurrection is available! (current: " + pluginInfo.getVersion() + ", newest: " + newestVersion);
|
||||
System.out.println("[Resurrection] You can download the latest release on GitHub here \\/");
|
||||
System.out.println("[Resurrection] " + newestVersionURL);
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("[Resurrection] ---------------------------------------------------------");
|
||||
|
@ -86,8 +87,9 @@ public class Resurrection extends JavaPlugin implements Listener {
|
|||
this.getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
|
||||
// register commands
|
||||
this.getCommand("about").setExecutor(new CommandAbout());
|
||||
this.getCommand("about").setExecutor(new CommandAbout(pluginInfo.getVersion()));
|
||||
this.getCommand("resurrect").setExecutor(new CommandResurrect());
|
||||
this.getCommand("howlong").setExecutor(new CommandHowLong());
|
||||
|
||||
System.out.println("[Resurrection] ---------------------------------------------------------");
|
||||
System.out.println("[Resurrection] Successfully Started!");
|
||||
|
|
|
@ -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);
|
||||
|
|
105
src/net/brysonsteck/Resurrection/commands/CommandHowLong.java
Normal file
105
src/net/brysonsteck/Resurrection/commands/CommandHowLong.java
Normal file
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -8,9 +8,9 @@ commands:
|
|||
permission: op
|
||||
usage: /about
|
||||
|
||||
timecheck:
|
||||
howlong:
|
||||
description: Displays the remaining time before the player (or specified player) is resurrected.
|
||||
usage: /timecheck [PLAYER NAME]
|
||||
usage: /howlong [PLAYER_NAME]
|
||||
|
||||
resurrect:
|
||||
description: Manually resurrects a player.
|
||||
|
|
|
@ -10,6 +10,7 @@ import java.net.URLConnection;
|
|||
|
||||
|
||||
public class CheckForUpdate {
|
||||
boolean success;
|
||||
String version;
|
||||
String versionURL;
|
||||
|
||||
|
@ -23,6 +24,7 @@ public class CheckForUpdate {
|
|||
version = softwareObj.get("current-release").toString();
|
||||
version = version.replace("\"", "");
|
||||
versionURL = softwareObj.get("github-release").toString();
|
||||
success = true;
|
||||
} catch (IOException e) {
|
||||
System.out.println("[Resurrection] An error has occurred while attempting to check for updates.");
|
||||
e.printStackTrace();
|
||||
|
@ -47,6 +49,8 @@ public class CheckForUpdate {
|
|||
return response.toString();
|
||||
}
|
||||
|
||||
public boolean isSuccess() { return success; }
|
||||
|
||||
public String getVersionURL() {
|
||||
return versionURL;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue