2021-01-03 07:21:15 +00:00
|
|
|
package dev.plex.listener.impl;
|
2020-10-31 15:09:13 +00:00
|
|
|
|
2021-01-03 07:21:15 +00:00
|
|
|
import dev.plex.cache.PlayerCache;
|
|
|
|
import dev.plex.listener.PlexListener;
|
|
|
|
import dev.plex.player.PlexPlayer;
|
|
|
|
import dev.plex.rank.enums.Rank;
|
2020-10-31 15:09:13 +00:00
|
|
|
import org.bukkit.World;
|
2020-11-02 00:06:08 +00:00
|
|
|
import org.bukkit.entity.EntityType;
|
2020-10-31 15:09:13 +00:00
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
import org.bukkit.event.EventHandler;
|
|
|
|
import org.bukkit.event.block.BlockPlaceEvent;
|
2020-11-02 00:06:08 +00:00
|
|
|
import org.bukkit.event.entity.EntitySpawnEvent;
|
2021-01-03 07:21:15 +00:00
|
|
|
import static dev.plex.util.PlexUtils.tl;
|
2020-10-31 15:09:13 +00:00
|
|
|
|
|
|
|
public class WorldListener extends PlexListener
|
|
|
|
{
|
2022-02-22 02:43:53 +00:00
|
|
|
// TODO: Actually implement permissions for every world properly
|
|
|
|
private final String permission = plugin.config.getString("plex.adminworld.permission");
|
|
|
|
|
2020-10-31 15:09:13 +00:00
|
|
|
@EventHandler
|
|
|
|
public void onBlockPlace(BlockPlaceEvent e)
|
|
|
|
{
|
|
|
|
Player player = e.getPlayer();
|
|
|
|
PlexPlayer plexPlayer = PlayerCache.getPlexPlayerMap().get(player.getUniqueId());
|
|
|
|
World world = player.getWorld();
|
2020-11-05 21:17:14 +00:00
|
|
|
switch (world.getName().toLowerCase())
|
2020-10-31 15:09:13 +00:00
|
|
|
{
|
2022-02-22 00:29:52 +00:00
|
|
|
case "adminworld" -> {
|
|
|
|
if (plugin.getSystem().equalsIgnoreCase("ranks"))
|
|
|
|
{
|
|
|
|
if (plexPlayer.getRankFromString().isAtLeast(Rank.ADMIN))
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
2022-02-22 02:43:53 +00:00
|
|
|
}
|
|
|
|
else if (plugin.getSystem().equalsIgnoreCase("permissions"))
|
2020-11-06 01:29:38 +00:00
|
|
|
{
|
2022-02-22 02:43:53 +00:00
|
|
|
if (player.hasPermission(permission));
|
2022-02-22 00:29:52 +00:00
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
2020-11-06 01:29:38 +00:00
|
|
|
}
|
2020-10-31 15:09:13 +00:00
|
|
|
e.setCancelled(true);
|
2020-11-02 00:06:08 +00:00
|
|
|
player.sendMessage(tl("noAdminWorldBlockPlace"));
|
2020-10-31 15:09:13 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-11-02 00:06:08 +00:00
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void onEntitySpawn(EntitySpawnEvent e)
|
|
|
|
{
|
|
|
|
if (e.getEntityType() != EntityType.SLIME)
|
2020-11-06 01:29:38 +00:00
|
|
|
{
|
2020-11-02 00:06:08 +00:00
|
|
|
return;
|
2020-11-06 01:29:38 +00:00
|
|
|
}
|
2020-11-02 00:06:08 +00:00
|
|
|
e.setCancelled(true);
|
|
|
|
}
|
2020-10-31 15:09:13 +00:00
|
|
|
}
|