mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-12 04:20:41 +00:00
Refactored and cleaned up SpawnMob. Added context-aware help /spawnmob <mob>:
This commit is contained in:
parent
c1e39c7007
commit
e3c83be37e
19 changed files with 412 additions and 277 deletions
349
Essentials/src/com/earth2me/essentials/MobData.java
Normal file
349
Essentials/src/com/earth2me/essentials/MobData.java
Normal file
|
@ -0,0 +1,349 @@
|
||||||
|
package com.earth2me.essentials;
|
||||||
|
|
||||||
|
import static com.earth2me.essentials.I18n._;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
import com.earth2me.essentials.utils.StringUtil;
|
||||||
|
import org.bukkit.DyeColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Ageable;
|
||||||
|
import org.bukkit.entity.Creeper;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.ExperienceOrb;
|
||||||
|
import org.bukkit.entity.Horse;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Ocelot;
|
||||||
|
import org.bukkit.entity.Pig;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Skeleton;
|
||||||
|
import org.bukkit.entity.Slime;
|
||||||
|
import org.bukkit.entity.Tameable;
|
||||||
|
import org.bukkit.entity.Villager;
|
||||||
|
import org.bukkit.entity.Wolf;
|
||||||
|
import org.bukkit.entity.Zombie;
|
||||||
|
import org.bukkit.inventory.EntityEquipment;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.material.Colorable;
|
||||||
|
|
||||||
|
|
||||||
|
public enum MobData
|
||||||
|
{
|
||||||
|
BABY_AGEABLE("baby", Ageable.class, Data.BABY, true),
|
||||||
|
BABY_PIG("piglet", EntityType.PIG, Data.BABY, false),
|
||||||
|
BABY_WOLF("puppy", EntityType.WOLF, Data.BABY, false),
|
||||||
|
BABY_CHICKEN("chick", EntityType.CHICKEN, Data.BABY, false),
|
||||||
|
BABY_HORSE("colt", EntityType.HORSE, Data.BABY, false),
|
||||||
|
BABY_OCELOT("kitten", EntityType.OCELOT, Data.BABY, false),
|
||||||
|
BABY_SHEEP("lamb", EntityType.SHEEP, Data.BABY, false),
|
||||||
|
BABY_COW("calf", EntityType.COW.getEntityClass(), Data.BABY, false),
|
||||||
|
BABY_VILLAGER("child", EntityType.VILLAGER, Data.BABY, false),
|
||||||
|
|
||||||
|
TAMED_TAMEABLE("tamed", Tameable.class, Data.TAMED, true),
|
||||||
|
TAME_TAMEABLE("tame", Tameable.class, Data.TAMED, false),
|
||||||
|
|
||||||
|
RANDOM_SHEEP("random", EntityType.SHEEP, Data.COLORABLE, true),
|
||||||
|
COLORABLE_SHEEP("", StringUtil.joinList(DyeColor.values()).toLowerCase(Locale.ENGLISH), EntityType.SHEEP, Data.COLORABLE, true),
|
||||||
|
|
||||||
|
DONKEY_HORSE("donkey", EntityType.HORSE, Horse.Variant.DONKEY, true),
|
||||||
|
MULE_HORSE("mule", EntityType.HORSE, Horse.Variant.MULE, true),
|
||||||
|
SKELETON_HORSE("skeleton", EntityType.HORSE, Horse.Variant.SKELETON_HORSE, true),
|
||||||
|
UNDEAD_HORSE("undead", EntityType.HORSE, Horse.Variant.UNDEAD_HORSE, true),
|
||||||
|
ZOMBIE_HORSE("zombie", EntityType.HORSE, Horse.Variant.UNDEAD_HORSE, false),
|
||||||
|
POLKA_HORSE("polka", EntityType.HORSE, Horse.Style.BLACK_DOTS, true),
|
||||||
|
SOOTY_HORSE("sooty", EntityType.HORSE, Horse.Style.BLACK_DOTS, false),
|
||||||
|
BLAZE_HORSE("blaze", EntityType.HORSE, Horse.Style.WHITE, true),
|
||||||
|
SOCKS_HORSE("socks", EntityType.HORSE, Horse.Style.WHITE, false),
|
||||||
|
LEOPARD_HORSE("leopard", EntityType.HORSE, Horse.Style.WHITE_DOTS, true),
|
||||||
|
APPALOOSA_HORSE("appaloosa", EntityType.HORSE, Horse.Style.WHITE_DOTS, false),
|
||||||
|
PAINT_HORSE("paint", EntityType.HORSE, Horse.Style.WHITEFIELD, true),
|
||||||
|
MILKY_HORSE("milky", EntityType.HORSE, Horse.Style.WHITEFIELD, false),
|
||||||
|
SPLOTCHY_HORSE("splotchy", EntityType.HORSE, Horse.Style.WHITEFIELD, false),
|
||||||
|
BLACK_HORSE("black", EntityType.HORSE, Horse.Color.BLACK, true),
|
||||||
|
CHESTNUT_HORSE("chestnut", EntityType.HORSE, Horse.Color.CHESTNUT, true),
|
||||||
|
LIVER_HORSE("liver", EntityType.HORSE, Horse.Color.CHESTNUT, false),
|
||||||
|
CREAMY_HORSE("creamy", EntityType.HORSE, Horse.Color.CREAMY, true),
|
||||||
|
FLAXEN_HORSE("flaxen", EntityType.HORSE, Horse.Color.CREAMY, false),
|
||||||
|
GRAY_HORSE("gray", EntityType.HORSE, Horse.Color.GRAY, true),
|
||||||
|
DAPPLE_HORSE("dapple", EntityType.HORSE, Horse.Color.GRAY, false),
|
||||||
|
BUCKSKIN_HORSE("buckskin", EntityType.HORSE, Horse.Color.DARK_BROWN, true),
|
||||||
|
DARK_HORSE("dark", EntityType.HORSE, Horse.Color.DARK_BROWN, false),
|
||||||
|
DARKBROWN_HORSE("darkbrown", EntityType.HORSE, Horse.Color.DARK_BROWN, false),
|
||||||
|
DBROWN_HORSE("dbrown", EntityType.HORSE, Horse.Color.DARK_BROWN, false),
|
||||||
|
BAY_HORSE("bay", EntityType.HORSE, Horse.Color.BROWN, true),
|
||||||
|
BROWN_HORSE("brown", EntityType.HORSE, Horse.Color.BROWN, false),
|
||||||
|
CHEST_HORSE("chest", EntityType.HORSE, Data.CHEST, true),
|
||||||
|
SADDLE_HORSE("saddle", EntityType.HORSE, Data.HORSESADDLE, true),
|
||||||
|
GOLD_ARMOR_HORSE("goldarmor", EntityType.HORSE, Material.GOLD_BARDING, true),
|
||||||
|
DIAMOND_ARMOR_HORSE("diamondarmor", EntityType.HORSE, Material.DIAMOND_BARDING, true),
|
||||||
|
ARMOR_HORSE("armor", EntityType.HORSE, Material.IRON_BARDING, true),
|
||||||
|
|
||||||
|
SIAMESE_CAT("siamese", EntityType.OCELOT, Ocelot.Type.SIAMESE_CAT, true),
|
||||||
|
WHITE_CAT("white", EntityType.OCELOT, Ocelot.Type.SIAMESE_CAT, false),
|
||||||
|
RED_CAT("red", EntityType.OCELOT, Ocelot.Type.RED_CAT, true),
|
||||||
|
ORANGE_CAT("orange", EntityType.OCELOT, Ocelot.Type.RED_CAT, false),
|
||||||
|
TABBY_CAT("tabby", EntityType.OCELOT, Ocelot.Type.RED_CAT, false),
|
||||||
|
BLACK_CAT("black", EntityType.OCELOT, Ocelot.Type.BLACK_CAT, true),
|
||||||
|
TUXEDO_CAT("tuxedo", EntityType.OCELOT, Ocelot.Type.BLACK_CAT, false),
|
||||||
|
|
||||||
|
VILLAGER_ZOMBIE("villager", EntityType.ZOMBIE.getEntityClass(), Data.VILLAGER, true),
|
||||||
|
BABY_ZOMBIE("baby", EntityType.ZOMBIE.getEntityClass(), Data.BABYZOMBIE, true),
|
||||||
|
|
||||||
|
DIAMOND_SWORD_ZOMBIE("diamondsword", EntityType.ZOMBIE.getEntityClass(), Material.DIAMOND_SWORD, true),
|
||||||
|
GOLD_SWORD_ZOMBIE("goldsword", EntityType.ZOMBIE.getEntityClass(), Material.GOLD_SWORD, true),
|
||||||
|
IRON_SWORD_ZOMBIE("ironsword", EntityType.ZOMBIE.getEntityClass(), Material.IRON_SWORD, true),
|
||||||
|
STONE_SWORD_ZOMBIE("stonesword", EntityType.ZOMBIE.getEntityClass(), Material.STONE_SWORD, false),
|
||||||
|
SWORD_ZOMBIE("sword", EntityType.ZOMBIE.getEntityClass(), Material.STONE_SWORD, true),
|
||||||
|
|
||||||
|
DIAMOND_SWORD_SKELETON("diamondsword", EntityType.SKELETON, Material.DIAMOND_SWORD, true),
|
||||||
|
GOLD_SWORD_SKELETON("goldsword", EntityType.SKELETON, Material.GOLD_SWORD, true),
|
||||||
|
IRON_SWORD_SKELETON("ironsword", EntityType.SKELETON, Material.IRON_SWORD, true),
|
||||||
|
STONE_SWORD_SKELETON("stonesword", EntityType.SKELETON, Material.STONE_SWORD, false),
|
||||||
|
SWORD_SKELETON("sword", EntityType.SKELETON, Material.STONE_SWORD, true),
|
||||||
|
WHITHER_SKELETON("wither", EntityType.SKELETON, Data.WITHER, true),
|
||||||
|
|
||||||
|
POWERED_CREEPER("powered", EntityType.CREEPER, Data.ELECTRIFIED, true),
|
||||||
|
ELECTRIC_CREEPER("electric", EntityType.CREEPER, Data.ELECTRIFIED, false),
|
||||||
|
CHARGED_CREEPER("charged", EntityType.CREEPER, Data.ELECTRIFIED, false),
|
||||||
|
|
||||||
|
SADDLE_PIG("saddle", EntityType.PIG, Data.PIGSADDLE, true),
|
||||||
|
|
||||||
|
ANGRY_WOLF("angry", EntityType.WOLF, Data.ANGRY, true),
|
||||||
|
RABID_WOLF("rabid", EntityType.WOLF, Data.ANGRY, false),
|
||||||
|
|
||||||
|
FARMER_VILLAGER("farmer", EntityType.VILLAGER, Villager.Profession.FARMER, true),
|
||||||
|
LIBRARIAN_VILLAGER("librarian", EntityType.VILLAGER, Villager.Profession.LIBRARIAN, true),
|
||||||
|
PRIEST_VILLAGER("priest", EntityType.VILLAGER, Villager.Profession.PRIEST, true),
|
||||||
|
FATHER_VILLAGER("father", EntityType.VILLAGER, Villager.Profession.PRIEST, false),
|
||||||
|
SMITH_VILLAGER("smith", EntityType.VILLAGER, Villager.Profession.BLACKSMITH, true),
|
||||||
|
BUTCHER_VILLAGER("butcher", EntityType.VILLAGER, Villager.Profession.BUTCHER, true),
|
||||||
|
|
||||||
|
SIZE_SLIME("", "<1-100>", EntityType.SLIME.getEntityClass(), Data.SIZE, true),
|
||||||
|
NUM_EXPERIENCE_ORB("", "<1-2000000000>", EntityType.EXPERIENCE_ORB, Data.EXP, true);
|
||||||
|
|
||||||
|
public enum Data
|
||||||
|
{
|
||||||
|
BABY,
|
||||||
|
CHEST,
|
||||||
|
BABYZOMBIE,
|
||||||
|
VILLAGER,
|
||||||
|
HORSESADDLE,
|
||||||
|
PIGSADDLE,
|
||||||
|
ELECTRIFIED,
|
||||||
|
WITHER,
|
||||||
|
ANGRY,
|
||||||
|
TAMED,
|
||||||
|
COLORABLE,
|
||||||
|
EXP,
|
||||||
|
SIZE;
|
||||||
|
}
|
||||||
|
public static final Logger logger = Logger.getLogger("Minecraft");
|
||||||
|
|
||||||
|
private MobData(String n, Object type, Object value, boolean isPublic)
|
||||||
|
{
|
||||||
|
this.nickname = n;
|
||||||
|
this.matched = n;
|
||||||
|
this.helpMessage = n;
|
||||||
|
this.type = type;
|
||||||
|
this.value = value;
|
||||||
|
this.isPublic = isPublic;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MobData(String n, String h, Object type, Object value, boolean isPublic)
|
||||||
|
{
|
||||||
|
this.nickname = n;
|
||||||
|
this.matched = n;
|
||||||
|
this.helpMessage = h;
|
||||||
|
this.type = type;
|
||||||
|
this.value = value;
|
||||||
|
this.isPublic = isPublic;
|
||||||
|
}
|
||||||
|
|
||||||
|
final private String nickname;
|
||||||
|
final private String helpMessage;
|
||||||
|
final private Object type;
|
||||||
|
final private Object value;
|
||||||
|
final private boolean isPublic;
|
||||||
|
|
||||||
|
private String matched;
|
||||||
|
|
||||||
|
public static LinkedHashMap<String, MobData> getPossibleData(final Entity spawned, boolean publicOnly)
|
||||||
|
{
|
||||||
|
LinkedHashMap<String, MobData> mobList = new LinkedHashMap<String, MobData>();
|
||||||
|
for (MobData data : MobData.values())
|
||||||
|
{
|
||||||
|
if (data.type instanceof EntityType && spawned.getType().equals(data.type) && ((publicOnly && data.isPublic) || !publicOnly))
|
||||||
|
{
|
||||||
|
mobList.put(data.nickname.toLowerCase(Locale.ENGLISH), data);
|
||||||
|
}
|
||||||
|
else if (data.type instanceof Class && ((Class)data.type).isAssignableFrom(spawned.getClass()) && ((publicOnly && data.isPublic) || !publicOnly))
|
||||||
|
{
|
||||||
|
mobList.put(data.nickname.toLowerCase(Locale.ENGLISH), data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return mobList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<String> getValidHelp(final Entity spawned)
|
||||||
|
{
|
||||||
|
List<String> output = new ArrayList<String>();
|
||||||
|
LinkedHashMap<String, MobData> posData = getPossibleData(spawned, true);
|
||||||
|
|
||||||
|
for (MobData data : posData.values())
|
||||||
|
{
|
||||||
|
output.add(data.helpMessage);
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MobData fromData(final Entity spawned, final String name)
|
||||||
|
{
|
||||||
|
if (name.isEmpty())
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
LinkedHashMap<String, MobData> posData = getPossibleData(spawned, false);
|
||||||
|
for (String data : posData.keySet())
|
||||||
|
{
|
||||||
|
if (name.contains(data))
|
||||||
|
{
|
||||||
|
return posData.get(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMatched()
|
||||||
|
{
|
||||||
|
return this.matched;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setData(final Entity spawned, final Player target, final String rawData) throws Exception
|
||||||
|
{
|
||||||
|
if (this.value.equals(Data.ANGRY))
|
||||||
|
{
|
||||||
|
((Wolf)spawned).setAngry(true);
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.BABY))
|
||||||
|
{
|
||||||
|
((Ageable)spawned).setBaby();
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.BABYZOMBIE))
|
||||||
|
{
|
||||||
|
((Zombie)spawned).setBaby(true);
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.CHEST))
|
||||||
|
{
|
||||||
|
((Horse)spawned).setTamed(true);
|
||||||
|
((Horse)spawned).setCarryingChest(true);
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.ELECTRIFIED))
|
||||||
|
{
|
||||||
|
((Creeper)spawned).setPowered(true);
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.HORSESADDLE))
|
||||||
|
{
|
||||||
|
((Horse)spawned).setTamed(true);
|
||||||
|
((Horse)spawned).getInventory().setSaddle(new ItemStack(Material.SADDLE, 1));
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.PIGSADDLE))
|
||||||
|
{
|
||||||
|
((Pig)spawned).setSaddle(true);
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.TAMED))
|
||||||
|
{
|
||||||
|
final Tameable tameable = ((Tameable)spawned);
|
||||||
|
tameable.setTamed(true);
|
||||||
|
tameable.setOwner(target);
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.VILLAGER))
|
||||||
|
{
|
||||||
|
((Zombie)spawned).setVillager(this.value.equals(Data.VILLAGER));
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.WITHER))
|
||||||
|
{
|
||||||
|
((Skeleton)spawned).setSkeletonType(Skeleton.SkeletonType.WITHER);
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.COLORABLE))
|
||||||
|
{
|
||||||
|
final String color = rawData.toUpperCase(Locale.ENGLISH);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (color.equals("RANDOM"))
|
||||||
|
{
|
||||||
|
final Random rand = new Random();
|
||||||
|
((Colorable)spawned).setColor(DyeColor.values()[rand.nextInt(DyeColor.values().length)]);
|
||||||
|
}
|
||||||
|
else if (!color.isEmpty())
|
||||||
|
{
|
||||||
|
((Colorable)spawned).setColor(DyeColor.valueOf(color));
|
||||||
|
}
|
||||||
|
this.matched = rawData;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
throw new Exception(_("sheepMalformedColor"), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.EXP))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
((ExperienceOrb)spawned).setExperience(Integer.parseInt(rawData));
|
||||||
|
this.matched = rawData;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
throw new Exception(_("invalidNumber"), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.value.equals(Data.SIZE))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
((Slime)spawned).setSize(Integer.parseInt(rawData));
|
||||||
|
this.matched = rawData;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
throw new Exception(_("slimeMalformedSize"), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.value instanceof Horse.Color)
|
||||||
|
{
|
||||||
|
((Horse)spawned).setColor((Horse.Color)this.value);
|
||||||
|
}
|
||||||
|
else if (this.value instanceof Horse.Style)
|
||||||
|
{
|
||||||
|
((Horse)spawned).setStyle((Horse.Style)this.value);
|
||||||
|
}
|
||||||
|
else if (this.value instanceof Horse.Variant)
|
||||||
|
{
|
||||||
|
((Horse)spawned).setVariant((Horse.Variant)this.value);
|
||||||
|
}
|
||||||
|
else if (this.value instanceof Ocelot.Type)
|
||||||
|
{
|
||||||
|
((Ocelot)spawned).setCatType((Ocelot.Type)this.value);
|
||||||
|
}
|
||||||
|
else if (this.value instanceof Villager.Profession)
|
||||||
|
{
|
||||||
|
((Villager)spawned).setProfession((Villager.Profession)this.value);
|
||||||
|
}
|
||||||
|
else if (this.value instanceof Material)
|
||||||
|
{
|
||||||
|
if (this.type.equals(EntityType.HORSE))
|
||||||
|
{
|
||||||
|
((Horse)spawned).setTamed(true);
|
||||||
|
((Horse)spawned).getInventory().setArmor(new ItemStack((Material)this.value, 1));
|
||||||
|
}
|
||||||
|
else if (this.type.equals(EntityType.ZOMBIE.getEntityClass()) || this.type.equals(EntityType.SKELETON))
|
||||||
|
{
|
||||||
|
final EntityEquipment invent = ((LivingEntity)spawned).getEquipment();
|
||||||
|
invent.setItemInHand(new ItemStack((Material)this.value, 1));
|
||||||
|
invent.setItemInHandDropChance(0.1f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,29 +1,23 @@
|
||||||
package com.earth2me.essentials;
|
package com.earth2me.essentials;
|
||||||
|
|
||||||
|
import static com.earth2me.essentials.I18n._;
|
||||||
import net.ess3.api.IEssentials;
|
import net.ess3.api.IEssentials;
|
||||||
import com.earth2me.essentials.utils.StringUtil;
|
import com.earth2me.essentials.utils.StringUtil;
|
||||||
import static com.earth2me.essentials.I18n._;
|
|
||||||
import com.earth2me.essentials.Mob.MobException;
|
import com.earth2me.essentials.Mob.MobException;
|
||||||
import com.earth2me.essentials.utils.LocationUtil;
|
import com.earth2me.essentials.utils.LocationUtil;
|
||||||
import com.earth2me.essentials.utils.NumberUtil;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Random;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import org.bukkit.DyeColor;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.*;
|
||||||
import org.bukkit.entity.Skeleton.SkeletonType;
|
|
||||||
import org.bukkit.inventory.EntityEquipment;
|
import org.bukkit.inventory.EntityEquipment;
|
||||||
import org.bukkit.inventory.HorseInventory;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.material.Colorable;
|
|
||||||
|
|
||||||
|
|
||||||
public class SpawnMob
|
public class SpawnMob
|
||||||
|
@ -71,7 +65,14 @@ public class SpawnMob
|
||||||
String[] mobDatas = mobPart.split(":");
|
String[] mobDatas = mobPart.split(":");
|
||||||
if (mobDatas.length == 1)
|
if (mobDatas.length == 1)
|
||||||
{
|
{
|
||||||
mobData.add(null);
|
if (mobPart.contains(":"))
|
||||||
|
{
|
||||||
|
mobData.add("");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mobData.add(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -93,12 +94,6 @@ public class SpawnMob
|
||||||
spawnmob(ess, server, user.getBase(), user, block.getLocation(), parts, data, mobCount);
|
spawnmob(ess, server, user.getBase(), user, block.getLocation(), parts, data, mobCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method spawns a mob at loc, owned by noone
|
|
||||||
public static void spawnmob(final IEssentials ess, final Server server, final CommandSender sender, final Location loc, final List<String> parts, final List<String> data, int mobCount) throws Exception
|
|
||||||
{
|
|
||||||
spawnmob(ess, server, sender, null, loc, parts, data, mobCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
// This method spawns a mob at target, owned by target
|
// This method spawns a mob at target, owned by target
|
||||||
public static void spawnmob(final IEssentials ess, final Server server, final CommandSender sender, final User target, final List<String> parts, final List<String> data, int mobCount) throws Exception
|
public static void spawnmob(final IEssentials ess, final Server server, final CommandSender sender, final User target, final List<String> parts, final List<String> data, int mobCount) throws Exception
|
||||||
{
|
{
|
||||||
|
@ -173,7 +168,7 @@ public class SpawnMob
|
||||||
|
|
||||||
if (data.get(i) != null)
|
if (data.get(i) != null)
|
||||||
{
|
{
|
||||||
changeMobData(mob.getType(), spawnedMob, data.get(i), target);
|
changeMobData(sender, mob.getType(), spawnedMob, data.get(i).toLowerCase(Locale.ENGLISH), target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,7 +181,7 @@ public class SpawnMob
|
||||||
|
|
||||||
if (data.get(next) != null)
|
if (data.get(next) != null)
|
||||||
{
|
{
|
||||||
changeMobData(mMob.getType(), spawnedMount, data.get(next), target);
|
changeMobData(sender, mMob.getType(), spawnedMount, data.get(next).toLowerCase(Locale.ENGLISH), target);
|
||||||
}
|
}
|
||||||
|
|
||||||
spawnedMob.setPassenger(spawnedMount);
|
spawnedMob.setPassenger(spawnedMount);
|
||||||
|
@ -214,47 +209,58 @@ public class SpawnMob
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void changeMobData(final EntityType type, final Entity spawned, String data, final User target) throws Exception
|
private static void changeMobData(final CommandSender sender, final EntityType type, final Entity spawned, final String inputData, final User target) throws Exception
|
||||||
{
|
{
|
||||||
data = data.toLowerCase(Locale.ENGLISH);
|
String data = inputData;
|
||||||
|
|
||||||
|
if (data.equals(""))
|
||||||
|
{
|
||||||
|
sender.sendMessage(_("mobDataList", StringUtil.joinList(MobData.getValidHelp(spawned))));
|
||||||
|
}
|
||||||
|
|
||||||
|
MobData newData = MobData.fromData(spawned, data);
|
||||||
|
while (newData != null) {
|
||||||
|
newData.setData(spawned, target.getBase(), data);
|
||||||
|
data = data.replace(newData.getMatched(), "");
|
||||||
|
newData = MobData.fromData(spawned, data);
|
||||||
|
}
|
||||||
|
|
||||||
if (spawned instanceof Zombie || type == EntityType.SKELETON)
|
if (spawned instanceof Zombie || type == EntityType.SKELETON)
|
||||||
{
|
{
|
||||||
//This should match all Living Entities but most mobs will just ignore the equipment.
|
if (inputData.contains("armor") || inputData.contains("armour"))
|
||||||
if (data.contains("armor") || data.contains("armour"))
|
|
||||||
{
|
{
|
||||||
final EntityEquipment invent = ((LivingEntity)spawned).getEquipment();
|
final EntityEquipment invent = ((LivingEntity)spawned).getEquipment();
|
||||||
if (data.contains("diamond"))
|
if (inputData.contains("diamond"))
|
||||||
{
|
{
|
||||||
invent.setBoots(new ItemStack(Material.DIAMOND_BOOTS, 1));
|
invent.setBoots(new ItemStack(Material.DIAMOND_BOOTS, 1));
|
||||||
invent.setLeggings(new ItemStack(Material.DIAMOND_BOOTS, 1));
|
invent.setLeggings(new ItemStack(Material.DIAMOND_LEGGINGS, 1));
|
||||||
invent.setChestplate(new ItemStack(Material.DIAMOND_BOOTS, 1));
|
invent.setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE, 1));
|
||||||
invent.setHelmet(new ItemStack(Material.DIAMOND_BOOTS, 1));
|
invent.setHelmet(new ItemStack(Material.DIAMOND_HELMET, 1));
|
||||||
}
|
}
|
||||||
else if (data.contains("gold"))
|
else if (inputData.contains("gold"))
|
||||||
{
|
{
|
||||||
invent.setBoots(new ItemStack(Material.GOLD_BOOTS, 1));
|
invent.setBoots(new ItemStack(Material.GOLD_BOOTS, 1));
|
||||||
invent.setLeggings(new ItemStack(Material.GOLD_BOOTS, 1));
|
invent.setLeggings(new ItemStack(Material.GOLD_LEGGINGS, 1));
|
||||||
invent.setChestplate(new ItemStack(Material.GOLD_BOOTS, 1));
|
invent.setChestplate(new ItemStack(Material.GOLD_CHESTPLATE, 1));
|
||||||
invent.setHelmet(new ItemStack(Material.GOLD_BOOTS, 1));
|
invent.setHelmet(new ItemStack(Material.GOLD_HELMET, 1));
|
||||||
}
|
}
|
||||||
else if (data.contains("leather"))
|
else if (inputData.contains("leather"))
|
||||||
{
|
{
|
||||||
invent.setBoots(new ItemStack(Material.LEATHER_BOOTS, 1));
|
invent.setBoots(new ItemStack(Material.LEATHER_BOOTS, 1));
|
||||||
invent.setLeggings(new ItemStack(Material.LEATHER_BOOTS, 1));
|
invent.setLeggings(new ItemStack(Material.LEATHER_LEGGINGS, 1));
|
||||||
invent.setChestplate(new ItemStack(Material.LEATHER_BOOTS, 1));
|
invent.setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE, 1));
|
||||||
invent.setHelmet(new ItemStack(Material.LEATHER_BOOTS, 1));
|
invent.setHelmet(new ItemStack(Material.LEATHER_HELMET, 1));
|
||||||
}
|
}
|
||||||
else if (data.contains("no"))
|
else if (inputData.contains("no"))
|
||||||
{
|
{
|
||||||
invent.clear();
|
invent.clear();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
invent.setBoots(new ItemStack(Material.IRON_BOOTS, 1));
|
invent.setBoots(new ItemStack(Material.IRON_BOOTS, 1));
|
||||||
invent.setLeggings(new ItemStack(Material.IRON_BOOTS, 1));
|
invent.setLeggings(new ItemStack(Material.IRON_LEGGINGS, 1));
|
||||||
invent.setChestplate(new ItemStack(Material.IRON_BOOTS, 1));
|
invent.setChestplate(new ItemStack(Material.IRON_CHESTPLATE, 1));
|
||||||
invent.setHelmet(new ItemStack(Material.IRON_BOOTS, 1));
|
invent.setHelmet(new ItemStack(Material.IRON_HELMET, 1));
|
||||||
}
|
}
|
||||||
invent.setBootsDropChance(0f);
|
invent.setBootsDropChance(0f);
|
||||||
invent.setLeggingsDropChance(0f);
|
invent.setLeggingsDropChance(0f);
|
||||||
|
@ -263,247 +269,6 @@ public class SpawnMob
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (spawned instanceof Slime)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
((Slime)spawned).setSize(Integer.parseInt(data));
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
throw new Exception(_("slimeMalformedSize"), e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((spawned instanceof Ageable) && data.contains("baby"))
|
|
||||||
{
|
|
||||||
((Ageable)spawned).setBaby();
|
|
||||||
data = data.replace("baby", "");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (spawned instanceof Colorable)
|
|
||||||
{
|
|
||||||
final String color = data.toUpperCase(Locale.ENGLISH);
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (color.equals("RANDOM"))
|
|
||||||
{
|
|
||||||
final Random rand = new Random();
|
|
||||||
((Colorable)spawned).setColor(DyeColor.values()[rand.nextInt(DyeColor.values().length)]);
|
|
||||||
}
|
|
||||||
else if (color.length() > 1)
|
|
||||||
{
|
|
||||||
((Colorable)spawned).setColor(DyeColor.valueOf(color));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
throw new Exception(_("sheepMalformedColor"), e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (spawned instanceof Tameable && data.contains("tamed") && target != null)
|
|
||||||
{
|
|
||||||
final Tameable tameable = ((Tameable)spawned);
|
|
||||||
tameable.setTamed(true);
|
|
||||||
tameable.setOwner(target.getBase());
|
|
||||||
data = data.replace("tamed", "");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == EntityType.WOLF)
|
|
||||||
{
|
|
||||||
if (data.contains("angry"))
|
|
||||||
{
|
|
||||||
((Wolf)spawned).setAngry(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == EntityType.CREEPER && data.contains("powered"))
|
|
||||||
{
|
|
||||||
((Creeper)spawned).setPowered(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == EntityType.OCELOT)
|
|
||||||
{
|
|
||||||
if (data.contains("siamese") || data.contains("white"))
|
|
||||||
{
|
|
||||||
((Ocelot)spawned).setCatType(Ocelot.Type.SIAMESE_CAT);
|
|
||||||
}
|
|
||||||
else if (data.contains("red") || data.contains("orange") || data.contains("tabby"))
|
|
||||||
{
|
|
||||||
((Ocelot)spawned).setCatType(Ocelot.Type.RED_CAT);
|
|
||||||
}
|
|
||||||
else if (data.contains("black") || data.contains("tuxedo"))
|
|
||||||
{
|
|
||||||
((Ocelot)spawned).setCatType(Ocelot.Type.BLACK_CAT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == EntityType.VILLAGER)
|
|
||||||
{
|
|
||||||
for (Villager.Profession prof : Villager.Profession.values())
|
|
||||||
{
|
|
||||||
if (data.contains(prof.toString().toLowerCase(Locale.ENGLISH)))
|
|
||||||
{
|
|
||||||
((Villager)spawned).setProfession(prof);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (spawned instanceof Zombie)
|
|
||||||
{
|
|
||||||
if (data.contains("villager"))
|
|
||||||
{
|
|
||||||
((Zombie)spawned).setVillager(true);
|
|
||||||
}
|
|
||||||
if (data.contains("baby"))
|
|
||||||
{
|
|
||||||
((Zombie)spawned).setBaby(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (spawned instanceof Zombie || type == EntityType.SKELETON)
|
|
||||||
{
|
|
||||||
if (data.contains("sword"))
|
|
||||||
{
|
|
||||||
final EntityEquipment invent = ((LivingEntity)spawned).getEquipment();
|
|
||||||
if (data.contains("diamond"))
|
|
||||||
{
|
|
||||||
invent.setItemInHand(new ItemStack(Material.DIAMOND_SWORD, 1));
|
|
||||||
}
|
|
||||||
else if (data.contains("gold"))
|
|
||||||
{
|
|
||||||
invent.setItemInHand(new ItemStack(Material.GOLD_SWORD, 1));
|
|
||||||
}
|
|
||||||
else if (data.contains("iron"))
|
|
||||||
{
|
|
||||||
invent.setItemInHand(new ItemStack(Material.IRON_SWORD, 1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
invent.setItemInHand(new ItemStack(Material.STONE_SWORD, 1));
|
|
||||||
}
|
|
||||||
invent.setItemInHandDropChance(0.1f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == EntityType.SKELETON)
|
|
||||||
{
|
|
||||||
if (data.contains("wither"))
|
|
||||||
{
|
|
||||||
((Skeleton)spawned).setSkeletonType(SkeletonType.WITHER);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == EntityType.EXPERIENCE_ORB)
|
|
||||||
{
|
|
||||||
if (NumberUtil.isInt(data))
|
|
||||||
{
|
|
||||||
((ExperienceOrb)spawned).setExperience(Integer.parseInt(data));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == EntityType.HORSE)
|
|
||||||
{
|
|
||||||
if (data.contains("donkey"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setVariant(Horse.Variant.DONKEY);
|
|
||||||
}
|
|
||||||
else if (data.contains("mule"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setVariant(Horse.Variant.MULE);
|
|
||||||
}
|
|
||||||
else if (data.contains("skeleton"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setVariant(Horse.Variant.SKELETON_HORSE);
|
|
||||||
}
|
|
||||||
else if (data.contains("undead"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setVariant(Horse.Variant.UNDEAD_HORSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.contains("polka") || data.contains("sooty"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setStyle(Horse.Style.BLACK_DOTS);
|
|
||||||
}
|
|
||||||
else if (data.contains("socks") || data.contains("blaze"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setStyle(Horse.Style.WHITE);
|
|
||||||
}
|
|
||||||
else if (data.contains("leopard") || data.contains("appaloosa"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setStyle(Horse.Style.WHITE_DOTS);
|
|
||||||
}
|
|
||||||
else if (data.contains("splotchy") || data.contains("milky") || data.contains("paint"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setStyle(Horse.Style.WHITEFIELD);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.contains("black"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setColor(Horse.Color.BLACK);
|
|
||||||
}
|
|
||||||
else if (data.contains("chestnut") || data.contains("liver"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setColor(Horse.Color.CHESTNUT);
|
|
||||||
data = data.replace("chestnut", "");
|
|
||||||
}
|
|
||||||
else if (data.contains("creamy") || data.contains("flaxen"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setColor(Horse.Color.CREAMY);
|
|
||||||
}
|
|
||||||
else if (data.contains("gray") || data.contains("dapple"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setColor(Horse.Color.GRAY);
|
|
||||||
}
|
|
||||||
else if (data.contains("dark") || data.contains("darkbrown") || data.contains("dbrown") || data.contains("buckskin"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setColor(Horse.Color.DARK_BROWN);
|
|
||||||
}
|
|
||||||
else if (data.contains("brown") || data.contains("bay"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setColor(Horse.Color.BROWN);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.contains("chest"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setTamed(true);
|
|
||||||
((Horse)spawned).setCarryingChest(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.contains("saddle"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setTamed(true);
|
|
||||||
((Horse)spawned).getInventory().setSaddle(new ItemStack(Material.SADDLE, 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.contains("armor"))
|
|
||||||
{
|
|
||||||
((Horse)spawned).setTamed(true);
|
|
||||||
HorseInventory invent = ((Horse)spawned).getInventory();
|
|
||||||
if (data.contains("gold")) {
|
|
||||||
invent.setArmor(new ItemStack(Material.GOLD_BARDING, 1));
|
|
||||||
}
|
|
||||||
else if (data.contains("diamond"))
|
|
||||||
{
|
|
||||||
invent.setArmor(new ItemStack(Material.DIAMOND_BARDING, 1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
invent.setArmor(new ItemStack(Material.IRON_BARDING, 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == EntityType.PIG)
|
|
||||||
{
|
|
||||||
if (data.contains("saddle"))
|
|
||||||
{
|
|
||||||
((Pig)spawned).setSaddle(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void defaultMobData(final EntityType type, final Entity spawned)
|
private static void defaultMobData(final EntityType type, final Entity spawned)
|
||||||
|
@ -535,5 +300,9 @@ public class SpawnMob
|
||||||
invent.setBootsDropChance(0.0f);
|
invent.setBootsDropChance(0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type == EntityType.HORSE)
|
||||||
|
{
|
||||||
|
((Horse)spawned).setJumpStrength(1.2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -528,3 +528,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
|
@ -523,3 +523,4 @@ totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00
|
||||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||||
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
radiusTooBig=\u00a74Radius is too big! Maximum radius is {0}.
|
||||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||||
|
mobDataList=\u00a76Valid mob data:\u00a7r {0}
|
||||||
|
|
Loading…
Reference in a new issue