9
9
import org .bukkit .command .Command ;
10
10
import org .bukkit .command .CommandExecutor ;
11
11
import org .bukkit .command .CommandSender ;
12
+ import org .bukkit .entity .Player ;
12
13
import org .bukkit .event .entity .EntityDamageEvent .DamageCause ;
13
14
14
15
import java .text .SimpleDateFormat ;
@@ -21,6 +22,12 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
21
22
22
23
switch (args [0 ]) {
23
24
case "add" :
25
+ if (sender instanceof Player ) {
26
+ if ( !( sender .hasPermission ("deathcounter.add" )) ) {
27
+ Messages .sendMessage (sender , "&cYou do not have access to this command." );
28
+ return true ;
29
+ }
30
+ }
24
31
if (args .length < 3 ) return this .cmdHelp (sender );
25
32
String playerName = args [1 ];
26
33
String method = args [2 ];
@@ -79,6 +86,12 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
79
86
}
80
87
return this .cmdAdd (sender , player , damageCause , killer , mobName );
81
88
case "remove" :
89
+ if (sender instanceof Player ) {
90
+ if ( !( sender .hasPermission ("deathcounter.remove" )) ) {
91
+ Messages .sendMessage (sender , "&cYou do not have access to this command." );
92
+ return true ;
93
+ }
94
+ }
82
95
if (args .length < 2 ) return this .cmdHelp (sender );
83
96
try {
84
97
int ID = Integer .parseInt (args [1 ]);
@@ -88,6 +101,12 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
88
101
return false ;
89
102
}
90
103
case "list" :
104
+ if (sender instanceof Player ) {
105
+ if ( !( sender .hasPermission ("deathcounter.list" )) ) {
106
+ Messages .sendMessage (sender , "&cYou do not have access to this command." );
107
+ return true ;
108
+ }
109
+ }
91
110
int page = 1 ;
92
111
if (args .length >= 2 ) {
93
112
try {
@@ -99,6 +118,12 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
99
118
}
100
119
return this .cmdList (sender , page );
101
120
case "details" :
121
+ if (sender instanceof Player ) {
122
+ if ( !( sender .hasPermission ("deathcounter.details" )) ) {
123
+ Messages .sendMessage (sender , "&cYou do not have access to this command." );
124
+ return true ;
125
+ }
126
+ }
102
127
if (args .length < 2 ) return this .cmdHelp (sender );
103
128
OfflinePlayer dPlayer = null ;
104
129
for (OfflinePlayer p : Bukkit .getOfflinePlayers ()) {
@@ -117,6 +142,25 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
117
142
}
118
143
}
119
144
return this .cmdDetails (sender , dPlayer , dPage );
145
+ case "me" :
146
+ if (sender instanceof Player ) {
147
+ if ( !( sender .hasPermission ("deathcounter.me" )) ) {
148
+ Messages .sendMessage (sender , "&cYou do not have access to this command." );
149
+ return true ;
150
+ }
151
+ }
152
+ if (args .length < 2 ) return this .cmdHelp (sender );
153
+ int mPage = 1 ;
154
+ if (args .length >= 3 ) {
155
+ try {
156
+ mPage = Integer .parseInt (args [2 ]);
157
+ } catch (NumberFormatException e ) {
158
+ Messages .sendMessage (sender , "&cPage is not valid" );
159
+ return false ;
160
+ }
161
+ }
162
+ return this .cmdDetails (sender , (OfflinePlayer ) sender , mPage );
163
+
120
164
default :
121
165
return this .cmdHelp (sender );
122
166
}
@@ -177,13 +221,19 @@ private boolean cmdList(final CommandSender sender, final int page) {
177
221
DatabaseHelper .getPlayersCount (result -> {
178
222
if (result < 0 ) return ;
179
223
int offset = 0 ;
180
- if (page > 1 ) offset = 6 ;
181
- offset *= page ;
182
- final int maxPages = ((int ) Math .floor (result / 6D ) > 0 ? (int ) Math .floor (result / 6D ) : 1 );
224
+ if (page > 1 ) {
225
+ offset = 6 ;
226
+ offset *= (page - 1 );
227
+ }
228
+ final int maxPages = ((int ) Math .ceil (result / 6D ) > 0 ? (int ) Math .ceil (result / 6D ) : 1 );
229
+ if (page > maxPages ) {
230
+ Messages .sendMessage (sender , "&cThis page does not exists." );
231
+ return ;
232
+ }
183
233
DatabaseHelper .getPlayersDeathCount (offset , 6 , playerDeathCount -> {
184
234
Messages .sendHeader (sender , "Page " + page + "/" + maxPages );
185
235
for (PlayerDeathCount pdc : playerDeathCount ) {
186
- Messages .sendMessage (sender , pdc .getPlayer ().getName () + ": &c" + pdc .getCount ());
236
+ Messages .sendMessage (sender , pdc .getPlayer ().getName () + ": &c" + pdc .getCount (), false );
187
237
}
188
238
Messages .sendFooter (sender );
189
239
});
@@ -203,9 +253,15 @@ private boolean cmdDetails(CommandSender sender, OfflinePlayer player, int page)
203
253
DatabaseHelper .getPlayerDeathCount (player , playerDeathCount -> {
204
254
if (playerDeathCount == null ) return ;
205
255
int offset = 0 ;
206
- if (page > 1 ) offset = 6 ;
207
- offset *= page ;
208
- final int maxPages = (int ) Math .floor (playerDeathCount .getCount () / 6D );
256
+ if (page > 1 ) {
257
+ offset = 6 ;
258
+ offset *= (page - 1 );
259
+ }
260
+ final int maxPages = ((int ) Math .ceil (playerDeathCount .getCount () / 6D ) > 0 ? (int ) Math .ceil (playerDeathCount .getCount () / 6D ) : 1 );
261
+ if (page > maxPages ) {
262
+ Messages .sendMessage (sender , "&cThis page does not exists." );
263
+ return ;
264
+ }
209
265
DatabaseHelper .getPlayerDeaths (player , offset , 6 , playerDeath -> {
210
266
Messages .sendHeader (sender , "Page " + page + "/" + maxPages );
211
267
for (PlayerDeath pd : playerDeath ) {
0 commit comments