/
ChestStopper.java
133 lines (100 loc) · 3.92 KB
/
ChestStopper.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
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class ChestStopper extends JavaPlugin implements Listener{
private String noperm;
private String reload;
private String denyopen;
protected String prefix;
private List<String> worlds;
protected boolean toggle = true;
protected boolean debug = false;
protected boolean update = false;
protected FileConfiguration config;
// PLUGIN MAIN FUNCTIONS ------------------------------------------------------------------------------------------------------------------
public void onEnable() {
loadconfig();
new Updater(this);
getServer().getPluginManager().registerEvents(this, this);
}
private void loadconfig(){
config = getConfig();
config.options().copyDefaults(true);
saveConfig();
debug = config.getBoolean("debug");
noperm = ChatColor.translateAlternateColorCodes('&', config.getString("msg.noperm"));
prefix = ChatColor.translateAlternateColorCodes('&', config.getString("msg.prefix"));
denyopen = ChatColor.translateAlternateColorCodes('&', config.getString("msg.denyopen"));
reload = ChatColor.translateAlternateColorCodes('&', config.getString("msg.reload"));
worlds = config.getStringList("worlds");
}
// ON COMMAND ------------------------------------------------------------------------------------------------------------------
public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) {
boolean isplayer = false;
Player p = null;
if ((sender instanceof Player)) {
p = (Player)sender;
isplayer = true;
}
if(cmd.getName().equalsIgnoreCase("cheststopper") && args.length == 1){
// reload
if(args[0].equalsIgnoreCase("reload")){
if(isplayer){
if(p.hasPermission("cheststopper.reload")){
loadconfig();
p.sendMessage(prefix + " " + reload);
return true;
}
else{
p.sendMessage(noperm);
return true;
}
}else {
loadconfig();
System.out.println(ChatColor.stripColor(prefix + " " + reload));
return true;
}
}
}
// nothing to do here \o/
return false;
}
// EVENTS ------------------------------------------------------------------------------------------------------------------
@EventHandler
public void onOpen(InventoryOpenEvent e) {
String world = e.getPlayer().getLocation().getWorld().getName();
for(String name : worlds) {
if(world.equalsIgnoreCase(name)) {
e.setCancelled(true);
try {
((Player) e.getPlayer()).sendMessage(prefix + " " + denyopen);
}catch(Exception e2) {}
break;
}
}
if(e.getPlayer().hasPermission("cheststopper.bypass")) {
e.setCancelled(false);
}
}
// UPDATER ------------------------------------------------------------------------------------------------------------------
protected void say(Player p, boolean b) {
if(b) {
System.out.println(ChatColor.stripColor(prefix + "------------------------------------------------"));
System.out.println(ChatColor.stripColor(prefix + " ChestStopper is outdated. Get the new version here:"));
System.out.println(ChatColor.stripColor(prefix + " http://www.pokemon-online.xyz/plugin"));
System.out.println(ChatColor.stripColor(prefix + "------------------------------------------------"));
}else {
p.sendMessage(prefix + "------------------------------------------------");
p.sendMessage(prefix + " ChestStopper is outdated. Get the new version here:");
p.sendMessage(prefix + " http://www.pokemon-online.xyz/plugin");
p.sendMessage(prefix + "------------------------------------------------");
}
}
}