From 7627b7f7e4e7071b433b4808bc8496c2e1d28a53 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Sat, 5 Feb 2011 18:18:20 -0800 Subject: [PATCH] Request on bukkit forums, I don't plan to update this. Feel free to use the code however you wish. --- BackOff/.classpath | 7 ++ BackOff/.project | 17 +++ BackOff/.settings/org.eclipse.jdt.core.prefs | 12 ++ .../com/bukkit/nossr50/BackOff/BackOff.class | Bin 0 -> 2791 bytes .../nossr50/BackOff/bPlayerListener.class | Bin 0 -> 4953 bytes BackOff/bin/plugin.yml | 3 + .../com/bukkit/nossr50/BackOff/BackOff.java | 41 +++++++ .../nossr50/BackOff/bPlayerListener.java | 107 ++++++++++++++++++ BackOff/src/plugin.yml | 3 + 9 files changed, 190 insertions(+) create mode 100644 BackOff/.classpath create mode 100644 BackOff/.project create mode 100644 BackOff/.settings/org.eclipse.jdt.core.prefs create mode 100644 BackOff/bin/com/bukkit/nossr50/BackOff/BackOff.class create mode 100644 BackOff/bin/com/bukkit/nossr50/BackOff/bPlayerListener.class create mode 100644 BackOff/bin/plugin.yml create mode 100644 BackOff/src/com/bukkit/nossr50/BackOff/BackOff.java create mode 100644 BackOff/src/com/bukkit/nossr50/BackOff/bPlayerListener.java create mode 100644 BackOff/src/plugin.yml diff --git a/BackOff/.classpath b/BackOff/.classpath new file mode 100644 index 000000000..c7455396a --- /dev/null +++ b/BackOff/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/BackOff/.project b/BackOff/.project new file mode 100644 index 000000000..9a37bd8d7 --- /dev/null +++ b/BackOff/.project @@ -0,0 +1,17 @@ + + + BackOff + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/BackOff/.settings/org.eclipse.jdt.core.prefs b/BackOff/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..ee0c391d9 --- /dev/null +++ b/BackOff/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Sat Feb 05 17:28:29 PST 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.6 +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.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/BackOff/bin/com/bukkit/nossr50/BackOff/BackOff.class b/BackOff/bin/com/bukkit/nossr50/BackOff/BackOff.class new file mode 100644 index 0000000000000000000000000000000000000000..901ba79dc675540e89bd7cc429c045ebfe322ffd GIT binary patch literal 2791 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 debugees = new HashMap(); + private final String name = "BackOff"; + + public BackOff(PluginLoader pluginLoader, Server instance, PluginDescriptionFile desc, File folder, File plugin, ClassLoader cLoader) { + super(pluginLoader, instance, desc, folder, plugin, cLoader); + } + + public void onEnable() { + PluginManager pm = getServer().getPluginManager(); + pm.registerEvent(Event.Type.PLAYER_MOVE, playerListener, Priority.Normal, this); + pm.registerEvent(Event.Type.PLAYER_COMMAND, playerListener, Priority.Normal, this); + pm.registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Normal, this); + PluginDescriptionFile pdfFile = this.getDescription(); + System.out.println( pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" ); + } + public void onDisable() { + System.out.println("BackOff disabled."); + } +} + diff --git a/BackOff/src/com/bukkit/nossr50/BackOff/bPlayerListener.java b/BackOff/src/com/bukkit/nossr50/BackOff/bPlayerListener.java new file mode 100644 index 000000000..986d0e9d5 --- /dev/null +++ b/BackOff/src/com/bukkit/nossr50/BackOff/bPlayerListener.java @@ -0,0 +1,107 @@ +package com.bukkit.nossr50.BackOff; + +import java.util.ArrayList; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerListener; +import org.bukkit.event.player.PlayerMoveEvent; + +/** + * Handle events for all Player related events + * @author nossr50 + */ + + +public class bPlayerListener extends PlayerListener { + private final BackOff plugin; + + static ArrayList backOffList = new ArrayList(); + public boolean isBackOff(String playerName) {return backOffList.contains(playerName);} + public void removeBackOff(String playerName) {backOffList.remove(backOffList.indexOf(playerName));} + public void addBackOff(String playerName) {backOffList.add(playerName);} + static ArrayList ibackOffList = new ArrayList(); + public boolean isBackOffi(String playerName) {return ibackOffList.contains(playerName);} + public void removeBackOffi(String playerName) {ibackOffList.remove(backOffList.indexOf(playerName));} + public void addBackOffi(String playerName) {ibackOffList.add(playerName);} + + public static double getDistance(Player player1, Player player2) + { + return Math.sqrt(Math.pow(player1.getLocation().getX() - player2.getLocation().getX(), 2) + Math.pow(player1.getLocation().getY() - player2.getLocation().getY(), 2) + + Math.pow(player1.getLocation().getZ() - player2.getLocation().getZ(), 2)); + } + public static double getDistance(Location loc, Player player2) + { + return Math.sqrt(Math.pow(loc.getX() - player2.getLocation().getX(), 2) + Math.pow(loc.getY() - player2.getLocation().getY(), 2) + + Math.pow(loc.getZ() - player2.getLocation().getZ(), 2)); + } + + public bPlayerListener(BackOff instance) { + plugin = instance; + } + public boolean isPlayer(String playerName){ + for(Player herp : plugin.getServer().getOnlinePlayers()){ + if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){ + return true; + } + } + return false; + } + public Player getPlayer(String playerName){ + for(Player herp : plugin.getServer().getOnlinePlayers()){ + if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){ + return herp; + } + } + return null; + } + public void onPlayerMove(PlayerMoveEvent event) { + Player player = event.getPlayer(); + Location to = event.getTo(); + Location from = event.getFrom(); + for (Player derp : plugin.getServer().getOnlinePlayers()){ + if(isBackOff(derp.getName()) && !isBackOffi(player.getName())){ + if(player != derp && (getDistance(player, derp) < 7)){ + if(getDistance(to, derp) > getDistance(from, derp)){ + player.teleportTo(event.getFrom()); + } + } + } + } + } + public void onPlayerCommand(PlayerChatEvent event){ + String[] split = event.getMessage().split(" "); + Player player = event.getPlayer(); + if(player.isOp() && split[0].equalsIgnoreCase("/backoff")){ + if(split.length == 1){ + if(isBackOff(player.getName())){ + removeBackOff(player.getName()); + player.sendMessage("Back off mode disabled"); + return; + } else{ + addBackOff(player.getName()); + player.sendMessage("Back off mode enabled"); + return; + } + } + if(isPlayer(split[1])){ + Player target = getPlayer(split[1]); + if(isBackOffi(target.getName())){ + removeBackOffi(target.getName()); + target.sendMessage("Removed from back off mode immunity"); + if(!target.getName().equals(player.getName())) + player.sendMessage("Removed " + target.getName() + " from back off mode"); + } else { + addBackOffi(target.getName()); + target.sendMessage("Added to back off mode immunity"); + if(!target.getName().equals(player.getName())) + player.sendMessage("Added " + target.getName() + " from back off mode"); + } + } + } + } +} + diff --git a/BackOff/src/plugin.yml b/BackOff/src/plugin.yml new file mode 100644 index 000000000..f471fca9f --- /dev/null +++ b/BackOff/src/plugin.yml @@ -0,0 +1,3 @@ +name: BackOff +main: com.bukkit.nossr50.BackOff.BackOff +version: 1.0 \ No newline at end of file