11package me .krymz0n .simpleexploitfixer .listener ;
22
33import me .krymz0n .simpleexploitfixer .Main ;
4+ import net .kyori .adventure .audience .Audience ;
5+ import net .kyori .adventure .text .Component ;
6+ import org .bukkit .Bukkit ;
47import org .bukkit .ChatColor ;
58import org .bukkit .Material ;
9+ import org .bukkit .World ;
610import org .bukkit .block .Block ;
7- import org .bukkit .block .BlockState ;
811import org .bukkit .block .data .type .RespawnAnchor ;
912import org .bukkit .entity .Player ;
1013import org .bukkit .event .EventHandler ;
1114import org .bukkit .event .Listener ;
1215import org .bukkit .event .block .Action ;
16+ import org .bukkit .event .block .BlockExplodeEvent ;
1317import org .bukkit .event .player .PlayerInteractEvent ;
1418
15- import static com .sun .org .apache .xalan .internal .xsltc .compiler .util .Type .Int ;
16-
1719public class InteractEvent implements Listener {
1820 private final Main plugin ;
1921
@@ -23,13 +25,21 @@ public InteractEvent(Main plugin) {
2325
2426 @ EventHandler
2527 public void onInteract (PlayerInteractEvent evt ) {
26- Player p = evt .getPlayer ();
27- if (evt .getAction () == Action .RIGHT_CLICK_BLOCK ) {
28- Block block = evt .getClickedBlock ();
29- if (block .equals (Material .RESPAWN_ANCHOR ) && p .getInventory ().getItemInOffHand ().getType ().equals (Material .GLOWSTONE ) || p .getInventory ().getItemInMainHand ().getType ().equals (Material .GLOWSTONE )) {
30- p .sendMessage (ChatColor .RED + "sorry" );
31- evt .setCancelled (true );
28+ if (plugin .getConfig ().getBoolean ("DisableRespawnAnchorExplosions" )) {
29+ Player p = evt .getPlayer ();
30+ if (evt .getAction () == Action .RIGHT_CLICK_BLOCK ) {
31+ System .out .println ("Right click" );
32+ Block block = evt .getClickedBlock ();
33+ assert block != null ;
34+ if (block .getType ().equals (Material .RESPAWN_ANCHOR )) {
35+ System .out .println ("anchor" );
36+ final RespawnAnchor ra = (RespawnAnchor ) block .getBlockData ();
37+ if (evt .getMaterial ().equals (Material .GLOWSTONE ) && ra .getCharges () >= ra .getMaximumCharges () && !p .getWorld ().getEnvironment ().equals (World .Environment .NETHER )) {
38+ evt .setCancelled (true );
39+ Audience .audience (p ).sendActionBar (Component .text (ChatColor .RED + "Due to a poll in the discord, respawn anchor explosions have been disabled" ));
40+ }
41+ }
3242 }
3343 }
3444 }
35- }
45+ }
0 commit comments