Skip to content

Commit ee189a0

Browse files
committed
Added a onserverjoin message about wrong base arena setup if base cuboid is outside arena cuboid.
1 parent 1f33957 commit ee189a0

File tree

2 files changed

+39
-14
lines changed

2 files changed

+39
-14
lines changed

src/main/java/plugily/projects/thebridge/events/PluginEvents.java

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
package plugily.projects.thebridge.events;
2121

22+
import org.bukkit.Bukkit;
23+
import org.bukkit.ChatColor;
2224
import org.bukkit.entity.Player;
2325
import org.bukkit.event.EventHandler;
2426
import org.bukkit.event.EventPriority;
@@ -27,18 +29,22 @@
2729
import org.bukkit.event.block.BlockPlaceEvent;
2830
import org.bukkit.event.player.PlayerDropItemEvent;
2931
import org.bukkit.event.player.PlayerItemConsumeEvent;
32+
import org.bukkit.event.player.PlayerJoinEvent;
3033
import org.bukkit.event.player.PlayerTeleportEvent;
3134
import org.bukkit.potion.PotionEffectType;
3235
import plugily.projects.minigamesbox.api.arena.IArenaState;
36+
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
37+
import plugily.projects.minigamesbox.classic.utils.services.UpdateChecker;
3338
import plugily.projects.minigamesbox.classic.utils.version.VersionUtils;
3439
import plugily.projects.minigamesbox.classic.utils.version.xseries.XMaterial;
3540
import plugily.projects.minigamesbox.classic.utils.version.xseries.XPotion;
3641
import plugily.projects.thebridge.Main;
3742
import 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
*/
4349
public 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
}

src/main/java/plugily/projects/thebridge/handlers/setup/LocationCategory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void addItems(NormalFastInv gui) {
4242
gui.setItem((getInventoryLine() * 9) + 4, midLocation);
4343
getItemList().add(midLocation);
4444

45-
LocationSelectorItem arenaBorder = new LocationSelectorItem(getSetupInventory(), new ItemBuilder(XMaterial.BEDROCK.parseMaterial()), "Arena", "Location where all bases and lines are in \n (players will be able to build inside)", "arenalocation");
45+
LocationSelectorItem arenaBorder = new LocationSelectorItem(getSetupInventory(), new ItemBuilder(XMaterial.BEDROCK.parseMaterial()), "Arena", "Location where all bases and lines are in \n (players will be able to build inside) \n MAKE SURE TO SET IT OUTSIDE \n OF THE BASES WHICH YOU SET BEFORE!", "arenalocation");
4646
gui.setItem((getInventoryLine() * 9) + 5, arenaBorder);
4747
getItemList().add(arenaBorder);
4848
}

0 commit comments

Comments
 (0)