-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathHomeEvents.java
More file actions
94 lines (86 loc) · 4.01 KB
/
HomeEvents.java
File metadata and controls
94 lines (86 loc) · 4.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.technovision.homegui.events;
import com.cryptomorin.xseries.XMaterial;
import com.technovision.homegui.Homegui;
import com.technovision.homegui.gui.ChangeIconGUI;
import com.technovision.homegui.gui.HomeGUI;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType;
public class HomeEvents implements Listener {
@EventHandler
public void onGuiActivation(InventoryClickEvent event){
if (event.getInventory().getHolder() instanceof HomeGUI) {
if (event.getClickedInventory() == null) { return; }
Player player = (Player) event.getWhoClicked();
if (event.getCurrentItem() != null) {
if (event.getCurrentItem().getType() == Material.AIR) { return; }
event.setCancelled(true);
if (event.getClickedInventory().getType() == InventoryType.PLAYER) { return; }
String playerID = player.getUniqueId().toString();
int slotNum = event.getSlot();
String name = HomeGUI.allHomes.get(playerID).get(slotNum).getName();
//Left Click
if (event.isLeftClick()) {
player.performCommand("essentials:home " + name);
player.closeInventory();
//Middle Click
} else if (event.getClick() == ClickType.SHIFT_RIGHT) {
player.performCommand("essentials:delhome " + name);
Homegui.dataReader.removeIcon(playerID, name);
player.closeInventory();
//Right Click
} else if (event.isRightClick()) {
player.closeInventory();
ChangeIconGUI iconGUI = new ChangeIconGUI();
iconGUI.openInventory(player, HomeGUI.allHomes.get(playerID).get(slotNum));
}
}
} else if (event.getInventory().getHolder() instanceof ChangeIconGUI) {
if (event.getClickedInventory() == null) { return; }
Player player = (Player) event.getWhoClicked();
if (event.getCurrentItem() != null) {
if (event.getCurrentItem().getType() == Material.AIR) { return; }
event.setCancelled(true);
if (event.getClickedInventory().getType() == InventoryType.PLAYER) { return; }
if (event.isLeftClick()) {
String itemName = getFriendlyName(event.getCurrentItem().getType());
String playerID = event.getWhoClicked().getUniqueId().toString();
XMaterial icon = XMaterial.matchXMaterial(event.getCurrentItem().getType());
String homeName = ChangeIconGUI.homes.get(playerID).getName();
Homegui.dataReader.write(playerID, homeName, icon.parseMaterial());
String msg = Homegui.PLUGIN.getConfig().getString("icon-select-message").replace("&", "§");
msg = msg.replace("{home}", homeName);
msg = msg.replace("{icon}", itemName);
player.sendMessage(msg);
player.closeInventory();
}
}
}
}
private String format(String s) {
if (!s.contains("_")) {
return capitalize(s);
}
String[] j = s.split("_");
String c = "";
for (String f : j) {
f = capitalize(f);
c += c.equalsIgnoreCase("") ? f : " " + f;
}
return c;
}
private String capitalize(String text) {
String firstLetter = text.substring(0, 1).toUpperCase();
String next = text.substring(1).toLowerCase();
String capitalized = firstLetter + next;
return capitalized;
}
public String getFriendlyName(Material m) {
String name = format(m.name());
return name;
}
}