Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.assist.randommobnames;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.concurrent.ThreadLocalRandom;
- import org.bukkit.ChatColor;
- import org.bukkit.configuration.ConfigurationSection;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.entity.EntityType;
- import static org.bukkit.entity.EntityType.*;
- import org.bukkit.entity.LivingEntity;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.CreatureSpawnEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- public class RandomMobNames extends JavaPlugin implements Listener {
- private FileConfiguration config;
- private HashMap<String, ArrayList<String>> mobNames = new HashMap<>();
- public void onEnable() {
- saveDefaultConfig();
- config = getConfig();
- final EntityType[] livingEntities = new EntityType[] { BAT, BLAZE, CAVE_SPIDER, CHICKEN, COW, CREEPER, ENDER_DRAGON, ENDERMAN, GHAST, GIANT, IRON_GOLEM, HORSE, MAGMA_CUBE, MUSHROOM_COW, OCELOT, PIG, PIG_ZOMBIE, SHEEP, SILVERFISH, SKELETON, SLIME, SNOWMAN, SPIDER, SQUID, VILLAGER, WITCH, WITHER, WOLF, ZOMBIE };
- for (EntityType entity : livingEntities) {
- String name = entity.name();
- if (!config.contains(name)) {
- continue;
- }
- ArrayList<String> names = findInheritedNames(name, (ArrayList<String>) config.getStringList(name + ".names"));
- mobNames.put(name, names);
- getLogger().info("Loaded " + names.size() + " custom names for mob: " + name);
- }
- getServer().getPluginManager().registerEvents(this, this);
- }
- private ArrayList<String> findInheritedNames(String name, ArrayList<String> names) {
- String inherit = config.getString(name + ".inherit", null);
- if (inherit == null) {
- return names;
- }
- ConfigurationSection section = config.getConfigurationSection(inherit);
- if (section.contains("names")) {
- names.addAll(section.getStringList("names"));
- }
- return findInheritedNames(inherit, names);
- }
- @EventHandler
- public void onSpawn(CreatureSpawnEvent event) {
- LivingEntity entity = event.getEntity();
- String name = entity.getType().name();
- if (!mobNames.containsKey(name)) {
- return;
- }
- ArrayList<String> names = mobNames.get(name);
- String randomName = names.get(ThreadLocalRandom.current().nextInt(names.size()));
- entity.setCustomName(ChatColor.translateAlternateColorCodes('&', randomName));
- entity.setCustomNameVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement