mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 04:26:42 +00:00
Lombok implementation removal. I have also gone through and replaced things with inline methods and variables, lambdas, and simplified loops down, removed unnecessary guard clauses, and overall cleaned up every single class. This took a long time, please do remember to follow proper naming conventions, don't include unnecessary guard clauses, follow exception rules and comment rules, and please PLEASE remember to use the DIAMOND OPERATOR rather than just inferring RAW TYPES!!! Thank you!!
188 lines
7.6 KiB
Java
188 lines
7.6 KiB
Java
package me.totalfreedom.totalfreedommod.blocking;
|
|
|
|
import java.util.List;
|
|
import me.totalfreedom.totalfreedommod.FreedomService;
|
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
|
import me.totalfreedom.totalfreedommod.util.Groups;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.Material;
|
|
import org.bukkit.block.Banner;
|
|
import org.bukkit.block.Skull;
|
|
import org.bukkit.block.banner.Pattern;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.block.BlockPlaceEvent;
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.bukkit.inventory.meta.ItemMeta;
|
|
import org.bukkit.inventory.meta.SkullMeta;
|
|
|
|
public class BlockBlocker extends FreedomService
|
|
{
|
|
@Override
|
|
public void onStart()
|
|
{
|
|
}
|
|
|
|
@Override
|
|
public void onStop()
|
|
{
|
|
}
|
|
|
|
@SuppressWarnings("deprecation")
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onBlockPlace(BlockPlaceEvent event)
|
|
{
|
|
final Player player = event.getPlayer();
|
|
|
|
switch (event.getBlockPlaced().getType())
|
|
{
|
|
case LAVA:
|
|
{
|
|
if (!ConfigEntry.ALLOW_LAVA_PLACE.getBoolean())
|
|
{
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
player.sendMessage(ChatColor.GRAY + "Lava placement is currently disabled.");
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
case WATER:
|
|
{
|
|
if (!ConfigEntry.ALLOW_WATER_PLACE.getBoolean())
|
|
{
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
player.sendMessage(ChatColor.GRAY + "Water placement is currently disabled.");
|
|
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
case FIRE:
|
|
case SOUL_FIRE:
|
|
{
|
|
if (!ConfigEntry.ALLOW_FIRE_PLACE.getBoolean())
|
|
{
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
player.sendMessage(ChatColor.GRAY + "Fire placement is currently disabled.");
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
case STRUCTURE_BLOCK:
|
|
{
|
|
if (!ConfigEntry.ALLOW_STRUCTURE_BLOCKS.getBoolean())
|
|
{
|
|
player.sendMessage(ChatColor.GRAY + "Structure blocks are disabled.");
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
case JIGSAW:
|
|
{
|
|
if (!ConfigEntry.ALLOW_JIGSAWS.getBoolean())
|
|
{
|
|
player.sendMessage(ChatColor.GRAY + "Jigsaws are disabled.");
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
case GRINDSTONE:
|
|
{
|
|
if (!ConfigEntry.ALLOW_GRINDSTONES.getBoolean())
|
|
{
|
|
player.sendMessage(ChatColor.GRAY + "Grindstones are disabled.");
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
case JUKEBOX:
|
|
{
|
|
if (!ConfigEntry.ALLOW_JUKEBOXES.getBoolean())
|
|
{
|
|
player.sendMessage(ChatColor.GRAY + "Jukeboxes are disabled.");
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
case SPAWNER:
|
|
{
|
|
if (!ConfigEntry.ALLOW_SPAWNERS.getBoolean())
|
|
{
|
|
player.sendMessage(ChatColor.GRAY + "Spawners are disabled.");
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
case BEEHIVE:
|
|
case BEE_NEST:
|
|
{
|
|
if (!ConfigEntry.ALLOW_BEEHIVES.getBoolean())
|
|
{
|
|
player.sendMessage(ChatColor.GRAY + "Beehives are disabled.");
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
case PLAYER_HEAD:
|
|
case PLAYER_WALL_HEAD:
|
|
{
|
|
Skull skull = (Skull)event.getBlockPlaced().getState();
|
|
if (skull.getOwner() != null)
|
|
{
|
|
if (skull.getOwner().contains("\u00A7"))
|
|
{
|
|
skull.setOwner(skull.getOwner().replace("\u00A7", ""));
|
|
SkullMeta meta = (SkullMeta)event.getItemInHand().getItemMeta();
|
|
if (meta != null)
|
|
{
|
|
ItemStack newHead = new ItemStack(Material.PLAYER_HEAD, 1);
|
|
ItemMeta headMeta = newHead.getItemMeta();
|
|
assert headMeta != null;
|
|
headMeta.setDisplayName(ChatColor.YELLOW + "C-sectioned Head");
|
|
newHead.setItemMeta(headMeta);
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), newHead);
|
|
player.sendMessage(ChatColor.GRAY + "The player head you are attempting to place has a section symbol. Your player head has been C-sectioned.");
|
|
event.setCancelled(true);
|
|
}
|
|
}
|
|
if (skull.getOwner().length() > 100)
|
|
{
|
|
player.sendMessage(ChatColor.GRAY + "Instead of using Pi to crash players, be useful with your life and use it to discover things.");
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
event.setCancelled(true);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case RESPAWN_ANCHOR:
|
|
{
|
|
if (!ConfigEntry.ALLOW_RESPAWN_ANCHORS.getBoolean())
|
|
{
|
|
player.sendMessage(ChatColor.GRAY + "Respawn anchors are disabled.");
|
|
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
|
|
event.setCancelled(true);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (Groups.BANNERS.contains(event.getBlockPlaced().getType()))
|
|
{
|
|
Banner banner = (Banner)event.getBlockPlaced().getState();
|
|
List<Pattern> patterns = banner.getPatterns();
|
|
|
|
if (patterns.size() >= 2)
|
|
{
|
|
banner.setPatterns(patterns.subList(0, 2));
|
|
player.sendMessage(ChatColor.GRAY + "Your banner had too many patterns on it, so some were removed.");
|
|
}
|
|
}
|
|
}
|
|
} |