View difference between Paste ID: jqRe6fhX and jJXe9kUT
SHOW: | | - or go back to the newest paste.
1
package m1.plugins.AntiPass;
2
3
import java.util.logging.Logger;
4
5
import org.bukkit.entity.Player;
6
import org.bukkit.plugin.PluginManager;
7
import org.bukkit.plugin.java.JavaPlugin;
8
9
public class AntiPass extends JavaPlugin{
10
	
11
	Logger log = this.getLogger();
12
	public final MyPlayerListener playerListener = new MyPlayerListener();
13
	
14
	public void onEnable(){ 
15
		log.info("[AntiPass] v" + getDescription().getVersion() + " has enabled!");
16
		PluginManager pm = getServer().getPluginManager();
17
		
18
		pm.registerEvents(this.playerListener, this);
19
		
20
		 
21
	}
22
	 
23
	public void onDisable(){ 
24
		log.info("[AntiPass] v" + getDescription().getVersion() + " has disabled!");
25
	 
26
	}
27
	
28
	
29
	
30
31
}
32
33
34
package m1.plugins.AntiPass;
35
36
import java.util.ArrayList;
37
38
import org.bukkit.OfflinePlayer;
39
import org.bukkit.command.Command;
40
import org.bukkit.command.CommandSender;
41
import org.bukkit.entity.Player;
42
43
44
public class AntiPassCommandExecutor {
45
	
46
	private AntiPass antipass;
47
	 
48
	public AntiPassCommandExecutor(AntiPass antipass) {
49
		this.antipass = antipass;
50
	}
51
	public static ArrayList vanish = new ArrayList();
52
	public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
53
		if(cmd.getName().equalsIgnoreCase("checkjesus") && sender.isOp()){
54
			AntiPassBooleans.checkJesus = !AntiPassBooleans.checkJesus;
55
			if(AntiPassBooleans.checkJesus = true){
56
				sender.sendMessage("\247b[AntiPass] /247cJesus check has been enabled.");
57
			}else{
58
				sender.sendMessage("\247b[AntiPass] /247cJesus check has been disabled.");
59
			}
60
			return true;
61
		}else if(cmd.getName().equalsIgnoreCase("quickconsume") && sender.isOp()){
62
			AntiPassBooleans.quickConsume = !AntiPassBooleans.quickConsume;
63
			if(AntiPassBooleans.quickConsume = true){
64
				sender.sendMessage("\247b[AntiPass] /247cQuickConsume bypass check has been enabled.");
65
			}else{
66
				sender.sendMessage("\247b[AntiPass] /247cQuickConsume bypass check has been disabled.");
67
			}
68
			return true;
69
		}else if(cmd.getName().equalsIgnoreCase("checknofall") && sender.isOp()){
70
			AntiPassBooleans.checkNofall = !AntiPassBooleans.checkNofall;
71
			if(AntiPassBooleans.checkNofall = true){
72
				sender.sendMessage("\247b[AntiPass] /247cNofall bypass check(s) has been enabled.");
73
			}else{
74
				sender.sendMessage("\247b[AntiPass] /247cNofall bypass check(s) has been disabled.");
75
			}
76
			return true;
77
		}else if(cmd.getName().equalsIgnoreCase("checkaimbot") && sender.isOp()){
78
			AntiPassBooleans.checkaimbot = !AntiPassBooleans.checkaimbot;
79
			if(AntiPassBooleans.checkaimbot = true){
80
				sender.sendMessage("\247b[AntiPass] /247cAimbot check has been enabled.");
81
			}else{
82
				sender.sendMessage("\247b[AntiPass] /247cAimbot check has been disabled.");
83
			}
84
			return true;
85
		}else if(cmd.getName().equalsIgnoreCase("checkblock") && sender.isOp()){
86
			AntiPassBooleans.checkBlock = !AntiPassBooleans.checkBlock;
87
			if(AntiPassBooleans.checkBlock = true){
88
				sender.sendMessage("\247b[AntiPass] /247cSpeedBlock check has been enabled.");
89
			}else{
90
				sender.sendMessage("\247b[AntiPass] /247cSpeedBlock check has been disabled.");
91
			}
92
			return true;
93
		}else if(cmd.getName().equalsIgnoreCase("checkfly") && sender.isOp()){
94
			AntiPassBooleans.bedCheck = !AntiPassBooleans.bedCheck;
95
			if(AntiPassBooleans.bedCheck = true){
96
				sender.sendMessage("\247b[AntiPass] /247cFlight bypass check has been enabled.");
97
			}else{
98
				sender.sendMessage("\247b[AntiPass] /247cFLight bypass check has been disabled.");
99
			}
100
			return true;
101
		}else if(cmd.getName().equalsIgnoreCase("autokick") && sender.isOp()){
102
			AntiPassBooleans.autoKick = !AntiPassBooleans.autoKick;
103
			if(AntiPassBooleans.autoKick = true){
104
				sender.sendMessage("\247b[AntiPass] /247cAutoKicker enabled. WARNING: Be wary when using this...");
105
			}else{
106
				sender.sendMessage("\247b[AntiPass] /247cAutoKicker disabled.");
107
			}
108
			return true;
109
		
110
		}else if(cmd.getName().equalsIgnoreCase("apvanish") && sender.isOp()){
111
			if(sender instanceof Player){
112
				Player toVanish = (Player) sender;
113
				AntiPassVanish.determinePlayer(toVanish);
114
				
115
				for(Player p : sender.getServer().getOnlinePlayers()){
116
					for(int x = 0; x < AntiPassVanish.vanish.size(); x++){
117
						Player who = (Player) AntiPassVanish.vanish.get(x);
118
						p.hidePlayer(who); 
119
					}
120
				}
121
			}else{
122
				sender.sendMessage("\247b[AntiPass] /247cMust be a player to vanish!.");
123
			}
124
			return true;
125
		}else if(cmd.getName().equalsIgnoreCase("aphelp") && sender.isOp()){
126
			sender.sendMessage("\247b[AntiPass] /247c/autokick - Toggles automatic kicker.");
127
			sender.sendMessage("\247b[AntiPass] /247c/quickconsume - Toggles QuickConsume bypass check.");
128
			sender.sendMessage("\247b[AntiPass] /247c/checkfly - Toggles Fly bypass check.");
129
			sender.sendMessage("\247b[AntiPass] /247c/checkjesus - Toggles Jesus bypass check.");
130
			sender.sendMessage("\247b[AntiPass] /247c/checkblock - Toggles QuickMove block check.");
131
			sender.sendMessage("\247b[AntiPass] /247c/checkaimbot - Toggles AimBot check.");
132
			sender.sendMessage("\247b[AntiPass] /247c/checknofall - Toggles Nofall bypass(es) check(s).");
133
			sender.sendMessage("\247b[AntiPass] /247c/apvanish - Makes the sender invisible. (Or visible again)");
134
			return true;
135
		
136
		}
137
		return false; 
138
		}
139
140
}
141
142
143
package m1.plugins.AntiPass;
144
145
import java.util.List;
146
147
import javax.tools.JavaFileManager.Location;
148
149
import org.bukkit.Material;
150
import org.bukkit.World;
151
import org.bukkit.block.Block;
152
import org.bukkit.entity.Player;
153
import org.bukkit.event.EventHandler;
154
import org.bukkit.event.Listener;
155
import org.bukkit.event.player.PlayerInteractEvent;
156
import org.bukkit.event.player.PlayerMoveEvent;
157
import org.bukkit.event.player.PlayerQuitEvent;
158
import org.bukkit.util.Vector;
159
160
public class MyPlayerListener implements Listener{
161
	
162
	@EventHandler
163
	public void onPlayerMovement(PlayerMoveEvent evt) {
164
		//get some locations n stuff
165
		Location loc = (Location) evt.getPlayer().getLocation();
166
		Location locFrom = (Location) evt.getFrom();
167
		World w = ((org.bukkit.Location) loc).getWorld();
168
		Player player = evt.getPlayer();
169
		
170
		if(AntiPassBooleans.checkaimbot){
171
			float pitch = ((org.bukkit.Location) loc).getPitch();
172
			float prevPitch = ((org.bukkit.Location) locFrom).getPitch();
173
			float almostFinal = pitch - prevPitch;
174
			float finalDiff;
175
			if(almostFinal < 0){
176
				finalDiff = almostFinal * (-1);
177
			}else{
178
				finalDiff = almostFinal;
179
			}
180
			if(finalDiff >= 120 && finalDiff <= 240){
181
				List los = player.getLineOfSight(null, 15);
182
				if(los.contains(evt.getPlayer().getServer().getOnlinePlayers())){
183
					for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
184
						if (p.isOp()){
185
							p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be using AimBot. Rotation to face player:" + finalDiff);
186
		                	}
187
		            	}
188
					}
189
				}
190
		}
191
		
192
		
193
		
194
		if(AntiPassBooleans.checkNofall){
195
			((org.bukkit.Location) loc).setY(((org.bukkit.Location) loc).getY() - 1);
196
			int b1 = w.getBlockTypeIdAt((org.bukkit.Location) loc);
197
			boolean isWebMethod;
198
			if(b1 == 30){
199
				isWebMethod = true;
200
			}else{
201
				isWebMethod = false;
202
			}
203
			if(isWebMethod){	
204
				if(player.getFallDistance() >= 10 && !player.isOp()){
205
					for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
206
						if (p.isOp()){
207
							p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting Nofall exploit. Height: " + player.getFallDistance());
208
		                	}
209
		            	}
210
						if(AntiPassBooleans.autoKick){
211
							player.kickPlayer("\247b[AntiPass] Kicked for possible hacking, but not banned. Relog to appeal... or confess.");
212
						}
213
					}
214
			}else{
215
				//add in disconnect method here
216
			}
217
			
218
		}
219
		
220
		
221
		
222
		
223
		if(AntiPassBooleans.checkJesus){
224
			//Getting the from and to values of the player
225
			double xFrom = ((Block) locFrom).getX();
226
			double zFrom = ((Block) locFrom).getZ();
227
			
228
			double xLoc = ((Block) loc).getX();
229
			double zLoc = ((Block) loc).getZ();
230
			
231
			//Retrieving the differences
232
			double xDistance = xLoc - xFrom;
233
			double zDistance = zLoc - zFrom;
234
			
235
			//Finally, we have the horizontal distance traveled
236
			final double distanceTraveledHorizontally = Math.sqrt((xDistance * xDistance + zDistance * zDistance));
237
			
238
			((org.bukkit.Location) loc).setY(((org.bukkit.Location) loc).getY() - 1);
239
			int b = w.getBlockTypeIdAt((org.bukkit.Location) loc);
240
			if(b == 8 || b == 9){
241
				//Values are guesstimates
242
				if(distanceTraveledHorizontally >= 1.5 && !player.isInsideVehicle() && !player.isOp()){
243
					int jesusViolationLevel = (int)(((distanceTraveledHorizontally / 1.5) * 100));
244
					for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
245
		                if (p.isOp()){
246
		                	p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting Jesus. Level: " + jesusViolationLevel + "%");
247
		                }
248
		            }
249
					if(AntiPassBooleans.autoKick){
250
						player.kickPlayer("\247b[AntiPass] Kicked for possible hacking, but not banned. Relog to appeal... or confess.");
251
					}
252
					
253
				}
254
			
255
			}
256
		}//end jesus check
257
		
258
	}
259
	@EventHandler
260
	public void onPlayerInteract(PlayerInteractEvent evt){
261
		
262
		if(AntiPassBooleans.bedCheck){
263
			Location loc = (Location) evt.getPlayer().getLocation();
264
			World w = ((org.bukkit.Location) loc).getWorld();
265
			Player player = evt.getPlayer();
266
267
			Location l1 = loc;
268
			Location l2 = loc;
269
			Location l3 = loc;
270
			Location l4 = loc;
271
			boolean nearBoat = false;
272
			boolean nearCart = false;
273
			boolean nearBed = false;
274
			
275
			
276
			if(player.getAllowFlight() != true && player.leaveVehicle() == true){	
277
				for(int x = 1; x < 4; x++){
278
					((org.bukkit.Location) l1).setX(((org.bukkit.Location) loc).getX() - x);
279
					((org.bukkit.Location) l2).setX(((org.bukkit.Location) loc).getX() + x);
280
					((org.bukkit.Location) l3).setZ(((org.bukkit.Location) loc).getZ() - x);
281
					((org.bukkit.Location) l4).setZ(((org.bukkit.Location) loc).getZ() + x);
282
					int b = w.getBlockTypeIdAt((org.bukkit.Location) loc);
283
					if(b == 355){
284
						nearBed = true;
285
					}else if(b == 328){
286
						nearCart = true;
287
					}else if(b == 333){
288
						nearBoat = true;
289
					}else{
290
						doNothing();
291
					}
292
					
293
				}
294
				Location bedLoc = (Location) player.getBedSpawnLocation();
295
				if(nearBed = false){
296
					if(bedLoc != null){
297
					
298
							double xLoc = ((Block) loc).getX();
299
							double zLoc = ((Block) loc).getZ();
300
							
301
							double xBed = ((Block) bedLoc).getX();
302
							double zBed = ((Block) bedLoc).getZ();
303
							
304
							//Retrieving the differences
305
							double xDistance = xLoc - xBed;
306
							double zDistance = zLoc - zBed;
307
							
308
							//Finally, we have the horizontal distance traveled
309
							final double distanceToPlayerBed = Math.sqrt((xDistance * xDistance + zDistance * zDistance));
310
							if(distanceToPlayerBed > 8){
311
								for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
312
					                if (p.isOp()){
313
					                	p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting a Flight bypass.");
314
					                }
315
					            }
316
								if(AntiPassBooleans.autoKick){
317
									player.kickPlayer("\247b[AntiPass] Kicked for possible hacking, but not banned. Relog to appeal... or confess.");
318
								}
319
							}
320
						}
321
					}else if(bedLoc == null){
322
						for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
323
			                if (p.isOp()){
324
			                	p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting a Flight bypass.");
325
			                }
326
			            }
327
						if(AntiPassBooleans.autoKick){
328
							player.kickPlayer("\247b[AntiPass] Kicked for possible hacking, but not banned. Relog to appeal... or confess.");
329
						}
330
					}
331
				}
332
			}
333
		
334
		if(AntiPassBooleans.quickConsume){
335
			Location loc = (Location) evt.getPlayer().getLocation();
336
			World w = ((org.bukkit.Location) loc).getWorld();
337
			Player player = evt.getPlayer();
338
			boolean sprinting = player.isSprinting();
339
			Vector v = player.getVelocity();
340
			if(v.length() > 3 || sprinting){
341
				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()){
342
					for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
343
		                if (p.isOp()){
344
		                	p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be attempting QuickConsume bypass.");
345
		                }
346
		            }
347
				}
348
			}
349
		}
350
		
351
		if(AntiPassBooleans.checkBlock){
352
			Location loc = (Location) evt.getPlayer().getLocation();
353
			World w = ((org.bukkit.Location) loc).getWorld();
354
			Player player = evt.getPlayer();
355
			if(player.isBlocking()){
356
				Vector v = player.getVelocity();
357
				if(v.length() > 3 || player.isSprinting()){
358
					for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
359
		                if (p.isOp()){
360
		                	p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might be blocking and still moving at normal speed.");
361
		                }
362
		            }
363
				}
364
			}
365
			
366
		}
367
368
	}//end interact
369
	@EventHandler
370
	public void onPlayerDisconnect(PlayerQuitEvent evt){
371
		Player player = evt.getPlayer();
372
		if(AntiPassBooleans.checkNofall){	
373
			if(player.getFallDistance() >= 10 && !player.isOp()){
374
				for (Player p : evt.getPlayer().getServer().getOnlinePlayers()) {
375
	                if (p.isOp()){
376
	                	p.sendMessage("\247b[AntiPass] \247c" + evt.getPlayer().getName() + " might have disconnected to avoid fall damage.");
377
	                }
378
	            }
379
			}
380
		}
381
	}
382
	
383
	public void doNothing(){
384
		return;
385
	}	
386
	
387
}
388
389
390
package m1.plugins.AntiPass;
391
392
import java.util.ArrayList;
393
394
public class AntiPassBooleans {
395
	
396
	public AntiPassBooleans(){}
397
	
398
	public static boolean checkJesus = true;
399
	
400
	public static boolean checkNofall = true;
401
	
402
	public static boolean quickConsume = true;
403
	
404
	public static boolean bedCheck = true;
405
	
406
	public static boolean autoKick = false;
407
	
408
	public static boolean checkaimbot = true;
409
	
410
	public static boolean checkBlock = true;
411
	
412
}