aboutsummaryrefslogtreecommitdiff
path: root/src/net/brysonsteck/Resurrection
diff options
context:
space:
mode:
authorBryson Steck <steck.bryson@gmail.com>2021-06-06 11:49:01 -0600
committerBryson Steck <steck.bryson@gmail.com>2021-06-06 11:49:01 -0600
commitdb5c24bc26e4d6a34ecd1ab9118f0f098eee3581 (patch)
treebfd1fa99cab5e90c5cd3e4555dc06d0a82164fe1 /src/net/brysonsteck/Resurrection
parenta6193c66185c069db9a8f9f7a7aca570ae55994b (diff)
downloadresurrection-db5c24bc26e4d6a34ecd1ab9118f0f098eee3581.tar
resurrection-db5c24bc26e4d6a34ecd1ab9118f0f098eee3581.tar.gz
resurrection-db5c24bc26e4d6a34ecd1ab9118f0f098eee3581.tar.bz2
death event works, working on commands
Diffstat (limited to 'src/net/brysonsteck/Resurrection')
-rw-r--r--src/net/brysonsteck/Resurrection/CheckForUpdate.java4
-rw-r--r--src/net/brysonsteck/Resurrection/PlayerData.java46
-rw-r--r--src/net/brysonsteck/Resurrection/PlayerListener.java37
-rw-r--r--src/net/brysonsteck/Resurrection/Resurrection.java48
-rw-r--r--src/net/brysonsteck/Resurrection/TImeCheck.java20
-rw-r--r--src/net/brysonsteck/Resurrection/commands/CommandAbout.java20
-rw-r--r--src/net/brysonsteck/Resurrection/plugin.yml13
7 files changed, 188 insertions, 0 deletions
diff --git a/src/net/brysonsteck/Resurrection/CheckForUpdate.java b/src/net/brysonsteck/Resurrection/CheckForUpdate.java
new file mode 100644
index 0000000..68cab70
--- /dev/null
+++ b/src/net/brysonsteck/Resurrection/CheckForUpdate.java
@@ -0,0 +1,4 @@
+package net.brysonsteck.Resurrection;
+
+public class CheckForUpdate {
+}
diff --git a/src/net/brysonsteck/Resurrection/PlayerData.java b/src/net/brysonsteck/Resurrection/PlayerData.java
new file mode 100644
index 0000000..f63a359
--- /dev/null
+++ b/src/net/brysonsteck/Resurrection/PlayerData.java
@@ -0,0 +1,46 @@
+package net.brysonsteck.Resurrection;
+
+import java.io.*;
+import java.util.Arrays;
+import java.util.Hashtable;
+
+public class PlayerData {
+ Hashtable<String, Hashtable<String, String>> playerData = new Hashtable<>();
+
+ public void saveData(String write) {
+ try {
+ FileWriter writer = new FileWriter("data/player.data");
+ writer.write(write);
+ writer.close();
+ readData();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void readData() {
+ try {
+ BufferedReader reader = new BufferedReader(new FileReader("data/player.data"));
+ String line = "";
+ String[] playerData;
+ while (true) {
+ playerData = new String[3];
+ line = reader.readLine();
+ if (line == null) {
+ break;
+ }
+ playerData = line.split(",");
+ Hashtable<String, String> playerHash = new Hashtable<>();
+ playerHash.put("dead", playerData[1]);
+ playerHash.put("timeLeft", playerData[2]);
+ this.playerData.put(playerData[0], playerHash);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public Hashtable<String, Hashtable<String, String>> getPlayers() {
+ return playerData;
+ }
+}
diff --git a/src/net/brysonsteck/Resurrection/PlayerListener.java b/src/net/brysonsteck/Resurrection/PlayerListener.java
new file mode 100644
index 0000000..a12ec52
--- /dev/null
+++ b/src/net/brysonsteck/Resurrection/PlayerListener.java
@@ -0,0 +1,37 @@
+package net.brysonsteck.Resurrection;
+
+import org.bukkit.GameMode;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.entity.PlayerDeathEvent;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionEffectType;
+
+public class PlayerListener implements Listener {
+
+ @EventHandler
+ public void onJoin() {
+
+ }
+
+ @EventHandler
+ public void onDeath(PlayerDeathEvent e) {
+ System.out.println("Resurrection: A player has died!");
+ Player p = e.getEntity();
+ p.setGameMode(GameMode.SPECTATOR);
+ p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,1000000000, 500));
+ p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 1000000000, 500));
+ Long timeOfDeath = System.currentTimeMillis();
+ Long resurrectionTime = timeOfDeath + 86400000;
+
+ TimeCheck death = new TimeCheck(timeOfDeath);
+ TimeCheck resurrect = new TimeCheck(timeOfDeath + 86400000);
+
+ String deathFormatted = death.formatTime();
+ String resurrectFormatted = resurrect.formatTime();
+
+
+ p.sendMessage("You have died! You will be able to respawn in 24 hours.");
+ }
+}
diff --git a/src/net/brysonsteck/Resurrection/Resurrection.java b/src/net/brysonsteck/Resurrection/Resurrection.java
new file mode 100644
index 0000000..2547e6c
--- /dev/null
+++ b/src/net/brysonsteck/Resurrection/Resurrection.java
@@ -0,0 +1,48 @@
+package net.brysonsteck.Resurrection;
+
+import net.brysonsteck.Resurrection.commands.CommandAbout;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public class Resurrection extends JavaPlugin {
+ public Plugin plugin = getPlugin(Resurrection.class);
+
+ //spigot things
+ @Override
+ public void onDisable() {
+ super.onDisable();
+ }
+
+ @Override
+ public void onEnable() {
+ super.onEnable();
+
+ // register listener
+ this.getServer().getPluginManager().registerEvents(new PlayerListener(), this);
+
+ // register commands
+ this.getCommand("about").setExecutor(new CommandAbout());
+
+ System.out.println("Resurrection: I'm alive!");
+ }
+
+ // end of spigot things
+ public static void main(String[] args) {
+// PlayerData playerData = new PlayerData();
+// playerData.saveData("This is the first line\nthis is the second line");
+// System.out.println(playerData.getPlayers());
+// playerData.readData();
+
+// playerData.saveData("username,false,0");
+// System.out.println("now adding two more lines");
+// playerData.saveData(playerData.getPlayers() + "this is the third line\nthis is the fourth line\nthe thread is now sleeping\nonce more\nand again");
+// System.out.println(playerData.getPlayers());
+// try {
+// Thread.sleep(100000);
+// } catch (InterruptedException e) {
+// e.printStackTrace();
+// }
+
+ }
+
+}
diff --git a/src/net/brysonsteck/Resurrection/TImeCheck.java b/src/net/brysonsteck/Resurrection/TImeCheck.java
new file mode 100644
index 0000000..a7ea06c
--- /dev/null
+++ b/src/net/brysonsteck/Resurrection/TImeCheck.java
@@ -0,0 +1,20 @@
+package net.brysonsteck.Resurrection;
+
+import java.util.concurrent.TimeUnit;
+
+class TimeCheck {
+ long millis;
+
+ public TimeCheck(long millis) {
+ this.millis = millis;
+ }
+
+ public String formatTime() {
+ String formattedTime = String.format("%d hrs, %d min, %d sec",
+ TimeUnit.MILLISECONDS.toHours(millis),
+ TimeUnit.MILLISECONDS.toMinutes(millis),
+ TimeUnit.MILLISECONDS.toSeconds(millis) -
+ TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
+ return formattedTime;
+ }
+}
diff --git a/src/net/brysonsteck/Resurrection/commands/CommandAbout.java b/src/net/brysonsteck/Resurrection/commands/CommandAbout.java
new file mode 100644
index 0000000..ac95f20
--- /dev/null
+++ b/src/net/brysonsteck/Resurrection/commands/CommandAbout.java
@@ -0,0 +1,20 @@
+package net.brysonsteck.Resurrection.commands;
+
+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 {
+ @Override
+ public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
+ String aboutMessage = "This is the about message for Resurrection.";
+ if (commandSender instanceof Player) {
+ Player p = (Player) commandSender;
+ p.sendMessage(aboutMessage);
+ } else {
+ System.out.println(aboutMessage);
+ }
+ return true;
+ }
+}
diff --git a/src/net/brysonsteck/Resurrection/plugin.yml b/src/net/brysonsteck/Resurrection/plugin.yml
new file mode 100644
index 0000000..a253795
--- /dev/null
+++ b/src/net/brysonsteck/Resurrection/plugin.yml
@@ -0,0 +1,13 @@
+main: net.brysonsteck.Resurrection.Resurrection
+name: Resurrection
+author: 'Bryson Steck'
+version: '0.0.1 alpha'
+commands:
+ about:
+ description: Displays information about Resurrection.
+ permission: op
+ usage: /about
+
+ timecheck:
+ description: Displays the remaining time before the player (or specified player) is resurrected.
+ usage: /timecheck [PLAYER NAME] \ No newline at end of file