Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.jts3304.denyspawn;
- import java.util.ArrayList;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.World;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.LivingEntity;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.CreatureSpawnEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- public class DenySpawn extends JavaPlugin implements Listener{
- public void onEnable() {
- this.getConfig().options().copyDefaults(true);
- this.saveDefaultConfig();
- Bukkit.getServer().getPluginManager().registerEvents(this, this);
- }
- public void onDisable() {
- this.saveDefaultConfig();
- }
- public boolean checkEntityFromString(String string) {
- if (org.bukkit.entity.EntityType.valueOf(string) == null) return false;
- return true;
- }
- public boolean worldInConfig(String world) {
- if (getServer().getWorld(world) == null) return false;
- if (getConfig().getConfigurationSection(world) == null) return false;
- return true;
- }
- public void removeNullWorlds() {
- for (String s : getConfig().getKeys(false)) {
- if (Bukkit.getWorld(s) == null) {
- getConfig().set(s, null);
- saveConfig();
- reloadConfig();
- }
- }
- }
- @EventHandler
- public void onMobSpawn(CreatureSpawnEvent event) {
- LivingEntity mob = event.getEntity();
- removeNullWorlds();
- for (World w : getServer().getWorlds()) {
- if (worldInConfig(w.getName())) {
- for (String s : getConfig().getStringList(w.getName() + ".DeniedMobs")) {
- if (checkEntityFromString(s)) {
- if (mob.getType() == org.bukkit.entity.EntityType.valueOf(s)) {
- event.setCancelled(true);
- }
- }
- }
- }
- else {
- getConfig().createSection(w.getName());
- getConfig().set(w.getName() + ".DeniedMobs", new ArrayList<String>());
- saveConfig();
- reloadConfig();
- }
- }
- }
- public boolean onCommand(CommandSender s, Command c, String label, String args[]) {
- if (!(s instanceof Player)) {
- if (c.getName().equalsIgnoreCase("denyspawn")) {
- if (args.length == 1) {
- if (args[0].equalsIgnoreCase("reload")) {
- reloadConfig();
- s.sendMessage("Config reloaded.");
- return true;
- }
- }
- }
- }
- Player p = (Player) s;
- if (args.length == 0) {
- if (p.hasPermission("denyspawn.use") || p.isOp()) {
- p.sendMessage(ChatColor.GREEN + "/denyspawn reload");
- return true;
- }
- else {
- return true;
- }
- }
- else if (args.length == 1) {
- if (args[0].equalsIgnoreCase("reload")) {
- if (p.hasPermission("denyspawn.reload") || p.isOp()) {
- reloadConfig();
- p.sendMessage(ChatColor.GREEN + "Config reloaded.");
- return true;
- }
- }
- else {
- return true;
- }
- }
- else {
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement