Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AntiPass: v0.0.2 Author: m1enkrafft_man
- package m1.plugins.AntiPass;
- import java.util.logging.Logger;
- import org.bukkit.entity.Player;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- public class AntiPass extends JavaPlugin{
- Logger log = this.getLogger();
- public final MyPlayerListener playerListener = new MyPlayerListener();
- public void onEnable(){
- log.info("[AntiPass] v" + getDescription().getVersion() + " has enabled!");
- PluginManager pm = getServer().getPluginManager();
- pm.registerEvents(this.playerListener, this);
- }
- public void onDisable(){
- log.info("[AntiPass] v" + getDescription().getVersion() + " has disabled!");
- }
- }
- package m1.plugins.AntiPass;
- public class AntiPassBooleans {
- public AntiPassBooleans(){}
- public static boolean checkJesus = true;
- public static boolean checkNofall = true;
- public static boolean quickConsume = true;
- }
- package m1.plugins.AntiPass;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- public class AntiPassCommandExecutor {
- private AntiPass antipass;
- public AntiPassCommandExecutor(AntiPass antipass) {
- this.antipass = antipass;
- }
- public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
- if(cmd.getName().equalsIgnoreCase("checkJesus") %% sender.isOp()){
- AntiPassBooleans.checkJesus = !AntiPassBooleans.checkJesus;
- if(AntiPassBooleans.checkJesus = true){
- sender.sendMessage("\247b[AntiPass] /247cJesus check has been enabled.");
- }else{
- sender.sendMessage("\247b[AntiPass] /247cJesus check has been disabled.");
- }
- return true;
- }else if(cmd.getName().equalsIgnoreCase("quickConsume") %% sender.isOp()){
- AntiPassBooleans.quickConsume = !AntiPassBooleans.quickConsume;
- if(AntiPassBooleans.quickConsume = true){
- sender.sendMessage("\247b[AntiPass] /247cQuickConsume bypass check has been enabled.");
- }else{
- sender.sendMessage("\247b[AntiPass] /247cQuickConsume bypass check has been disabled.");
- }
- return true;
- }else if(cmd.getName().equalsIgnoreCase("checkNofall") %% sender.isOp()){
- AntiPassBooleans.checkNofall = !AntiPassBooleans.checkNofall;
- if(AntiPassBooleans.checkNofall = true){
- sender.sendMessage("\247b[AntiPass] /247cNofall bypass check has been enabled.");
- }else{
- sender.sendMessage("\247b[AntiPass] /247cNofall bypass check has been disabled.");
- }
- return true;
- }
- return false;
- }
- }
- package m1.plugins.AntiPass;
- import javax.tools.JavaFileManager.Location;
- import org.bukkit.Material;
- import org.bukkit.World;
- import org.bukkit.block.Block;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.event.player.PlayerMoveEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- public class MyPlayerListener implements Listener{
- @EventHandler
- public void onPlayerMovement(PlayerMoveEvent evt) {
- //get some locations n stuff
- Location loc = (Location) evt.getPlayer().getLocation();
- Location locFrom = (Location) evt.getFrom();
- World w = ((org.bukkit.Location) loc).getWorld();
- Player player = evt.getPlayer();
- if(AntiPassBooleans.checkNofall){
- ((org.bukkit.Location) loc).setY(((org.bukkit.Location) loc).getY() - 1);
- int b1 = w.getBlockTypeIdAt((org.bukkit.Location) loc);
- boolean isWebMethod;
- if(b1 == 30){
- isWebMethod = true;
- }else{
- isWebMethod = false;
- }
- if(isWebMethod){
- if(player.getFallDistance() >= 10 && !player.isOp()){
- for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
- if (p.isOp()){
- p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting Nofall exploit. Height: " + player.getFallDistance());
- }
- }
- }
- }else{
- //add in disconnect method here
- }
- }
- if(AntiPassBooleans.checkJesus){
- //Getting the from and to values of the player
- double xFrom = ((Block) locFrom).getX();
- double zFrom = ((Block) locFrom).getZ();
- double xLoc = ((Block) loc).getX();
- double zLoc = ((Block) loc).getZ();
- //Retrieving the differences
- double xDistance = xLoc - xFrom;
- double zDistance = zLoc - zFrom;
- //Finally, we have the horizontal distance traveled
- final double distanceTraveledHorizontally = Math.sqrt((xDistance * xDistance + zDistance * zDistance));
- ((org.bukkit.Location) loc).setY(((org.bukkit.Location) loc).getY() - 1);
- int b = w.getBlockTypeIdAt((org.bukkit.Location) loc);
- if(b == 8 || b == 9){
- //Values are guesstimates
- if(distanceTraveledHorizontally >= 1.5 && !player.isInsideVehicle() && !player.isOp()){
- int jesusViolationLevel = (int)(((distanceTraveledHorizontally / 1.5) * 100));
- for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
- if (p.isOp()){
- p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting Jesus. Level: " + jesusViolationLevel + "%");
- }
- }
- }
- }
- }//end jesus check
- }
- public void onPlayerInteract(PlayerInteractEvent evt){
- if(AntiPassBooleans.quickConsume){
- Location loc = (Location) evt.getPlayer().getLocation();
- World w = ((org.bukkit.Location) loc).getWorld();
- Player player = evt.getPlayer();
- boolean sprinting = player.isSprinting();
- if(sprinting){
- 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()){
- for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
- if (p.isOp()){
- p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting QuickConsume bypass.");
- }
- }
- }
- }
- }
- }//end interact
- public void onPlayerDisconnect(PlayerQuitEvent evt){
- Player player = evt.getPlayer();
- if(AntiPassBooleans.checkNofall){
- if(player.getFallDistance() >= 10 && !player.isOp()){
- for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
- if (p.isOp()){
- p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might have disconnected to avoid fall damage.");
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement