1919
2020package plugily .projects .thebridge .events ;
2121
22+ import org .bukkit .Bukkit ;
23+ import org .bukkit .ChatColor ;
2224import org .bukkit .entity .Player ;
2325import org .bukkit .event .EventHandler ;
2426import org .bukkit .event .EventPriority ;
2729import org .bukkit .event .block .BlockPlaceEvent ;
2830import org .bukkit .event .player .PlayerDropItemEvent ;
2931import org .bukkit .event .player .PlayerItemConsumeEvent ;
32+ import org .bukkit .event .player .PlayerJoinEvent ;
3033import org .bukkit .event .player .PlayerTeleportEvent ;
3134import org .bukkit .potion .PotionEffectType ;
3235import plugily .projects .minigamesbox .api .arena .IArenaState ;
36+ import plugily .projects .minigamesbox .classic .handlers .language .MessageBuilder ;
37+ import plugily .projects .minigamesbox .classic .utils .services .UpdateChecker ;
3338import plugily .projects .minigamesbox .classic .utils .version .VersionUtils ;
3439import plugily .projects .minigamesbox .classic .utils .version .xseries .XMaterial ;
3540import plugily .projects .minigamesbox .classic .utils .version .xseries .XPotion ;
3641import plugily .projects .thebridge .Main ;
3742import plugily .projects .thebridge .arena .Arena ;
43+ import plugily .projects .thebridge .arena .base .Base ;
3844
3945/**
4046 * @author Tigerpanzer_02
41- * <p>Created at 23.11.2020
47+ * <p>Created at 23.11.2020
4248 */
4349public class PluginEvents implements Listener {
4450
@@ -49,9 +55,28 @@ public PluginEvents(Main plugin) {
4955 plugin .getServer ().getPluginManager ().registerEvents (this , plugin );
5056 }
5157
58+ @ EventHandler
59+ public void onJoinCheckBases (PlayerJoinEvent event ) {
60+ if (!event .getPlayer ().hasPermission (plugin .getPluginNamePrefixLong () + ".admin" ) || !event .getPlayer ().isOp ()) {
61+ return ;
62+ }
63+ Bukkit .getScheduler ().runTaskLater (plugin , () -> {
64+ for (Arena arena : plugin .getArenaRegistry ().getPluginArenas ()) {
65+ for (Base base : arena .getBases ()) {
66+ if (!(arena .getArenaBorder ().isIn (base .getBaseCuboid ().getMinPoint ()) && (arena .getArenaBorder ().isIn (base .getBaseCuboid ().getMaxPoint ())))) {
67+ event .getPlayer ().sendMessage ("" );
68+ event .getPlayer ().sendMessage (ChatColor .BOLD + plugin .getPluginMessagePrefix () + "Your arena setup is broken. Please adjust your arena cuboid." );
69+ event .getPlayer ().sendMessage (new MessageBuilder ("VALIDATOR_INVALID_ARENA_CONFIGURATION" ).asKey ().arena (arena ).value ("YOUR BASE CUBOIDS ARE NOT INSIDE ARENA CUBOID" ).build ());
70+ event .getPlayer ().sendMessage (ChatColor .YELLOW + plugin .getPluginMessagePrefix () + "[CHECK BASE INSIDE ARENA] " + arena .getId () + base .getColor () + " Locations amin" + arena .getArenaBorder ().getMinPoint () + "amax" + arena .getArenaBorder ().getMaxPoint () + "bmin" + base .getBaseCuboid ().getMinPoint () + "bma" + base .getBaseCuboid ().getMaxPoint ());
71+ }
72+ }
73+ }
74+ }, 25 );
75+ }
76+
5277 @ EventHandler
5378 public void onDrop (PlayerDropItemEvent event ) {
54- if (plugin .getArenaRegistry ().isInArena (event .getPlayer ())) {
79+ if (plugin .getArenaRegistry ().isInArena (event .getPlayer ())) {
5580 event .setCancelled (true );
5681 }
5782 }
@@ -60,10 +85,10 @@ public void onDrop(PlayerDropItemEvent event) {
6085 public void onAppleConsume (PlayerItemConsumeEvent event ) {
6186 Player player = event .getPlayer ();
6287 Arena arena = plugin .getArenaRegistry ().getArena (player );
63- if (arena == null ) {
88+ if (arena == null ) {
6489 return ;
6590 }
66- if (event .getItem ().getType () == XMaterial .GOLDEN_APPLE .parseMaterial ()) {
91+ if (event .getItem ().getType () == XMaterial .GOLDEN_APPLE .parseMaterial ()) {
6792 player .setFoodLevel (20 );
6893 player .setHealth (VersionUtils .getMaxHealth (player ));
6994 player .removePotionEffect (XPotion .REGENERATION .getPotionEffectType ());
@@ -73,32 +98,32 @@ public void onAppleConsume(PlayerItemConsumeEvent event) {
7398 @ EventHandler (priority = EventPriority .HIGH )
7499 // highest priority to fully protect our game
75100 public void onBlockBreakEvent (BlockBreakEvent event ) {
76- if (plugin .getArenaRegistry ().isInArena (event .getPlayer ())
77- && plugin .getArenaRegistry ().getArena (event .getPlayer ()).getArenaState ()
78- != IArenaState .IN_GAME ) {
101+ if (plugin .getArenaRegistry ().isInArena (event .getPlayer ())
102+ && plugin .getArenaRegistry ().getArena (event .getPlayer ()).getArenaState ()
103+ != IArenaState .IN_GAME ) {
79104 event .setCancelled (true );
80105 }
81106 }
82107
83108 @ EventHandler (priority = EventPriority .HIGH )
84109 // highest priority to fully protect our game
85110 public void onBuild (BlockPlaceEvent event ) {
86- if (plugin .getArenaRegistry ().isInArena (event .getPlayer ())
87- && plugin .getArenaRegistry ().getArena (event .getPlayer ()).getArenaState ()
88- != IArenaState .IN_GAME ) {
111+ if (plugin .getArenaRegistry ().isInArena (event .getPlayer ())
112+ && plugin .getArenaRegistry ().getArena (event .getPlayer ()).getArenaState ()
113+ != IArenaState .IN_GAME ) {
89114 event .setCancelled (true );
90115 }
91116 }
92117
93118 @ EventHandler
94119 public void onPlayerTeleport (PlayerTeleportEvent event ) {
95- if (!plugin .getArenaRegistry ().isInArena (event .getPlayer ())) {
120+ if (!plugin .getArenaRegistry ().isInArena (event .getPlayer ())) {
96121 return ;
97122 }
98- if (event .getCause ().equals (PlayerTeleportEvent .TeleportCause .END_PORTAL )) {
123+ if (event .getCause ().equals (PlayerTeleportEvent .TeleportCause .END_PORTAL )) {
99124 event .setCancelled (true );
100125 }
101- if (event .getCause ().equals (PlayerTeleportEvent .TeleportCause .NETHER_PORTAL )) {
126+ if (event .getCause ().equals (PlayerTeleportEvent .TeleportCause .NETHER_PORTAL )) {
102127 event .setCancelled (true );
103128 }
104129 }
0 commit comments