View difference between Paste ID: rpp0rTD9 and mXDgTGKX
SHOW: | | - or go back to the newest paste.
1
public HashMap<String, String> requests = new HashMap<String, String>();
2
3
@EventHandler
4
public void onQuit(PlayerQuitEvent event) {
5
	Player player = event.getPlayer();
6-
	if (requests.contains(player.getName().toLowerCase())) {
6+
	if (requests.containsKey(player.getName().toLowerCase())) {
7
		requests.remove(player.getName().toLowerCase());
8
	}
9
}
10
11
@Override
12
public boolean onCommand(CommandSender sender, Command cmd, String lb, String[] args) {
13
	if (command.getName().equalsIgnoreCase("tele")) {
14
		if (!(sender.hasPermission("tele.tele") || sender.isOp())) {
15
			sender.sendMessage("§cVocê não tem acesso a esse comando!");
16
		} else if (!(sender instanceof Player)) {
17
			sender.sendMessage("§cSomente jogadores podem usar esse comando!");
18
		} else if (args.length == 0) {
19
			sender.sendMessage("§6[Servidor] §aComandos:");
20
			sender.sendMessage(" §6/tele enviar: §eEnvia um pedido de teleporte.");
21
			sender.sendMessage(" §6/tele aceitar: §eAceita um pedido de teleporte.");
22
			sender.sendMessage(" §6/tele negar: §eNega um pedido de teleporte.");
23
		} else if (args[0].equalsIgnoreCase("enviar")) {
24
			if (!(sender.hasPermission("tele.enviar") || sender.isOp())) {
25
				sender.sendMessage("§cVocê não tem acesso a esse comando!");
26
			} else if (args.length != 2) {
27
				sender.sendMessage("§6[Servidor] §cUse: /tele enviar <jogador>");
28
			} else if (Bukkit.getServer().getPlayerExact(args[1]) == null) {
29
				sender.sendMessage("§cJogador não encontrado!");
30-
			} else if (requests.contains(sender.getName().toLowerCase())) {
30+
			} else if (requests.containsKey(sender.getName().toLowerCase())) {
31
				sender.sendMessage("§cVocê já tem um pedido de teleporte pendente, aguarde até que ele seja aceito ou negado!");
32
			} else if (sender.getName().toLowerCase().equals(args[1].toLowerCase())) {
33
				sender.sendMessage("§cVocê não pode enviar um pedido de teleporte para sí mesmo!");
34
			} else {
35
				final Player player = (Player) sender;
36
				final Player referido = Bukkit.getServer().getPlayerExact(args[1]);
37
				requests.put(player.getName().toLowerCase(), referido.getName().toLowerCase());
38
				player.sendMessage("§ePedido de teleporte enviado para §6" + referido.getName() + "§e!");
39
				referido.sendMessage("§6" + player.getName() + " §equer se teleportar até você!");
40
				referido.sendMessage("§ePara aceitar, digite: §6/tele aceitar " + player.getName());
41
				new BukkitRunnable() {
42
					@Override
43
					public void run() {
44
						requests.remove(player.getName().toLowerCase());
45
					}
46
				}.runTaskLater(20 * 10, this);
47
			}
48
		} else if (args[0].equalsIgnoreCase("aceitar")) {
49
			if (!(sender.hasPermission("tele.aceitar") || sender.isOp())) {
50
				sender.sendMessage("§cVocê não tem acesso a esse comando!");
51
			} else if (args.length != 2) {
52
				sender.sendMessage("§6[Servidor] §cUse: /tele aceitar <jogador>");
53-
			} else if (!requests.get(args[1].toLowerCase()).equals(sender.getName().toLowerCase())) {
53+
54
				sender.sendMessage("§cJogador não encontrado!");
55
			} else if (!requests.containsKey(args[1].toLowerCase()) || !requests.get(args[1].toLowerCase()).equals(sender.getName().toLowerCase())) {
56
				sender.sendMessage("§cEsse jogador não pediu para se teleportar até você!");
57
			} else if (sender.getName().toLowerCase().equals(args[1].toLowerCase())) {
58
				sender.sendMessage("§cEsse jogador é você!");
59
			} else {
60
				Player player = (Player) sender;
61
				Player referido = Bukkit.getServer().getPlayerExact(args[1]);
62
				requests.remove(referido.getName().toLowerCase());
63
				player.sendMessage("§eVocê aceitou o pedido de teleporte de §6" + referido.getName() + "§e!");
64
				referido.sendMessage("§6" + player.getName() + " §eaceitou seu pedido de teleporte!");
65
				referido.teleport(player);
66
			}
67
		} else if (args[0].equalsIgnoreCase("negar")) {
68
			if (!(sender.hasPermission("tele.negar") || sender.isOp())) {
69
				sender.sendMessage("§cVocê não tem acesso a esse comando!");
70-
			} else if (!requests.get(args[1].toLowerCase()).equals(sender.getName().toLowerCase())) {
70+
71
				sender.sendMessage("§6[Servidor] §cUse: /tele negar<jogador>");
72
			} else if (Bukkit.getServer().getPlayerExact(args[1]) == null) {
73
				sender.sendMessage("§cJogador não encontrado!");
74
			} else if (!requests.containsKey(args[1].toLowerCase()) || !requests.get(args[1].toLowerCase()).equals(sender.getName().toLowerCase())) {
75
				sender.sendMessage("§cEsse jogador não pediu para se teleportar até você!");
76
			} else if (sender.getName().toLowerCase().equals(args[1].toLowerCase())) {
77
				sender.sendMessage("§cEsse jogador é você!");
78
			} else {
79
				Player player = (Player) sender;
80
				Player referido = Bukkit.getServer().getPlayerExact(args[1]);
81
				requests.remove(referido.getName().toLowerCase());
82
				player.sendMessage("§eVocê negou o pedido de teleporte de §6" + referido.getName() + "§e!");
83
				referido.sendMessage("§6" + player.getName() + " §enegou seu pedido de teleporte!");
84
			}
85
		} else {
86
			sender.sendMessage("§6[Servidor] §cUse: /tele")
87
		}
88
	}
89
}