Works well so far.
Stealing lives still not impl'ed
This commit is contained in:
TheTechRobo 2022-03-05 15:17:11 -05:00
commit 7bdcfd890b
9 changed files with 151 additions and 0 deletions

12
.classpath Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="/home/thetechrobo/BT/Spigot/Spigot-API/target/spigot-api-1.18.1-R0.1-SNAPSHOT-shaded.jar"/>
<classpathentry kind="lib" path="/home/thetechrobo/json-simple-1.1.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
bin/

17
.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>lifesteal-mc</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,14 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.5

4
plugin.yml Normal file
View File

@ -0,0 +1,4 @@
name: Lifesteal
main: ca.thetechrobo.smp.LifestealPlugin
version: 1.0
api-version: 1.13

View File

@ -0,0 +1,24 @@
package ca.thetechrobo.smp;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
public class DeathListener implements Listener {
private ScoreboardWrapper scores;
@EventHandler
public void onDeath(PlayerDeathEvent e) {
Bukkit.broadcastMessage("It Works!");
this.scores.die(e.getEntity(), e.getEntity().getKiller());
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e) {
this.scores.addPlayerToScoreboard(e);
}
public void initialise() {
this.scores = new ScoreboardWrapper();
this.scores.initialise();
}
}

View File

@ -0,0 +1,10 @@
package ca.thetechrobo.smp;
import org.bukkit.inventory.ItemStack;
public class Life {
public ItemStack item;
public void create() {
}
}

View File

@ -0,0 +1,15 @@
package ca.thetechrobo.smp;
import org.bukkit.plugin.java.JavaPlugin;
public class LifestealPlugin extends JavaPlugin {
@Override
public void onEnable() {
DeathListener dl = new DeathListener();
dl.initialise();
getServer().getPluginManager().registerEvents(dl, this);
}
@Override
public void onDisable() {
}
}

View File

@ -0,0 +1,54 @@
package ca.thetechrobo.smp;
import org.bukkit.BanList.Type;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.ScoreboardManager;
public class ScoreboardWrapper {
private ScoreboardManager manager;
private HashMap<String, Scoreboard> boards;
public void initialise () {
this.manager = Bukkit.getScoreboardManager();
this.boards = new HashMap<String, Scoreboard>();
}
public void addPlayerToScoreboard(PlayerJoinEvent e) {
Player p = e.getPlayer();
Scoreboard temp = this.manager.getNewScoreboard();
Objective lives = temp.registerNewObjective("lives", "dummy", "Lives");
lives.setDisplaySlot(DisplaySlot.SIDEBAR);
Score score = lives.getScore(p.getName());
this.boards.put(p.getName(), temp);
Bukkit.broadcastMessage("It Works!");
score.setScore(1);
p.setScoreboard(this.boards.get(p.getName()));
}
public byte die(Player p, Player k) {
Scoreboard board = this.boards.get(p.getName());
Objective lives = board.getObjective("lives");
Score score = lives.getScore(p);
int curscore = score.getScore();
score.setScore(curscore - 1);
if (curscore - 1 == 0) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DAY_OF_YEAR, 5);
Date date = calendar.getTime();
Bukkit.getBanList(Type.NAME).addBan(p.getName(), "Ran out of lives.", date, null);
p.kickPlayer("Ran out of lives.");
}
return (byte) score.getScore();
}
}