Move common name setting stuff to superclass

This commit is contained in:
vemacs 2015-06-17 16:58:57 -04:00
parent 1d63209691
commit 0331fafa77
4 changed files with 18 additions and 36 deletions

View file

@ -25,16 +25,7 @@ public class v1_8_R1SpawnerProvider extends SpawnerProvider {
tag = itemStack.getTag().getCompound("BlockEntityTag"); tag = itemStack.getTag().getCompound("BlockEntityTag");
tag.setString("EntityId", type.getName()); tag.setString("EntityId", type.getName());
ItemStack bukkitItemStack = CraftItemStack.asCraftMirror(itemStack).clone(); ItemStack bukkitItemStack = CraftItemStack.asCraftMirror(itemStack).clone();
ItemMeta meta = bukkitItemStack.getItemMeta(); return setDisplayName(bukkitItemStack, type);
String displayName;
if (entityToDisplayName.containsKey(type)) {
displayName = entityToDisplayName.get(type);
} else {
displayName = type.getName();
}
meta.setDisplayName(ChatColor.RESET + displayName + " Spawner");
bukkitItemStack.setItemMeta(meta);
return bukkitItemStack;
} }
@Override @Override

View file

@ -1,13 +1,11 @@
package net.ess3.nms.blockmeta; package net.ess3.nms.blockmeta;
import net.ess3.nms.SpawnerProvider; import net.ess3.nms.SpawnerProvider;
import org.bukkit.ChatColor;
import org.bukkit.block.BlockState; import org.bukkit.block.BlockState;
import org.bukkit.block.CreatureSpawner; import org.bukkit.block.CreatureSpawner;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.BlockStateMeta; import org.bukkit.inventory.meta.BlockStateMeta;
import org.bukkit.inventory.meta.ItemMeta;
public class BlockMetaSpawnerProvider extends SpawnerProvider { public class BlockMetaSpawnerProvider extends SpawnerProvider {
@Override @Override
@ -17,18 +15,7 @@ public class BlockMetaSpawnerProvider extends SpawnerProvider {
((CreatureSpawner) bs).setSpawnedType(type); ((CreatureSpawner) bs).setSpawnedType(type);
bsm.setBlockState(bs); bsm.setBlockState(bs);
is.setItemMeta(bsm); is.setItemMeta(bsm);
// Legacy behavior return setDisplayName(is, type);
is.setDurability(type.getTypeId());
ItemMeta meta = is.getItemMeta();
String displayName;
if (entityToDisplayName.containsKey(type)) {
displayName = entityToDisplayName.get(type);
} else {
displayName = type.getName();
}
meta.setDisplayName(ChatColor.RESET + displayName + " Spawner");
is.setItemMeta(meta);
return is;
} }
@Override @Override

View file

@ -1,25 +1,14 @@
package net.ess3.nms.legacy; package net.ess3.nms.legacy;
import net.ess3.nms.SpawnerProvider; import net.ess3.nms.SpawnerProvider;
import org.bukkit.ChatColor;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class LegacySpawnerProvider extends SpawnerProvider { public class LegacySpawnerProvider extends SpawnerProvider {
@Override @Override
public ItemStack setEntityType(ItemStack is, EntityType type) { public ItemStack setEntityType(ItemStack is, EntityType type) {
is.getData().setData((byte) type.getTypeId()); is.getData().setData((byte) type.getTypeId());
ItemMeta meta = is.getItemMeta(); return setDisplayName(is, type);
String displayName;
if (entityToDisplayName.containsKey(type)) {
displayName = entityToDisplayName.get(type);
} else {
displayName = type.getName();
}
meta.setDisplayName(ChatColor.RESET + displayName + " Spawner");
is.setItemMeta(meta);
return is;
} }
@Override @Override

View file

@ -1,9 +1,11 @@
package net.ess3.nms; package net.ess3.nms;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Map; import java.util.Map;
@ -35,4 +37,17 @@ public abstract class SpawnerProvider {
return false; return false;
} }
} }
protected ItemStack setDisplayName(ItemStack is, EntityType type) {
ItemMeta meta = is.getItemMeta();
String displayName;
if (entityToDisplayName.containsKey(type)) {
displayName = entityToDisplayName.get(type);
} else {
displayName = type.getName();
}
meta.setDisplayName(ChatColor.RESET + displayName + " Spawner");
is.setItemMeta(meta);
return is;
}
} }