2020import me .poma123 .spawners .gui .PickupGui ;
2121import me .poma123 .spawners .language .Language ;
2222import me .poma123 .spawners .language .Language .LocalePath ;
23+ import net .md_5 .bungee .api .chat .ClickEvent ;
2324import net .md_5 .bungee .api .chat .ComponentBuilder ;
2425import net .md_5 .bungee .api .chat .HoverEvent ;
2526import net .md_5 .bungee .api .chat .TextComponent ;
@@ -80,6 +81,15 @@ public static TextComponent getHoverClick(String message, String hover, String c
8081 return text ;
8182 }
8283
84+ public static TextComponent getHoverSuggest (String message , String hover , String suggestedcommand ) {
85+ TextComponent text = new TextComponent (message );
86+ text .setClickEvent (
87+ new net .md_5 .bungee .api .chat .ClickEvent (ClickEvent .Action .SUGGEST_COMMAND , ChatColor .stripColor (suggestedcommand )));
88+ text .setHoverEvent (new net .md_5 .bungee .api .chat .HoverEvent (HoverEvent .Action .SHOW_TEXT ,
89+ new ComponentBuilder (hover ).create ()));
90+ return text ;
91+ }
92+
8393 public static TextComponent getHoverClickcmd (String message , String hover , String click ) {
8494 TextComponent text = new TextComponent (message );
8595 text .setClickEvent (
@@ -139,10 +149,17 @@ public void onInventoryClick(InventoryClickEvent e) {
139149 if ((items == null ) || (!items .hasItemMeta ())) {
140150 return ;
141151 }
152+
153+
154+ if (items .getItemMeta ().getLore ().toString ().contains ("BreakerID" )) {
155+
156+ String str = ChatColor .stripColor (items .getItemMeta ().getLore ().get (items .getItemMeta ().getLore ().size ()-1 )).replace ("BreakerID: " , "" );
157+ player .closeInventory ();
158+ sendBreakerItemCommands (player , str );
159+ }
142160 if (!items .getItemMeta ().hasDisplayName ()) {
143161 return ;
144162 }
145-
146163 if (items .getItemMeta ().getDisplayName ().contains ("Back" )) {
147164
148165 PickupGui gui = new PickupGui ();
@@ -243,6 +260,23 @@ public void onInventoryClick(InventoryClickEvent e) {
243260 }
244261 }
245262
263+ /**
264+ *
265+ * @param player
266+ * @param breakerID
267+ */
268+ private void sendBreakerItemCommands (Player player , String breakerID ) {
269+ player .sendMessage ("§b#------------§6PickupSpawners§b------------#\n \n §cBreaker item commands:\n " );
270+ player .spigot ().sendMessage (getHoverSuggest ("§e [*] §6Edit item §8§o(Click here)" , "§7/pspawners §bupdateitem " + breakerID , "/pspawners updateitem " + breakerID ));
271+ player .spigot ().sendMessage (getHoverSuggest ("§e [*] §3Set permission §8§o(Click here)" , "§7/pspawners §bsetitempermission " + breakerID + " <permission>" , "/pspawners setitempermission " + breakerID + " <permission>" ));
272+ if (sett .getConfig ().get ("item." + breakerID + ".permission" ) != null ) {
273+ player .spigot ().sendMessage (getHoverSuggest ("§c [-] Remove permission §8§o(Click here)" , "§7/pspawners §bremoveitempermission " + breakerID , "/pspawners removeitempermission " + breakerID ));
274+ }
275+ player .spigot ().sendMessage (getHoverSuggest ("§c [-] Remove item §8§o(Click here)" , "§7/pspawners §bremoveitem " + breakerID , "/pspawners removeitem " + breakerID ));
276+
277+ player .sendMessage ("\n \n §b#-------------------------------------#\n " );
278+ }
279+
246280
247281 @ EventHandler
248282 public void onOpJoin (PlayerJoinEvent e ) {
@@ -315,7 +349,18 @@ public void onSpawnerBreak(BlockBreakEvent e) {
315349
316350 if (enchants .isEmpty ()) {
317351 if (item .getType ().equals (mat )) {
318- isGoodItem = true ;
352+ if (sett .getConfig ().get ("item." + string + ".permission" ) != null ) {
353+ if (e .getPlayer ().hasPermission (sett .getConfig ().getString ("item." + string + ".permission" ))) {
354+ isGoodItem = true ;
355+ } else {
356+ isGoodItem = false ;
357+ e .setCancelled (true );
358+ e .getPlayer ().sendMessage (Language .getLocale (e .getPlayer (), LocalePath .NO_PERM ));
359+ break ;
360+ }
361+ } else {
362+ isGoodItem = true ;
363+ }
319364 }
320365 } else {
321366
@@ -339,7 +384,18 @@ public void onSpawnerBreak(BlockBreakEvent e) {
339384 }
340385
341386 if (item .getType ().equals (mat ) && containsAllEnchants ) {
342- isGoodItem = true ;
387+ if (sett .getConfig ().get ("item." + string + ".permission" ) != null ) {
388+ if (e .getPlayer ().hasPermission (sett .getConfig ().getString ("item." + string + ".permission" ))) {
389+ isGoodItem = true ;
390+ } else {
391+ isGoodItem = false ;
392+ e .setCancelled (true );
393+ e .getPlayer ().sendMessage (Language .getLocale (e .getPlayer (), LocalePath .NO_PERM ));
394+ break ;
395+ }
396+ } else {
397+ isGoodItem = true ;
398+ }
343399 }
344400
345401 }
0 commit comments