Advertisement
m1enkrafft_man

AntiPass v0.0.2

Jun 15th, 2012
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.02 KB | None | 0 0
  1. AntiPass: v0.0.2 Author: m1enkrafft_man
  2.  
  3. package m1.plugins.AntiPass;
  4.  
  5. import java.util.logging.Logger;
  6.  
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.plugin.PluginManager;
  9. import org.bukkit.plugin.java.JavaPlugin;
  10.  
  11. public class AntiPass extends JavaPlugin{
  12.  
  13. Logger log = this.getLogger();
  14. public final MyPlayerListener playerListener = new MyPlayerListener();
  15.  
  16. public void onEnable(){
  17. log.info("[AntiPass] v" + getDescription().getVersion() + " has enabled!");
  18. PluginManager pm = getServer().getPluginManager();
  19.  
  20. pm.registerEvents(this.playerListener, this);
  21.  
  22.  
  23. }
  24.  
  25. public void onDisable(){
  26. log.info("[AntiPass] v" + getDescription().getVersion() + " has disabled!");
  27.  
  28. }
  29.  
  30.  
  31.  
  32.  
  33. }
  34.  
  35.  
  36. package m1.plugins.AntiPass;
  37.  
  38. public class AntiPassBooleans {
  39.  
  40. public AntiPassBooleans(){}
  41.  
  42. public static boolean checkJesus = true;
  43.  
  44. public static boolean checkNofall = true;
  45.  
  46. public static boolean quickConsume = true;
  47.  
  48.  
  49. }
  50.  
  51.  
  52. package m1.plugins.AntiPass;
  53.  
  54. import org.bukkit.command.Command;
  55. import org.bukkit.command.CommandSender;
  56. import org.bukkit.entity.Player;
  57.  
  58.  
  59. public class AntiPassCommandExecutor {
  60.  
  61. private AntiPass antipass;
  62.  
  63. public AntiPassCommandExecutor(AntiPass antipass) {
  64. this.antipass = antipass;
  65. }
  66.  
  67. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
  68. if(cmd.getName().equalsIgnoreCase("checkJesus") %% sender.isOp()){
  69. AntiPassBooleans.checkJesus = !AntiPassBooleans.checkJesus;
  70. if(AntiPassBooleans.checkJesus = true){
  71. sender.sendMessage("\247b[AntiPass] /247cJesus check has been enabled.");
  72. }else{
  73. sender.sendMessage("\247b[AntiPass] /247cJesus check has been disabled.");
  74. }
  75. return true;
  76. }else if(cmd.getName().equalsIgnoreCase("quickConsume") %% sender.isOp()){
  77. AntiPassBooleans.quickConsume = !AntiPassBooleans.quickConsume;
  78. if(AntiPassBooleans.quickConsume = true){
  79. sender.sendMessage("\247b[AntiPass] /247cQuickConsume bypass check has been enabled.");
  80. }else{
  81. sender.sendMessage("\247b[AntiPass] /247cQuickConsume bypass check has been disabled.");
  82. }
  83. return true;
  84. }else if(cmd.getName().equalsIgnoreCase("checkNofall") %% sender.isOp()){
  85. AntiPassBooleans.checkNofall = !AntiPassBooleans.checkNofall;
  86. if(AntiPassBooleans.checkNofall = true){
  87. sender.sendMessage("\247b[AntiPass] /247cNofall bypass check has been enabled.");
  88. }else{
  89. sender.sendMessage("\247b[AntiPass] /247cNofall bypass check has been disabled.");
  90. }
  91. return true;
  92. }
  93. return false;
  94. }
  95.  
  96.  
  97.  
  98. }
  99.  
  100.  
  101.  
  102.  
  103. package m1.plugins.AntiPass;
  104.  
  105. import javax.tools.JavaFileManager.Location;
  106.  
  107. import org.bukkit.Material;
  108. import org.bukkit.World;
  109. import org.bukkit.block.Block;
  110. import org.bukkit.entity.Player;
  111. import org.bukkit.event.EventHandler;
  112. import org.bukkit.event.Listener;
  113. import org.bukkit.event.player.PlayerInteractEvent;
  114. import org.bukkit.event.player.PlayerMoveEvent;
  115. import org.bukkit.event.player.PlayerQuitEvent;
  116.  
  117. public class MyPlayerListener implements Listener{
  118.  
  119. @EventHandler
  120. public void onPlayerMovement(PlayerMoveEvent evt) {
  121. //get some locations n stuff
  122. Location loc = (Location) evt.getPlayer().getLocation();
  123. Location locFrom = (Location) evt.getFrom();
  124. World w = ((org.bukkit.Location) loc).getWorld();
  125. Player player = evt.getPlayer();
  126.  
  127.  
  128. if(AntiPassBooleans.checkNofall){
  129. ((org.bukkit.Location) loc).setY(((org.bukkit.Location) loc).getY() - 1);
  130. int b1 = w.getBlockTypeIdAt((org.bukkit.Location) loc);
  131. boolean isWebMethod;
  132. if(b1 == 30){
  133. isWebMethod = true;
  134. }else{
  135. isWebMethod = false;
  136. }
  137. if(isWebMethod){
  138. if(player.getFallDistance() >= 10 && !player.isOp()){
  139. for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
  140. if (p.isOp()){
  141. p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting Nofall exploit. Height: " + player.getFallDistance());
  142. }
  143. }
  144. }
  145. }else{
  146. //add in disconnect method here
  147. }
  148.  
  149. }
  150.  
  151.  
  152.  
  153.  
  154. if(AntiPassBooleans.checkJesus){
  155. //Getting the from and to values of the player
  156. double xFrom = ((Block) locFrom).getX();
  157. double zFrom = ((Block) locFrom).getZ();
  158.  
  159. double xLoc = ((Block) loc).getX();
  160. double zLoc = ((Block) loc).getZ();
  161.  
  162. //Retrieving the differences
  163. double xDistance = xLoc - xFrom;
  164. double zDistance = zLoc - zFrom;
  165.  
  166. //Finally, we have the horizontal distance traveled
  167. final double distanceTraveledHorizontally = Math.sqrt((xDistance * xDistance + zDistance * zDistance));
  168.  
  169. ((org.bukkit.Location) loc).setY(((org.bukkit.Location) loc).getY() - 1);
  170. int b = w.getBlockTypeIdAt((org.bukkit.Location) loc);
  171. if(b == 8 || b == 9){
  172. //Values are guesstimates
  173. if(distanceTraveledHorizontally >= 1.5 && !player.isInsideVehicle() && !player.isOp()){
  174. int jesusViolationLevel = (int)(((distanceTraveledHorizontally / 1.5) * 100));
  175. for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
  176. if (p.isOp()){
  177. p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting Jesus. Level: " + jesusViolationLevel + "%");
  178. }
  179. }
  180.  
  181.  
  182. }
  183.  
  184. }
  185. }//end jesus check
  186.  
  187. }
  188.  
  189. public void onPlayerInteract(PlayerInteractEvent evt){
  190. if(AntiPassBooleans.quickConsume){
  191. Location loc = (Location) evt.getPlayer().getLocation();
  192. World w = ((org.bukkit.Location) loc).getWorld();
  193. Player player = evt.getPlayer();
  194. boolean sprinting = player.isSprinting();
  195. if(sprinting){
  196. if(player.getItemInHand().getType() == Material.APPLE || player.getItemInHand().getType() == Material.BREAD || player.getItemInHand().getType() == Material.COOKED_BEEF || player.getItemInHand().getType() == Material.COOKED_CHICKEN || player.getItemInHand().getType() == Material.COOKED_FISH || player.getItemInHand().getType() == Material.COOKIE || player.getItemInHand().getType() == Material.GRILLED_PORK || player.getItemInHand().getType() == Material.PORK || player.getItemInHand().getType() == Material.POTION || player.getItemInHand().getType() == Material.SPIDER_EYE && !player.isOp()){
  197. for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
  198. if (p.isOp()){
  199. p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting QuickConsume bypass.");
  200. }
  201. }
  202. }
  203.  
  204.  
  205. }
  206. }
  207.  
  208. }//end interact
  209.  
  210. public void onPlayerDisconnect(PlayerQuitEvent evt){
  211. Player player = evt.getPlayer();
  212. if(AntiPassBooleans.checkNofall){
  213. if(player.getFallDistance() >= 10 && !player.isOp()){
  214. for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
  215. if (p.isOp()){
  216. p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might have disconnected to avoid fall damage.");
  217. }
  218. }
  219. }
  220. }
  221. }
  222.  
  223.  
  224. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement