
org.bukkit.craftbukkit.util.CraftMagicNumbers Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of walk-server Show documentation
Show all versions of walk-server Show documentation
A spigot fork to kotlin structure and news.
package org.bukkit.craftbukkit.util;
import com.google.common.collect.Lists;
import net.minecraft.server.*;
import org.bukkit.Achievement;
import org.bukkit.Material;
import org.bukkit.Statistic;
import org.bukkit.UnsafeValues;
import org.bukkit.craftbukkit.CraftStatistic;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.StringUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@SuppressWarnings("deprecation")
public final class CraftMagicNumbers implements UnsafeValues {
public static final UnsafeValues INSTANCE = new CraftMagicNumbers();
private CraftMagicNumbers() {
}
public static Block getBlock(org.bukkit.block.Block block) {
return getBlock(block.getType());
}
@Deprecated
// A bad method for bad magic.
public static Block getBlock(int id) {
return getBlock(Material.getMaterial(id));
}
@Deprecated
// A bad method for bad magic.
public static int getId(Block block) {
return Block.getId(block);
}
public static Material getMaterial(Block block) {
return Material.getMaterial(Block.getId(block));
}
public static Item getItem(Material material) {
// TODO: Don't use ID
return Item.getById(material.getId());
}
@Deprecated
// A bad method for bad magic.
public static Item getItem(int id) {
return Item.getById(id);
}
@Deprecated
// A bad method for bad magic.
public static int getId(Item item) {
return Item.getId(item);
}
public static Material getMaterial(Item item) {
// TODO: Don't use ID
Material material = Material.getMaterial(Item.getId(item));
if (material == null) {
return Material.AIR;
}
return material;
}
public static Block getBlock(Material material) {
// TODO: Don't use ID
Block block = Block.getById(material.getId());
if (block == null) {
return Blocks.AIR;
}
return block;
}
@Override
public Material getMaterialFromInternalName(String name) {
return getMaterial(Item.REGISTRY.get(new MinecraftKey(name)));
}
@Override
public List tabCompleteInternalMaterialName(String token, List completions) {
ArrayList results = Lists.newArrayList();
for (MinecraftKey key : Item.REGISTRY.keySet()) {
results.add(key.toString());
}
return StringUtil.copyPartialMatches(token, results, completions);
}
@Override
public ItemStack modifyItemStack(ItemStack stack, String arguments) {
net.minecraft.server.ItemStack nmsStack = CraftItemStack.asNMSCopy(stack);
try {
nmsStack.setTag(MojangsonParser.parse(arguments));
} catch (MojangsonParseException ex) {
Logger.getLogger(CraftMagicNumbers.class.getName()).log(Level.SEVERE, null, ex);
}
stack.setItemMeta(CraftItemStack.getItemMeta(nmsStack));
return stack;
}
@Override
public Statistic getStatisticFromInternalName(String name) {
return CraftStatistic.getBukkitStatisticByName(name);
}
@Override
public Achievement getAchievementFromInternalName(String name) {
return CraftStatistic.getBukkitAchievementByName(name);
}
@Override
public List tabCompleteInternalStatisticOrAchievementName(String token, List completions) {
List matches = new ArrayList();
for (net.minecraft.server.Statistic value : StatisticList.stats) {
String statistic = value.name;
if (statistic.startsWith(token)) {
matches.add(statistic);
}
}
return matches;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy