/
PaperAPITools.java
163 lines (130 loc) · 5.23 KB
/
PaperAPITools.java
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package com.denizenscript.denizen.utilities;
import com.denizenscript.denizen.nms.NMSHandler;
import net.md_5.bungee.api.chat.BaseComponent;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Nameable;
import org.bukkit.block.Sign;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scoreboard.Team;
import org.bukkit.util.Consumer;
public class PaperAPITools {
public static PaperAPITools instance = new PaperAPITools();
public Inventory createInventory(InventoryHolder holder, int slots, String title) {
return Bukkit.getServer().createInventory(holder, slots, title);
}
public Inventory createInventory(InventoryHolder holder, InventoryType type, String title) {
return Bukkit.getServer().createInventory(holder, type, title);
}
public String parseComponent(Object input) {
if (input == null) {
return null;
}
if (input instanceof String) {
return (String) input;
}
else if (input instanceof BaseComponent[]) {
return FormattedTextHelper.stringify((BaseComponent[]) input);
}
else if (input instanceof BaseComponent) {
return FormattedTextHelper.stringify((BaseComponent) input);
}
else {
return input.toString();
}
}
public String getTitle(Inventory inventory) {
return NMSHandler.instance.getTitle(inventory);
}
public void setCustomName(Entity entity, String name) {
entity.setCustomName(name);
}
public String getCustomName(Entity entity) {
return entity.getCustomName();
}
public void setPlayerListName(Player player, String name) {
player.setPlayerListName(name);
}
public String getPlayerListName(Player player) {
return player.getPlayerListName();
}
public String[] getSignLines(Sign sign) {
return sign.getLines();
}
public void setSignLine(Sign sign, int line, String text) {
sign.setLine(line, text == null ? "" : text);
}
public void sendResourcePack(Player player, String url, String hash, boolean forced, String prompt) {
byte[] hashData = new byte[20];
for (int i = 0; i < 20; i++) {
hashData[i] = (byte) Integer.parseInt(hash.substring(i * 2, i * 2 + 2), 16);
}
player.setResourcePack(url, hashData);
}
public void sendSignUpdate(Player player, Location loc, String[] text) {
player.sendSignChange(loc, text);
}
public String getCustomName(Nameable object) {
return object.getCustomName();
}
public void setCustomName(Nameable object, String name) {
object.setCustomName(name);
}
public void sendConsoleMessage(CommandSender sender, String text) {
sender.spigot().sendMessage(FormattedTextHelper.parse(text, net.md_5.bungee.api.ChatColor.WHITE));
}
public InventoryView openAnvil(Player player, Location loc) {
throw new UnsupportedOperationException();
}
public void teleportPlayerRelative(Player player, Location loc) {
player.teleport(loc, PlayerTeleportEvent.TeleportCause.PLUGIN);
}
public void registerBrewingRecipe(String keyName, ItemStack result, ItemStack[] inputItem, boolean inputExact, ItemStack[] ingredientItem, boolean ingredientExact) {
throw new UnsupportedOperationException();
}
public void clearBrewingRecipes() {
}
public boolean isDenizenMix(ItemStack currInput, ItemStack ingredient) {
return false;
}
public String getDeathMessage(PlayerDeathEvent event) {
return event.getDeathMessage();
}
public void setDeathMessage(PlayerDeathEvent event, String message) {
event.setDeathMessage(message);
}
public void setSkin(Player player, String name) {
NMSHandler.instance.getProfileEditor().setPlayerSkin(player, name);
}
public void setSkinBlob(Player player, String blob) {
NMSHandler.instance.getProfileEditor().setPlayerSkinBlob(player, blob);
}
public <T extends Entity> T spawnEntity(Location location, Class<T> type, Consumer<T> configure, CreatureSpawnEvent.SpawnReason reason) {
return location.getWorld().spawn(location, type, configure);
}
public void setTeamPrefix(Team team, String prefix) {
team.setPrefix(prefix);
}
public void setTeamSuffix(Team team, String suffix) {
team.setSuffix(suffix);
}
public String getTeamPrefix(Team team) {
return team.getPrefix();
}
public String getTeamSuffix(Team team) {
return team.getSuffix();
}
public String convertTextToMiniMessage(String text) {
return text;
}
}