mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2024-09-16 09:37:37 +02:00
Animals exceptions are working. Time to refactor. seriously.
This commit is contained in:
parent
69c23980e1
commit
535dcded34
@ -5,7 +5,6 @@ import org.bukkit.entity.Animals;
|
|||||||
import org.bukkit.entity.CreatureType;
|
import org.bukkit.entity.CreatureType;
|
||||||
import org.bukkit.entity.Ghast;
|
import org.bukkit.entity.Ghast;
|
||||||
import org.bukkit.entity.Monster;
|
import org.bukkit.entity.Monster;
|
||||||
import org.bukkit.entity.PigZombie;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Slime;
|
import org.bukkit.entity.Slime;
|
||||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||||
@ -44,6 +43,7 @@ public class MVEntityListener extends EntityListener {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onCreatureSpawn(CreatureSpawnEvent event) {
|
public void onCreatureSpawn(CreatureSpawnEvent event) {
|
||||||
|
|
||||||
World world = event.getEntity().getWorld();
|
World world = event.getEntity().getWorld();
|
||||||
if (event.isCancelled())
|
if (event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -56,6 +56,16 @@ public class MVEntityListener extends EntityListener {
|
|||||||
|
|
||||||
MVWorld mvworld = this.plugin.getMVWorld(world.getName());
|
MVWorld mvworld = this.plugin.getMVWorld(world.getName());
|
||||||
|
|
||||||
|
System.out.print("A creature spawned: " + event.getEntity());
|
||||||
|
System.out.print("Type: " + event.getCreatureType());
|
||||||
|
System.out.print("Reason: " + event.getSpawnReason());
|
||||||
|
System.out.print("Instanceof Animal: " + (event.getEntity() instanceof Animals));
|
||||||
|
System.out.print("Instanceof Monster: " + (event.getEntity() instanceof Monster));
|
||||||
|
System.out.print("Animal Allowed: " + mvworld.allowAnimalSpawning());
|
||||||
|
System.out.print("Monster Allowed: " + mvworld.allowMonsterSpawning());
|
||||||
|
System.out.print("Animal list: " + mvworld.getAnimalList());
|
||||||
|
System.out.print("Monster list: " + mvworld.getMonsterList());
|
||||||
|
|
||||||
// TODO: Look of this and see if there's a cleaner/better method of doing so...
|
// TODO: Look of this and see if there's a cleaner/better method of doing so...
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,22 +73,31 @@ public class MVEntityListener extends EntityListener {
|
|||||||
*/
|
*/
|
||||||
if (event.getEntity() instanceof Animals) {
|
if (event.getEntity() instanceof Animals) {
|
||||||
// If we have no exceptions for Animals then we just follow the Spawn setting.
|
// If we have no exceptions for Animals then we just follow the Spawn setting.
|
||||||
if (mvworld.getAnimalList().isEmpty()) {
|
if (mvworld.getAnimalList().isEmpty() && mvworld.allowAnimalSpawning()) {
|
||||||
if (mvworld.allowAnimalSpawning()) {
|
System.out.print("1. There are no exceptions and animals are allowd.");
|
||||||
return;
|
return;
|
||||||
} else {
|
} else if (mvworld.getAnimalList().isEmpty()) {
|
||||||
event.setCancelled(true);
|
System.out.print("2. There are no exceptions and animals are NOT allowed. Kill the " + creature.toString().toUpperCase());
|
||||||
return;
|
event.setCancelled(true);
|
||||||
}
|
System.out.print("MV is killing a " + event.getCreatureType());
|
||||||
}
|
return;
|
||||||
// The idea of the Exceptions is they do the OPPOSITE of what the Spawn setting is...
|
} else if (mvworld.getAnimalList().contains(creature.toString().toUpperCase()) && mvworld.allowAnimalSpawning()) {
|
||||||
if (mvworld.getAnimalList().contains(creature.toString().toUpperCase())) {
|
System.out.print("3. There ARE exceptions and animals ARE allowed. Kill the " + creature.toString().toUpperCase());
|
||||||
if (mvworld.allowAnimalSpawning()) {
|
event.setCancelled(true);
|
||||||
event.setCancelled(true);
|
System.out.print("MV is killing a " + event.getCreatureType());
|
||||||
return;
|
return;
|
||||||
} else {
|
} else if (!mvworld.getAnimalList().contains(creature.toString().toUpperCase()) && mvworld.allowAnimalSpawning()) {
|
||||||
return;
|
System.out.print("4. There ARE exceptions and animals ARE NOT allowed. SAVE the " + creature.toString().toUpperCase());
|
||||||
}
|
return;
|
||||||
|
} else if (mvworld.getAnimalList().contains(creature.toString().toUpperCase()) && !mvworld.allowAnimalSpawning()) {
|
||||||
|
System.out.print("5. No animals are allowed to be spawned, BUT this one can stay... " + creature.toString().toUpperCase());
|
||||||
|
|
||||||
|
return;
|
||||||
|
} else if (!mvworld.getAnimalList().contains(creature.toString().toUpperCase()) && !mvworld.allowAnimalSpawning()) {
|
||||||
|
System.out.print("6. Animals are NOT allowd to spawn, and this creature is not in the save list... KILL IT " + creature.toString().toUpperCase());
|
||||||
|
event.setCancelled(true);
|
||||||
|
System.out.print("MV is killing a " + event.getCreatureType());
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -91,6 +110,7 @@ public class MVEntityListener extends EntityListener {
|
|||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
System.out.print("MV is killing a " + event.getCreatureType());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,6 +118,7 @@ public class MVEntityListener extends EntityListener {
|
|||||||
if (mvworld.getMonsterList().contains(creature.toString().toUpperCase())) {
|
if (mvworld.getMonsterList().contains(creature.toString().toUpperCase())) {
|
||||||
if (mvworld.allowMonsterSpawning()) {
|
if (mvworld.allowMonsterSpawning()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
System.out.print("MV is killing a " + event.getCreatureType());
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
|
@ -10,6 +10,38 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.World.Environment;
|
import org.bukkit.World.Environment;
|
||||||
import org.bukkit.util.config.Configuration;
|
import org.bukkit.util.config.Configuration;
|
||||||
|
|
||||||
|
enum EnglishChatColor {
|
||||||
|
AQUA(ChatColor.AQUA),
|
||||||
|
BLACK(ChatColor.BLACK),
|
||||||
|
BLUE(ChatColor.BLUE),
|
||||||
|
DARKAQUA(ChatColor.DARK_AQUA),
|
||||||
|
DARKBLUE(ChatColor.DARK_BLUE),
|
||||||
|
DARKGRAY(ChatColor.DARK_GRAY),
|
||||||
|
DARKGREEN(ChatColor.DARK_GREEN),
|
||||||
|
DARKPURPLE(ChatColor.DARK_PURPLE),
|
||||||
|
DARKRED(ChatColor.DARK_RED),
|
||||||
|
GOLD(ChatColor.GOLD),
|
||||||
|
GRAY(ChatColor.GRAY),
|
||||||
|
GREEN(ChatColor.GREEN),
|
||||||
|
LIGHTPURPLE(ChatColor.LIGHT_PURPLE),
|
||||||
|
RED(ChatColor.RED),
|
||||||
|
YELLOW(ChatColor.YELLOW),
|
||||||
|
WHITE(ChatColor.WHITE);
|
||||||
|
private ChatColor color;
|
||||||
|
|
||||||
|
EnglishChatColor(ChatColor color) {
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getText() {
|
||||||
|
return this.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChatColor getColor() {
|
||||||
|
return this.color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class MVWorld {
|
public class MVWorld {
|
||||||
|
|
||||||
private MultiverseCore plugin; // Hold the Plugin Instance.
|
private MultiverseCore plugin; // Hold the Plugin Instance.
|
||||||
@ -189,11 +221,13 @@ public class MVWorld {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
}
|
}
|
||||||
} else if (this.masterList.keySet().contains(list)) {
|
} else if (this.masterList.keySet().contains(list)) {
|
||||||
this.masterList.get(list).add(value);
|
|
||||||
if (list.equalsIgnoreCase("animals") || list.equalsIgnoreCase("monsters")) {
|
if (list.equalsIgnoreCase("animals") || list.equalsIgnoreCase("monsters")) {
|
||||||
|
this.masterList.get(list).add(value.toUpperCase());
|
||||||
this.config.setProperty("worlds." + this.name + "." + list.toLowerCase() + ".exceptions", this.masterList.get(list));
|
this.config.setProperty("worlds." + this.name + "." + list.toLowerCase() + ".exceptions", this.masterList.get(list));
|
||||||
this.syncMobs();
|
this.syncMobs();
|
||||||
} else {
|
} else {
|
||||||
|
this.masterList.get(list).add(value);
|
||||||
this.config.setProperty("worlds." + this.name + "." + list.toLowerCase(), this.masterList.get(list));
|
this.config.setProperty("worlds." + this.name + "." + list.toLowerCase(), this.masterList.get(list));
|
||||||
}
|
}
|
||||||
this.config.save();
|
this.config.save();
|
||||||
@ -211,11 +245,13 @@ public class MVWorld {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.masterList.keySet().contains(list)) {
|
if (this.masterList.keySet().contains(list)) {
|
||||||
this.masterList.get(list).remove(value);
|
|
||||||
if (list.equalsIgnoreCase("animals") || list.equalsIgnoreCase("monsters")) {
|
if (list.equalsIgnoreCase("animals") || list.equalsIgnoreCase("monsters")) {
|
||||||
|
this.masterList.get(list).remove(value.toUpperCase());
|
||||||
this.config.setProperty("worlds." + this.name + "." + list.toLowerCase() + ".exceptions", this.masterList.get(list));
|
this.config.setProperty("worlds." + this.name + "." + list.toLowerCase() + ".exceptions", this.masterList.get(list));
|
||||||
this.syncMobs();
|
this.syncMobs();
|
||||||
} else {
|
} else {
|
||||||
|
this.masterList.get(list).remove(value);
|
||||||
this.config.setProperty("worlds." + this.name + "." + list.toLowerCase(), this.masterList.get(list));
|
this.config.setProperty("worlds." + this.name + "." + list.toLowerCase(), this.masterList.get(list));
|
||||||
}
|
}
|
||||||
this.config.save();
|
this.config.save();
|
||||||
@ -429,7 +465,11 @@ public class MVWorld {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setAliasColor(String aliasColor) {
|
public void setAliasColor(String aliasColor) {
|
||||||
this.aliasColor = translateStringToChatColor(aliasColor);
|
try {
|
||||||
|
this.aliasColor = EnglishChatColor.valueOf(aliasColor).getColor();
|
||||||
|
} catch (Exception e) {
|
||||||
|
this.aliasColor = ChatColor.WHITE;
|
||||||
|
}
|
||||||
if (this.aliasColor != null) {
|
if (this.aliasColor != null) {
|
||||||
this.config.setProperty("worlds." + this.name + ".alias.color", aliasColor);
|
this.config.setProperty("worlds." + this.name + ".alias.color", aliasColor);
|
||||||
this.config.save();
|
this.config.save();
|
||||||
@ -445,50 +485,13 @@ public class MVWorld {
|
|||||||
return this.aliasColor;
|
return this.aliasColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
// I disgust myself. Seriously is there not a better way?
|
|
||||||
private ChatColor translateStringToChatColor(String color) {
|
|
||||||
if (color.equalsIgnoreCase("aqua"))
|
|
||||||
return ChatColor.AQUA;
|
|
||||||
if (color.equalsIgnoreCase("black"))
|
|
||||||
return ChatColor.BLACK;
|
|
||||||
if (color.equalsIgnoreCase("blue"))
|
|
||||||
return ChatColor.BLUE;
|
|
||||||
if (color.equalsIgnoreCase("darkaqua"))
|
|
||||||
return ChatColor.DARK_AQUA;
|
|
||||||
if (color.equalsIgnoreCase("darkblue"))
|
|
||||||
return ChatColor.DARK_BLUE;
|
|
||||||
if (color.equalsIgnoreCase("darkgray"))
|
|
||||||
return ChatColor.DARK_GRAY;
|
|
||||||
if (color.equalsIgnoreCase("darkgreen"))
|
|
||||||
return ChatColor.DARK_GREEN;
|
|
||||||
if (color.equalsIgnoreCase("darkpurple"))
|
|
||||||
return ChatColor.DARK_PURPLE;
|
|
||||||
if (color.equalsIgnoreCase("darkred"))
|
|
||||||
return ChatColor.DARK_RED;
|
|
||||||
if (color.equalsIgnoreCase("gold"))
|
|
||||||
return ChatColor.GOLD;
|
|
||||||
if (color.equalsIgnoreCase("gray"))
|
|
||||||
return ChatColor.GRAY;
|
|
||||||
if (color.equalsIgnoreCase("green"))
|
|
||||||
return ChatColor.GREEN;
|
|
||||||
if (color.equalsIgnoreCase("lightpurple"))
|
|
||||||
return ChatColor.LIGHT_PURPLE;
|
|
||||||
if (color.equalsIgnoreCase("red"))
|
|
||||||
return ChatColor.RED;
|
|
||||||
if (color.equalsIgnoreCase("yellow"))
|
|
||||||
return ChatColor.YELLOW;
|
|
||||||
if (color.equalsIgnoreCase("white"))
|
|
||||||
return ChatColor.WHITE;
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean clearList(String property) {
|
public boolean clearList(String property) {
|
||||||
if(property.equalsIgnoreCase("blockblacklist")) {
|
if (property.equalsIgnoreCase("blockblacklist")) {
|
||||||
this.blockBlacklist.clear();
|
this.blockBlacklist.clear();
|
||||||
this.config.setProperty("worlds." + this.name + ".blockblacklist", this.blockBlacklist);
|
this.config.setProperty("worlds." + this.name + ".blockblacklist", this.blockBlacklist);
|
||||||
this.config.save();
|
this.config.save();
|
||||||
return true;
|
return true;
|
||||||
} else if(this.masterList.containsKey(property)) {
|
} else if (this.masterList.containsKey(property)) {
|
||||||
this.masterList.get(property).clear();
|
this.masterList.get(property).clear();
|
||||||
this.config.setProperty("worlds." + this.name + "." + property.toLowerCase(), this.masterList.get(property));
|
this.config.setProperty("worlds." + this.name + "." + property.toLowerCase(), this.masterList.get(property));
|
||||||
this.config.save();
|
this.config.save();
|
||||||
|
Loading…
Reference in New Issue
Block a user