This commit is contained in:
Marcel Konrad
2018-02-17 18:57:33 +01:00
parent 9ba0331404
commit 9552b91665
38 changed files with 549 additions and 297 deletions

View File

@@ -2,6 +2,7 @@ package exopandora.worldhandler.builder.component.abstr;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
import exopandora.worldhandler.builder.component.IBuilderComponent; import exopandora.worldhandler.builder.component.IBuilderComponent;
@@ -12,7 +13,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public abstract class ComponentAttribute implements IBuilderComponent public abstract class ComponentAttribute implements IBuilderComponent
{ {
protected Map<EnumAttributes, Float> attributes = new HashMap<EnumAttributes, Float>(); protected Map<EnumAttributes, Double> attributes = new HashMap<EnumAttributes, Double>();
protected Function<EnumAttributes, Boolean> applyable; protected Function<EnumAttributes, Boolean> applyable;
public ComponentAttribute(Function<EnumAttributes, Boolean> applyable) public ComponentAttribute(Function<EnumAttributes, Boolean> applyable)
@@ -20,13 +21,28 @@ public abstract class ComponentAttribute implements IBuilderComponent
this.applyable = applyable; this.applyable = applyable;
} }
public void set(EnumAttributes attribute, float ammount) public void set(EnumAttributes attribute, double ammount)
{ {
this.attributes.put(attribute, ammount); this.attributes.put(attribute, ammount);
} }
public double getAmmount(EnumAttributes attribute)
{
if(this.attributes.containsKey(attribute))
{
return this.attributes.get(attribute);
}
return 0;
}
public void remove(EnumAttributes attribute) public void remove(EnumAttributes attribute)
{ {
this.attributes.remove(attribute); this.attributes.remove(attribute);
} }
public Set<EnumAttributes> getAttributes()
{
return this.attributes.keySet();
}
} }

View File

@@ -2,6 +2,7 @@ package exopandora.worldhandler.builder.component.abstr;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@@ -169,6 +170,11 @@ public abstract class ComponentPotion implements IBuilderComponent
return false; return false;
} }
public Set<Potion> getPotions()
{
return this.potions.keySet();
}
@Nullable @Nullable
public PotionMetadata get(Potion potion) public PotionMetadata get(Potion potion)
{ {

View File

@@ -28,7 +28,7 @@ public class ComponentAttributeItem extends ComponentAttribute
{ {
NBTTagList attributes = new NBTTagList(); NBTTagList attributes = new NBTTagList();
for(Entry<EnumAttributes, Float> entry : this.attributes.entrySet()) for(Entry<EnumAttributes, Double> entry : this.attributes.entrySet())
{ {
if(this.applyable.apply(entry.getKey()) && entry.getValue() != 0) if(this.applyable.apply(entry.getKey()) && entry.getValue() != 0)
{ {

View File

@@ -27,7 +27,7 @@ public class ComponentAttributeMob extends ComponentAttribute
{ {
NBTTagList attributes = new NBTTagList(); NBTTagList attributes = new NBTTagList();
for(Entry<EnumAttributes, Float> entry : this.attributes.entrySet()) for(Entry<EnumAttributes, Double> entry : this.attributes.entrySet())
{ {
if(this.applyable.apply(entry.getKey()) && entry.getValue() != 0) if(this.applyable.apply(entry.getKey()) && entry.getValue() != 0)
{ {

View File

@@ -2,6 +2,7 @@ package exopandora.worldhandler.builder.component.impl;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@@ -51,11 +52,16 @@ public class ComponentEnchantment implements IBuilderComponent
this.enchantments.put(enchantment, level); this.enchantments.put(enchantment, level);
} }
public int getLevel(Enchantment enchantment) public short getLevel(Enchantment enchantment)
{ {
return this.enchantments.get(enchantment); return this.enchantments.get(enchantment);
} }
public Set<Enchantment> getEnchantments()
{
return this.enchantments.keySet();
}
@Override @Override
public String getTag() public String getTag()
{ {

View File

@@ -1,5 +1,7 @@
package exopandora.worldhandler.builder.impl; package exopandora.worldhandler.builder.impl;
import java.util.Set;
import exopandora.worldhandler.builder.component.impl.ComponentAttributeItem; import exopandora.worldhandler.builder.component.impl.ComponentAttributeItem;
import exopandora.worldhandler.builder.component.impl.ComponentDisplay; import exopandora.worldhandler.builder.component.impl.ComponentDisplay;
import exopandora.worldhandler.builder.component.impl.ComponentEnchantment; import exopandora.worldhandler.builder.component.impl.ComponentEnchantment;
@@ -39,7 +41,17 @@ public class BuilderCustomItem extends BuilderGive
this.enchantment.setLevel(enchantment, level); this.enchantment.setLevel(enchantment, level);
} }
public void setAttribute(EnumAttributes attribute, float ammount) public short getEnchantmentLevel(Enchantment enchantment)
{
return this.enchantment.getLevel(enchantment);
}
public Set<Enchantment> getEnchantments()
{
return this.enchantment.getEnchantments();
}
public void setAttribute(EnumAttributes attribute, double ammount)
{ {
this.attribute.set(attribute, ammount); this.attribute.set(attribute, ammount);
} }
@@ -49,6 +61,16 @@ public class BuilderCustomItem extends BuilderGive
this.attribute.remove(attribute); this.attribute.remove(attribute);
} }
public double getAttributeAmmount(EnumAttributes attribute)
{
return this.attribute.getAmmount(attribute);
}
public Set<EnumAttributes> getAttributes()
{
return this.attribute.getAttributes();
}
public void setName(ColoredString name) public void setName(ColoredString name)
{ {
this.display.setName(name); this.display.setName(name);

View File

@@ -1,5 +1,7 @@
package exopandora.worldhandler.builder.impl; package exopandora.worldhandler.builder.impl;
import java.util.Set;
import exopandora.worldhandler.builder.component.impl.ComponentPotionItem; import exopandora.worldhandler.builder.component.impl.ComponentPotionItem;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
@@ -85,6 +87,11 @@ public class BuilderPotionItem extends BuilderGive
return this.potion.get(potion).getAmbient(); return this.potion.get(potion).getAmbient();
} }
public Set<Potion> getPotions()
{
return this.potion.getPotions();
}
public BuilderPotionItem getBuilderForPotion(Item item) public BuilderPotionItem getBuilderForPotion(Item item)
{ {
return new BuilderPotionItem(item.getRegistryName(), this.getPlayer(), this.potion); return new BuilderPotionItem(item.getRegistryName(), this.getPlayer(), this.potion);

View File

@@ -1,5 +1,6 @@
package exopandora.worldhandler.builder.impl; package exopandora.worldhandler.builder.impl;
import java.util.Set;
import java.util.function.Consumer; import java.util.function.Consumer;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@@ -131,7 +132,7 @@ public class BuilderSummon extends CommandBuilderNBT
return this.getNodeAsCoordinate(3); return this.getNodeAsCoordinate(3);
} }
public void setAttribute(EnumAttributes attribute, float ammount) public void setAttribute(EnumAttributes attribute, double ammount)
{ {
this.attribute.set(attribute, ammount); this.attribute.set(attribute, ammount);
} }
@@ -141,6 +142,16 @@ public class BuilderSummon extends CommandBuilderNBT
this.attribute.remove(attribute); this.attribute.remove(attribute);
} }
public double getAttributeAmmount(EnumAttributes attribute)
{
return this.attribute.getAmmount(attribute);
}
public Set<EnumAttributes> getAttributes()
{
return this.attribute.getAttributes();
}
public void setCustomName(ColoredString name) public void setCustomName(ColoredString name)
{ {
this.customName.setValue(name); this.customName.setValue(name);
@@ -291,7 +302,7 @@ public class BuilderSummon extends CommandBuilderNBT
{ {
this.potion.get(potion).setAmplifier(amplifier); this.potion.get(potion).setAmplifier(amplifier);
} }
public void setSeconds(Potion potion, int seconds) public void setSeconds(Potion potion, int seconds)
{ {
this.potion.get(potion).setSeconds(seconds); this.potion.get(potion).setSeconds(seconds);
@@ -347,6 +358,11 @@ public class BuilderSummon extends CommandBuilderNBT
return this.potion.get(potion).getAmbient(); return this.potion.get(potion).getAmbient();
} }
public Set<Potion> getPotions()
{
return this.potion.getPotions();
}
private NBTBase itemListSerializer(NBTTagList list) private NBTBase itemListSerializer(NBTTagList list)
{ {
for(int x = 0; x < list.tagCount(); x++) for(int x = 0; x < list.tagCount(); x++)

View File

@@ -12,23 +12,20 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public enum EnumAttributes public enum EnumAttributes
{ {
MAX_HEALTH("generic.maxHealth", EnumOperation.ADDITIVE, 0, 100, 0, Applyable.BOTH), MAX_HEALTH("generic.maxHealth", EnumOperation.ADDITIVE, Applyable.BOTH),
FOLLOW_RANGE("generic.followRange", EnumOperation.ADDITIVE, 0, 100, 0, Applyable.MOB), FOLLOW_RANGE("generic.followRange", EnumOperation.ADDITIVE, Applyable.MOB),
KNOCKBACK_RESISTANCE("generic.knockbackResistance", EnumOperation.PERCENTAGE, 0, 100, 0, Applyable.BOTH), KNOCKBACK_RESISTANCE("generic.knockbackResistance", EnumOperation.PERCENTAGE, Applyable.BOTH),
MOVEMENT_SPEED("generic.movementSpeed", EnumOperation.PERCENTAGE, 0, 100, 0, Applyable.BOTH), MOVEMENT_SPEED("generic.movementSpeed", EnumOperation.PERCENTAGE, Applyable.BOTH),
ATTACK_DAMAGE("generic.attackDamage", EnumOperation.ADDITIVE, 0, 100, 0, Applyable.BOTH), ATTACK_DAMAGE("generic.attackDamage", EnumOperation.ADDITIVE, Applyable.BOTH),
ARMOR("generic.armor", EnumOperation.ADDITIVE, 0, 100, 0, Applyable.BOTH), ARMOR("generic.armor", EnumOperation.ADDITIVE, Applyable.BOTH),
ARMOR_TOUGHNESS("generic.armorToughness", EnumOperation.ADDITIVE, 0, 100, 0, Applyable.BOTH), ARMOR_TOUGHNESS("generic.armorToughness", EnumOperation.ADDITIVE, Applyable.BOTH),
ATTACK_SPEED("generic.attackSpeed", EnumOperation.PERCENTAGE, 0, 100, 0, Applyable.BOTH), ATTACK_SPEED("generic.attackSpeed", EnumOperation.PERCENTAGE, Applyable.BOTH),
LUCK("generic.luck", EnumOperation.PERCENTAGE, -100, 100, 0, Applyable.PLAYER), LUCK("generic.luck", EnumOperation.PERCENTAGE, Applyable.PLAYER),
HORSE_JUMP_STRENGTH("horse.jumpStrength", EnumOperation.PERCENTAGE, 0, 100, 0, Applyable.MOB), HORSE_JUMP_STRENGTH("horse.jumpStrength", EnumOperation.PERCENTAGE, Applyable.MOB),
ZOMBIE_SPAWN_REINFORCEMENTS("zombie.spawnReinforcements", EnumOperation.PERCENTAGE, 0, 100, 0, Applyable.MOB); ZOMBIE_SPAWN_REINFORCEMENTS("zombie.spawnReinforcements", EnumOperation.PERCENTAGE, Applyable.MOB);
private String attribute; private String attribute;
private EnumOperation operation; private EnumOperation operation;
private float min;
private float max;
private float start;
private Applyable applyable; private Applyable applyable;
public enum Applyable public enum Applyable
@@ -38,13 +35,10 @@ public enum EnumAttributes
MOB MOB
} }
private EnumAttributes(String attribute, EnumOperation operation, float min, float max, float start, Applyable applyable) private EnumAttributes(String attribute, EnumOperation operation, Applyable applyable)
{ {
this.attribute = attribute; this.attribute = attribute;
this.operation = operation; this.operation = operation;
this.min = min;
this.max = max;
this.start = start;
this.applyable = applyable; this.applyable = applyable;
} }
@@ -68,29 +62,14 @@ public enum EnumAttributes
return this.operation; return this.operation;
} }
public float getMin()
{
return this.min;
}
public float getMax()
{
return this.max;
}
public float getStart()
{
return this.start;
}
public Applyable getApplyable() public Applyable getApplyable()
{ {
return this.applyable; return this.applyable;
} }
public double calculate(Float value) public double calculate(Double value)
{ {
return this.operation.getOperation().apply(value.doubleValue()); return this.operation.getOperation().apply(value);
} }
public enum EnumOperation public enum EnumOperation

View File

@@ -0,0 +1,84 @@
package exopandora.worldhandler.config;
import net.minecraft.client.resources.I18n;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class ConfigSliders
{
private static double MAX_POTION_AMPLIFIER;
private static double MAX_ITEM_ENCHANTENT;
private static double MAX_ITEM_ATTRIBUTES;
private static double MAX_SUMMON_POTION_AMPLIFIER;
private static double MAX_SUMMON_POTION_MINUTES;
private static double MAX_SUMMON_ATTRIBUTES;
private static double MAX_EXPERIENCE;
private static double MAX_PLAYER_POINTS;
public static final String CATEGORY = "sliders";
public static void load(Configuration config)
{
MAX_POTION_AMPLIFIER = config.get(CATEGORY, "max_potion_amplifier", 100D, I18n.format("gui.worldhandler.config.comment.sliders.max_potion_amplifier"), 0D, Byte.MAX_VALUE).setLanguageKey("gui.worldhandler.config.key.sliders.max_potion_amplifier").getDouble();
MAX_ITEM_ENCHANTENT = config.get(CATEGORY, "max_item_enchantment", 100D, I18n.format("gui.worldhandler.config.comment.sliders.max_item_enchantment"), 0D, Integer.MAX_VALUE).setLanguageKey("gui.worldhandler.config.key.sliders.max_item_enchantment").getDouble();
MAX_ITEM_ATTRIBUTES = config.get(CATEGORY, "max_item_attributes", 100D, I18n.format("gui.worldhandler.config.comment.sliders.max_item_attributes"), 0D, Double.MAX_VALUE).setLanguageKey("gui.worldhandler.config.key.sliders.max_item_attributes").getDouble();
MAX_SUMMON_POTION_AMPLIFIER = config.get(CATEGORY, "max_summon_potion_amplifier", 100D, I18n.format("gui.worldhandler.config.comment.sliders.max_summon_potion_amplifier"), 0D, Byte.MAX_VALUE).setLanguageKey("gui.worldhandler.config.key.sliders.max_summon_potion_amplifier").getDouble();
MAX_SUMMON_POTION_MINUTES = config.get(CATEGORY, "max_summon_potion_minutes", 100D, I18n.format("gui.worldhandler.config.comment.sliders.max_summon_potion_minutes"), 0D, 16000).setLanguageKey("gui.worldhandler.config.key.sliders.max_summon_potion_minutes").getDouble();
MAX_SUMMON_ATTRIBUTES = config.get(CATEGORY, "max_summon_attributes", 100D, I18n.format("gui.worldhandler.config.comment.sliders.max_summon_attributes"), 0D, Double.MAX_VALUE).setLanguageKey("gui.worldhandler.config.key.sliders.max_summon_attributes").getDouble();
MAX_EXPERIENCE = config.get(CATEGORY, "max_experience", 100D, I18n.format("gui.worldhandler.config.comment.sliders.max_experience"), 0D, 100000D).setLanguageKey("gui.worldhandler.config.key.sliders.max_experience").getDouble();
MAX_PLAYER_POINTS = config.get(CATEGORY, "max_player_points", 100D, I18n.format("gui.worldhandler.config.comment.sliders.max_player_points"), 0D, 100000D).setLanguageKey("gui.worldhandler.config.key.sliders.max_player_points").getDouble();
if(config.hasChanged())
{
config.save();
}
}
public static double getMaxPotionAmplifier()
{
return MAX_POTION_AMPLIFIER;
}
public static double getMaxItemEnchantment()
{
return MAX_ITEM_ENCHANTENT;
}
public static double getMaxItemAttributes()
{
return MAX_ITEM_ATTRIBUTES;
}
public static double getMaxSummonPotionAmplifier()
{
return MAX_SUMMON_POTION_AMPLIFIER;
}
public static double getMaxSummonPotionMinutes()
{
return MAX_SUMMON_POTION_MINUTES;
}
public static double getMaxSummonAttributes()
{
return MAX_SUMMON_ATTRIBUTES;
}
public static double getMaxExperience()
{
return MAX_EXPERIENCE;
}
public static double getMaxPlayerPoints()
{
return MAX_PLAYER_POINTS;
}
}

View File

@@ -11,6 +11,7 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.util.math.MathHelper;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@@ -26,7 +27,7 @@ public class GuiSlider<T> extends GuiButton
private final Container frame; private final Container frame;
private final ButtonStorage<SliderStorage> storage; private final ButtonStorage<SliderStorage> storage;
public GuiSlider(Content container, Container frame, Object key, int x, int y, int width, int height, String name, float min, float max, float start, ISliderResponder responder) public GuiSlider(Content container, Container frame, Object key, int x, int y, int width, int height, String name, double min, double max, double start, ISliderResponder responder)
{ {
super(Integer.MAX_VALUE, x, y, width, height, null); super(Integer.MAX_VALUE, x, y, width, height, null);
this.frame = frame; this.frame = frame;
@@ -34,35 +35,50 @@ public class GuiSlider<T> extends GuiButton
this.name = name; this.name = name;
this.responder = responder; this.responder = responder;
this.storage = container.getStorage(key); this.storage = container.getStorage(key);
this.initStorage(Math.round(min), Math.round(max), Math.round(start));
if(this.storage.getObject() == null || this.storage.getObject().getMin() != min || this.storage.getObject().getMax() != max)
{
this.storage.setObject(new SliderStorage(min, max, min == max ? 0 : ((start - min) / (max - min))));
}
this.displayString = this.getDisplayString(); this.displayString = this.getDisplayString();
} }
private void setFloat(float value) private void initStorage(double min, double max, double start)
{ {
this.storage.getObject().setFloat(value); if(this.storage.getObject() == null || this.storage.getObject().getMin() != min || this.storage.getObject().getMax() != max)
{
if(this.storage.getObject() == null)
{
if(min == max)
{
this.storage.setObject(new SliderStorage(min, max, 0));
}
else
{
this.storage.setObject(new SliderStorage(min, max, (start - min) / (max - min)));
}
}
else
{
this.storage.setObject(new SliderStorage(min, max, (int) MathHelper.clamp(this.getValue(), min, max)));
}
}
} }
private float getFloat() private void setPosition(double position)
{ {
return this.storage.getObject().getFloat(); this.storage.getObject().setPosition(position);
}
private double getPosition()
{
return this.storage.getObject().getPosition();
} }
private void setValue(int value) private void setValue(int value)
{ {
SliderStorage slider = this.storage.getObject(); this.storage.getObject().setValue(value);
this.storage.getObject().setFloat((value - slider.getMin()) / (slider.getMax() - slider.getMin()));
} }
private int getValue() private int getValue()
{ {
SliderStorage slider = this.storage.getObject(); return this.storage.getObject().getValue();
return (int) (slider.getMin() + (slider.getMax() - slider.getMin()) * this.getFloat());
} }
private String getDisplayString() private String getDisplayString()
@@ -118,7 +134,7 @@ public class GuiSlider<T> extends GuiButton
sliderValue = 1.0F; sliderValue = 1.0F;
} }
this.setFloat(sliderValue); this.setPosition(sliderValue);
this.displayString = this.getDisplayString(); this.displayString = this.getDisplayString();
this.responder.setValue(this.key, this.getValue()); this.responder.setValue(this.key, this.getValue());
} }
@@ -139,8 +155,8 @@ public class GuiSlider<T> extends GuiButton
GlStateManager.enableBlend(); GlStateManager.enableBlend();
GlStateManager.color((float) ConfigSkin.getButtonRed() / 255, (float) ConfigSkin.getButtonGreen() / 255, (float) ConfigSkin.getButtonBlue() / 255, (float) ConfigSkin.getButtonAlpha() / 255); GlStateManager.color((float) ConfigSkin.getButtonRed() / 255, (float) ConfigSkin.getButtonGreen() / 255, (float) ConfigSkin.getButtonBlue() / 255, (float) ConfigSkin.getButtonAlpha() / 255);
this.drawTexturedModalRect(this.x + (int) (this.getFloat() * (float) (this.width - 8)), this.y, 0, 66 + textureXOffset, 4, 20); this.drawTexturedModalRect(this.x + (int) (this.getPosition() * (float) (this.width - 8)), this.y, 0, 66 + textureXOffset, 4, 20);
this.drawTexturedModalRect(this.x + (int) (this.getFloat() * (float) (this.width - 8)) + 4, this.y, 196, 66 + textureXOffset, 4, 20); this.drawTexturedModalRect(this.x + (int) (this.getPosition() * (float) (this.width - 8)) + 4, this.y, 196, 66 + textureXOffset, 4, 20);
GlStateManager.disableBlend(); GlStateManager.disableBlend();
GlStateManager.popMatrix(); GlStateManager.popMatrix();

View File

@@ -6,34 +6,56 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class SliderStorage public class SliderStorage
{ {
private final float min; private final double min;
private final float max; private final double max;
private float value; private double position;
public SliderStorage(float min, float max, float value) public SliderStorage(double min, double max, double position)
{ {
this.min = min; this.min = min;
this.max = max; this.max = max;
this.value = value; this.position = position;
} }
public float getMin() public SliderStorage(double min, double max, int value)
{
this.min = min;
this.max = max;
this.position = this.valueToPosition(value);
}
public double getMin()
{ {
return this.min; return this.min;
} }
public float getMax() public double getMax()
{ {
return this.max; return this.max;
} }
public float getFloat() public double getPosition()
{ {
return this.value; return this.position;
} }
public void setFloat(float value) public void setPosition(double position)
{ {
this.value = value; this.position = position;
}
public int getValue()
{
return (int) (this.min + (this.max - this.min) * this.position);
}
public void setValue(int value)
{
this.position = this.valueToPosition(value);
}
private double valueToPosition(int value)
{
return (value - this.min) / (this.max - this.min);
} }
} }

View File

@@ -6,13 +6,14 @@ import java.util.List;
import exopandora.worldhandler.config.ConfigButcher; import exopandora.worldhandler.config.ConfigButcher;
import exopandora.worldhandler.config.ConfigSettings; import exopandora.worldhandler.config.ConfigSettings;
import exopandora.worldhandler.config.ConfigSkin; import exopandora.worldhandler.config.ConfigSkin;
import exopandora.worldhandler.config.ConfigSliders;
import exopandora.worldhandler.main.Main; import exopandora.worldhandler.main.Main;
import exopandora.worldhandler.main.WorldHandler; import exopandora.worldhandler.main.WorldHandler;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.ConfigCategory;
import net.minecraftforge.common.config.ConfigElement; import net.minecraftforge.common.config.ConfigElement;
import net.minecraftforge.fml.client.config.DummyConfigElement; import net.minecraftforge.fml.client.config.DummyConfigElement.DummyCategoryElement;
import net.minecraftforge.fml.client.config.GuiConfig; import net.minecraftforge.fml.client.config.GuiConfig;
import net.minecraftforge.fml.client.config.IConfigElement; import net.minecraftforge.fml.client.config.IConfigElement;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@@ -45,9 +46,10 @@ public class GuiConfigWorldHandler extends GuiConfig
{ {
List<IConfigElement> list = new ArrayList(); List<IConfigElement> list = new ArrayList();
list.add(new DummyConfigElement.DummyCategoryElement(I18n.format("gui.worldhandler.config.category.settings"), "gui.worldhandler.config", new ConfigElement(WorldHandler.CONFIG.getCategory(ConfigSettings.CATEGORY)).getChildElements())); list.add(new DummyCategoryElement(I18n.format("gui.worldhandler.config.category.settings"), "gui.worldhandler.config", new ConfigElement(WorldHandler.CONFIG.getCategory(ConfigSettings.CATEGORY)).getChildElements()));
list.add(new DummyConfigElement.DummyCategoryElement(I18n.format("gui.worldhandler.config.category.skin"), "gui.worldhandler.config", new ConfigElement(WorldHandler.CONFIG.getCategory(ConfigSkin.CATEGORY)).getChildElements())); list.add(new DummyCategoryElement(I18n.format("gui.worldhandler.config.category.skin"), "gui.worldhandler.config", new ConfigElement(WorldHandler.CONFIG.getCategory(ConfigSkin.CATEGORY)).getChildElements()));
list.add(new DummyConfigElement.DummyCategoryElement(I18n.format("gui.worldhandler.config.category.butcher"), "gui.worldhandler.config", new ConfigElement(WorldHandler.CONFIG.getCategory(ConfigButcher.CATEGORY)).getChildElements())); list.add(new DummyCategoryElement(I18n.format("gui.worldhandler.config.category.butcher"), "gui.worldhandler.config", new ConfigElement(WorldHandler.CONFIG.getCategory(ConfigButcher.CATEGORY)).getChildElements()));
list.add(new DummyCategoryElement(I18n.format("gui.worldhandler.config.category.sliders"), "gui.worldhandler.config", new ConfigElement(WorldHandler.CONFIG.getCategory(ConfigSliders.CATEGORY)).getChildElements()));
return list; return list;
} }

View File

@@ -76,6 +76,7 @@ public class GuiWorldHandlerContainer extends Container
this.tabWidth = (this.bgTextureWidth - this.tabDistanceTotal) / Math.max(this.tabSize, 2); this.tabWidth = (this.bgTextureWidth - this.tabDistanceTotal) / Math.max(this.tabSize, 2);
this.tabHalf = this.tabWidth / 2D; this.tabHalf = this.tabWidth / 2D;
this.tabEpsilon = this.bgTextureWidth - (this.tabDistanceTotal + this.tabHalf * Math.max(this.tabSize, 2) * 2D); this.tabEpsilon = this.bgTextureWidth - (this.tabDistanceTotal + this.tabHalf * Math.max(this.tabSize, 2) * 2D);
this.content.init(this);
} }
@Override @Override

View File

@@ -12,6 +12,11 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public interface IContent public interface IContent
{ {
default void init(Container container)
{
}
default void initGui(Container container, int x, int y) default void initGui(Container container, int x, int y)
{ {

View File

@@ -63,6 +63,12 @@ public class ElementColorMenu extends Element
{ {
string.setColor(storage.getIndex()); string.setColor(storage.getIndex());
} }
@Override
public String getId()
{
return logic.getId();
}
})); }));
container.add(new GuiButtonWorldHandler(this.ids[1], this.x + 118, this.y + 48, 20, 20, (this.string.isItalic() ? ChatFormatting.ITALIC : ChatFormatting.RESET) + "I")); container.add(new GuiButtonWorldHandler(this.ids[1], this.x + 118, this.y + 48, 20, 20, (this.string.isItalic() ? ChatFormatting.ITALIC : ChatFormatting.RESET) + "I"));

View File

@@ -2,6 +2,7 @@ package exopandora.worldhandler.gui.content.element.impl;
import java.util.List; import java.util.List;
import exopandora.worldhandler.config.ConfigSkin;
import exopandora.worldhandler.format.TextFormatting; import exopandora.worldhandler.format.TextFormatting;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.storage.ButtonStorage; import exopandora.worldhandler.gui.button.storage.ButtonStorage;
@@ -132,7 +133,7 @@ public class ElementPageList<T, K> extends Element
@Override @Override
public void draw() public void draw()
{ {
Minecraft.getMinecraft().fontRenderer.drawString((this.storage.getObject() + 1) + "/" + this.getTotalPages(), this.x, this.y - 11, 0x4F4F4F); Minecraft.getMinecraft().fontRenderer.drawString((this.storage.getObject() + 1) + "/" + this.getTotalPages(), this.x, this.y - 11, ConfigSkin.getHeadlineColor());
} }
private int getTotalPages() private int getTotalPages()

View File

@@ -19,4 +19,9 @@ public interface ILogicColorMenu
{ {
return true; return true;
} }
default String getId()
{
return "color";
}
} }

View File

@@ -185,12 +185,6 @@ public class ContentAdvancements extends Content
return I18n.format("gui.worldhandler.tab.player.advancements"); return I18n.format("gui.worldhandler.tab.player.advancements");
} }
@Override
public String[] getHeadline()
{
return new String[] {null, I18n.format("gui.worldhandler.generic.options")};
}
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {

View File

@@ -91,12 +91,6 @@ public class ContentContinue extends ContentChild
this.commandField.drawTextBox(); this.commandField.drawTextBox();
} }
@Override
public String[] getHeadline()
{
return new String[]{I18n.format("gui.worldhandler.continue.question")};
}
@Override @Override
public void keyTyped(Container container, char typedChar, int keyCode) public void keyTyped(Container container, char typedChar, int keyCode)
{ {

View File

@@ -1,6 +1,7 @@
package exopandora.worldhandler.gui.content.impl; package exopandora.worldhandler.gui.content.impl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
@@ -10,6 +11,7 @@ import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderCustomItem; import exopandora.worldhandler.builder.impl.BuilderCustomItem;
import exopandora.worldhandler.builder.impl.abstr.EnumAttributes; import exopandora.worldhandler.builder.impl.abstr.EnumAttributes;
import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable; import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable;
import exopandora.worldhandler.config.ConfigSliders;
import exopandora.worldhandler.gui.button.GuiButtonList; import exopandora.worldhandler.gui.button.GuiButtonList;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.GuiSlider; import exopandora.worldhandler.gui.button.GuiSlider;
@@ -49,24 +51,50 @@ public class ContentCustomItem extends Content
private GuiButtonList colorButton; private GuiButtonList colorButton;
private final List<EnumAttributes> attributes = Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.PLAYER).stream()).collect(Collectors.toList());
@Override @Override
public ICommandBuilder getCommandBuilder() public ICommandBuilder getCommandBuilder()
{ {
return this.builderCutomItem; return this.builderCutomItem;
} }
@Override
public void init(Container container)
{
for(EnumAttributes attribute : this.builderCutomItem.getAttributes())
{
double ammount = this.builderCutomItem.getAttributeAmmount(attribute);
if(ammount > ConfigSliders.getMaxItemAttributes())
{
this.builderCutomItem.setAttribute(attribute, ConfigSliders.getMaxItemAttributes());
}
}
for(Enchantment enchantment : this.builderCutomItem.getEnchantments())
{
short level = this.builderCutomItem.getEnchantmentLevel(enchantment);
if(level > ConfigSliders.getMaxItemEnchantment())
{
this.builderCutomItem.setEnchantment(enchantment, (short) ConfigSliders.getMaxItemEnchantment());
}
}
}
@Override @Override
public void initGui(Container container, int x, int y) public void initGui(Container container, int x, int y)
{ {
this.itemField = new GuiTextFieldTooltip(x + 118, y, 114, 20, I18n.format("gui.worldhandler.items.give_custom_item.start.item_id")); this.itemField = new GuiTextFieldTooltip(x + 118, y, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.item_id"));
this.itemField.setValidator(Predicates.<String>notNull()); this.itemField.setValidator(Predicates.<String>notNull());
this.itemField.setText(this.item); this.itemField.setText(this.item);
this.itemLore1Field = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.items.give_custom_item.start.lore_1")); this.itemLore1Field = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.lore_1"));
this.itemLore1Field.setValidator(Predicates.<String>notNull()); this.itemLore1Field.setValidator(Predicates.<String>notNull());
this.itemLore1Field.setText(this.builderCutomItem.getLore1()); this.itemLore1Field.setText(this.builderCutomItem.getLore1());
this.itemLore2Field = new GuiTextFieldTooltip(x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.items.give_custom_item.start.lore_2")); this.itemLore2Field = new GuiTextFieldTooltip(x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.lore_2"));
this.itemLore2Field.setValidator(Predicates.<String>notNull()); this.itemLore2Field.setValidator(Predicates.<String>notNull());
this.itemLore2Field.setText(this.builderCutomItem.getLore2()); this.itemLore2Field.setText(this.builderCutomItem.getLore2());
@@ -74,7 +102,7 @@ public class ContentCustomItem extends Content
{ {
if(this.startPage == 1) if(this.startPage == 1)
{ {
ElementColorMenu colors = new ElementColorMenu(this, x, y, "gui.worldhandler.items.give_custom_item.start.custom_name", this.builderCutomItem.getName(), new int[] {10, 11, 12, 13, 14, 15}); ElementColorMenu colors = new ElementColorMenu(this, x, y, "gui.worldhandler.items.custom_item.start.custom_name", this.builderCutomItem.getName(), new int[] {10, 11, 12, 13, 14, 15});
container.add(colors); container.add(colors);
} }
} }
@@ -103,7 +131,7 @@ public class ContentCustomItem extends Content
@Override @Override
public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, ResourceLocation value, Container container) public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, ResourceLocation value, Container container)
{ {
container.add(new GuiSlider<ResourceLocation>(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, 0, 100, 0, new SimpleResponder<ResourceLocation>(response -> container.add(new GuiSlider<ResourceLocation>(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, 0, ConfigSliders.getMaxItemEnchantment(), 0, new SimpleResponder<ResourceLocation>(response ->
{ {
builderCutomItem.setEnchantment(Enchantment.REGISTRY.getObject(value), response.shortValue()); builderCutomItem.setEnchantment(Enchantment.REGISTRY.getObject(value), response.shortValue());
}))); })));
@@ -131,7 +159,7 @@ public class ContentCustomItem extends Content
} }
else if(this.selectedPage.equals("attributes")) else if(this.selectedPage.equals("attributes"))
{ {
ElementPageList<EnumAttributes, Object> attributes = new ElementPageList<EnumAttributes, Object>(x + 118, y, Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.PLAYER).stream()).collect(Collectors.toList()), null, 114, 20, 3, this, new int[] {13, 14, 15}, new ILogicPageList<EnumAttributes, Object>() ElementPageList<EnumAttributes, Object> attributes = new ElementPageList<EnumAttributes, Object>(x + 118, y, this.attributes, null, 114, 20, 3, this, new int[] {13, 14, 15}, new ILogicPageList<EnumAttributes, Object>()
{ {
@Override @Override
public String translate(EnumAttributes key) public String translate(EnumAttributes key)
@@ -154,7 +182,7 @@ public class ContentCustomItem extends Content
@Override @Override
public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, EnumAttributes value, Container container) public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, EnumAttributes value, Container container)
{ {
container.add(new GuiSlider<EnumAttributes>(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, value.getMin(), value.getMax(), value.getStart(), new AttributeResponder(response -> container.add(new GuiSlider<EnumAttributes>(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, -ConfigSliders.getMaxItemAttributes(), ConfigSliders.getMaxItemAttributes(), 0, new AttributeResponder(response ->
{ {
builderCutomItem.setAttribute(value, response); builderCutomItem.setAttribute(value, response);
}))); })));
@@ -193,9 +221,9 @@ public class ContentCustomItem extends Content
container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back")));
container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame")));
container.add(button3 = new GuiButtonWorldHandler(3, x, y, 114, 20, I18n.format("gui.worldhandler.items.give_custom_item.start"))); container.add(button3 = new GuiButtonWorldHandler(3, x, y, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start")));
container.add(button4 = new GuiButtonWorldHandler(4, x, y + 24, 114, 20, I18n.format("gui.worldhandler.items.give_custom_item.enchantment"))); container.add(button4 = new GuiButtonWorldHandler(4, x, y + 24, 114, 20, I18n.format("gui.worldhandler.items.custom_item.enchantment")));
container.add(button5 = new GuiButtonWorldHandler(5, x, y + 48, 114, 20, I18n.format("gui.worldhandler.items.give_custom_item.attributes"))); container.add(button5 = new GuiButtonWorldHandler(5, x, y + 48, 114, 20, I18n.format("gui.worldhandler.items.custom_item.attributes")));
if(this.selectedPage.equals("start")) if(this.selectedPage.equals("start"))
{ {
@@ -218,7 +246,7 @@ public class ContentCustomItem extends Content
if(!this.builderCutomItem.needsCommandBlock() && !this.builderCutomItem.getName().isSpecial()) if(!this.builderCutomItem.needsCommandBlock() && !this.builderCutomItem.getName().isSpecial())
{ {
container.add(button6 = new GuiButtonWorldHandler(9, x, y + 72, 114, 20, I18n.format("gui.worldhandler.items.give_custom_item.give_custom_item"))); container.add(button6 = new GuiButtonWorldHandler(9, x, y + 72, 114, 20, I18n.format("gui.worldhandler.items.custom_item.custom_item")));
} }
else else
{ {
@@ -321,28 +349,13 @@ public class ContentCustomItem extends Content
@Override @Override
public String getTitle() public String getTitle()
{ {
return I18n.format("gui.worldhandler.title.items.give_custom_item"); return I18n.format("gui.worldhandler.title.items.custom_item");
} }
@Override @Override
public String getTabTitle() public String getTabTitle()
{ {
return I18n.format("gui.worldhandler.tab.items.give_custom_item"); return I18n.format("gui.worldhandler.tab.items.custom_item");
}
@Override
public String[] getHeadline()
{
String[] headline = new String[2];
headline[0] = I18n.format("gui.worldhandler.generic.browse");
if(this.selectedPage.equals("start"))
{
headline[1] = I18n.format("gui.worldhandler.generic.options");
}
return headline;
} }
@Override @Override

View File

@@ -394,12 +394,6 @@ public class ContentEditBlocks extends Content
return I18n.format("gui.worldhandler.tab.blocks.edit_blocks"); return I18n.format("gui.worldhandler.tab.blocks.edit_blocks");
} }
@Override
public String[] getHeadline()
{
return new String[] {I18n.format("gui.worldhandler.generic.browse"), I18n.format("gui.worldhandler.generic.options")};
}
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {

View File

@@ -2,6 +2,7 @@ package exopandora.worldhandler.gui.content.impl;
import exopandora.worldhandler.builder.ICommandBuilder; import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderExperience; import exopandora.worldhandler.builder.impl.BuilderExperience;
import exopandora.worldhandler.config.ConfigSliders;
import exopandora.worldhandler.gui.button.EnumTooltip; import exopandora.worldhandler.gui.button.EnumTooltip;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.GuiSlider; import exopandora.worldhandler.gui.button.GuiSlider;
@@ -31,19 +32,28 @@ public class ContentExperience extends Content
return this.builderExperience; return this.builderExperience;
} }
@Override
public void init(Container container)
{
if(this.builderExperience.getLevel() > ConfigSliders.getMaxExperience())
{
this.builderExperience.setLevel((int) ConfigSliders.getMaxExperience());
}
}
@Override @Override
public void initButtons(Container container, int x, int y) public void initButtons(Container container, int x, int y)
{ {
container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back")));
container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame")));
container.add(new GuiSlider<String>(this, container, "experience", x + 116 / 2, y, 114, 20, I18n.format("gui.worldhandler.title.player.experience"), 0, 100, 0, new SimpleResponder<String>(value -> container.add(new GuiSlider<String>(this, container, "experience", x + 116 / 2, y, 114, 20, I18n.format("gui.worldhandler.title.player.experience"), 0, ConfigSliders.getMaxExperience(), 0, new SimpleResponder<String>(value ->
{ {
this.builderExperience.setLevel(value); this.builderExperience.setLevel(value);
}))); })));
container.add(addButton = new GuiButtonWorldHandler(3, x + 116 / 2, y + 24, 114, 20, I18n.format("gui.worldhandler.actions.add"))); container.add(this.addButton = new GuiButtonWorldHandler(3, x + 116 / 2, y + 24, 114, 20, I18n.format("gui.worldhandler.actions.add")));
container.add(removeButton = new GuiButtonWorldHandler(4, x + 116 / 2, y + 48, 114, 20, I18n.format("gui.worldhandler.actions.remove"))); container.add(this.removeButton = new GuiButtonWorldHandler(4, x + 116 / 2, y + 48, 114, 20, I18n.format("gui.worldhandler.actions.remove")));
container.add(new GuiButtonWorldHandler(5, x + 116 / 2, y + 72, 114, 20, I18n.format("gui.worldhandler.actions.reset"), I18n.format("gui.worldhandler.actions.set_to_0"), EnumTooltip.TOP_RIGHT)); container.add(new GuiButtonWorldHandler(5, x + 116 / 2, y + 72, 114, 20, I18n.format("gui.worldhandler.actions.reset"), I18n.format("gui.worldhandler.actions.set_to_0"), EnumTooltip.TOP_RIGHT));
boolean enabled = this.builderExperience.getLevel() > 0; boolean enabled = this.builderExperience.getLevel() > 0;

View File

@@ -184,12 +184,6 @@ public class ContentGamerules extends Content
return I18n.format("gui.worldhandler.tab.world.gamerules"); return I18n.format("gui.worldhandler.tab.world.gamerules");
} }
@Override
public String[] getHeadline()
{
return new String[] {null, I18n.format("gui.worldhandler.generic.options")};
}
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {

View File

@@ -306,12 +306,6 @@ public class ContentMultiplayer extends Content
return I18n.format("gui.worldhandler.tab.multiplayer"); return I18n.format("gui.worldhandler.tab.multiplayer");
} }
@Override
public String[] getHeadline()
{
return new String[]{I18n.format("gui.worldhandler.generic.browse"), I18n.format("gui.worldhandler.generic.options")};
}
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {

View File

@@ -38,15 +38,18 @@ public class ContentNoteEditor extends Content
{ {
private final BuilderNoteEditor builderNoteEditor = new BuilderNoteEditor(); private final BuilderNoteEditor builderNoteEditor = new BuilderNoteEditor();
private boolean isActive;
@Override @Override
public ICommandBuilder getCommandBuilder() public ICommandBuilder getCommandBuilder()
{ {
return this.isActive() ? this.builderNoteEditor : null; return this.isActive ? this.builderNoteEditor : null;
} }
@Override @Override
public void initGui(Container container, int x, int y) public void init(Container container)
{ {
this.isActive = BlockHelper.isFocusedBlockEqualTo(Blocks.NOTEBLOCK);
this.builderNoteEditor.setPosition(BlockHelper.getFocusedBlockPos()); this.builderNoteEditor.setPosition(BlockHelper.getFocusedBlockPos());
} }
@@ -56,9 +59,9 @@ public class ContentNoteEditor extends Content
container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back")));
container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame")));
if(this.isActive()) if(this.isActive)
{ {
BlockPos pos = BlockHelper.getFocusedBlockPos(); BlockPos pos = this.builderNoteEditor.getBlockPos();
SoundEvent sound = this.getSoundEvent(pos.down()); SoundEvent sound = this.getSoundEvent(pos.down());
container.add(new GuiButtonKeyboard(4, x - 3 + 15, y, 14, 92, I18n.format("gui.worldhandler.blocks.note_block_editor.g"), Orientation.NORMAL, 0.53F, container, this, pos, sound)); container.add(new GuiButtonKeyboard(4, x - 3 + 15, y, 14, 92, I18n.format("gui.worldhandler.blocks.note_block_editor.g"), Orientation.NORMAL, 0.53F, container, this, pos, sound));
@@ -95,15 +98,6 @@ public class ContentNoteEditor extends Content
} }
} }
@Override
public void updateScreen(Container container)
{
if(!this.isActive())
{
container.initGui();
}
}
@Override @Override
public void actionPerformed(Container container, GuiButton button) public void actionPerformed(Container container, GuiButton button)
{ {
@@ -192,7 +186,7 @@ public class ContentNoteEditor extends Content
@Override @Override
public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks)
{ {
if(this.isActive()) if(this.isActive)
{ {
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("worldhandler:textures/misc/note.png")); Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("worldhandler:textures/misc/note.png"));
@@ -273,11 +267,6 @@ public class ContentNoteEditor extends Content
return SoundEvents.BLOCK_NOTE_HARP; return SoundEvents.BLOCK_NOTE_HARP;
} }
private boolean isActive()
{
return BlockHelper.isFocusedBlockEqualTo(Blocks.NOTEBLOCK);
}
@Override @Override
public Category getCategory() public Category getCategory()
{ {

View File

@@ -218,12 +218,6 @@ public class ContentPlayer extends Content
return I18n.format("gui.worldhandler.tab.player.player"); return I18n.format("gui.worldhandler.tab.player.player");
} }
@Override
public String[] getHeadline()
{
return new String[]{I18n.format("gui.worldhandler.generic.browse")};
}
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {

View File

@@ -6,6 +6,7 @@ import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderMultiCommand; import exopandora.worldhandler.builder.impl.BuilderMultiCommand;
import exopandora.worldhandler.builder.impl.BuilderPotionEffect; import exopandora.worldhandler.builder.impl.BuilderPotionEffect;
import exopandora.worldhandler.builder.impl.BuilderPotionItem; import exopandora.worldhandler.builder.impl.BuilderPotionItem;
import exopandora.worldhandler.config.ConfigSliders;
import exopandora.worldhandler.gui.button.EnumTooltip; import exopandora.worldhandler.gui.button.EnumTooltip;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.GuiSlider; import exopandora.worldhandler.gui.button.GuiSlider;
@@ -37,6 +38,25 @@ public class ContentPotions extends ContentChild
return new BuilderMultiCommand(this.builderPotion, this.builderPotionItem); return new BuilderMultiCommand(this.builderPotion, this.builderPotionItem);
} }
@Override
public void init(Container container)
{
if(this.builderPotion.getAmplifier() > ConfigSliders.getMaxPotionAmplifier())
{
this.builderPotion.setAmplifier((byte) ConfigSliders.getMaxPotionAmplifier());
}
for(Potion potion : this.builderPotionItem.getPotions())
{
byte amplifier = this.builderPotionItem.getAmplifier(potion);
if(amplifier > ConfigSliders.getMaxPotionAmplifier())
{
this.builderPotionItem.setAmplifier(potion, (byte) ConfigSliders.getMaxPotionAmplifier());
}
}
}
@Override @Override
public void initGui(Container container, int x, int y) public void initGui(Container container, int x, int y)
{ {
@@ -113,7 +133,7 @@ public class ContentPotions extends ContentChild
container.add(new GuiButtonWorldHandler(8, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potions.effect.ambient", (this.builderPotionItem.getAmbient(potion) ? I18n.format("gui.worldhandler.generic.on") : I18n.format("gui.worldhandler.generic.off"))))); container.add(new GuiButtonWorldHandler(8, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potions.effect.ambient", (this.builderPotionItem.getAmbient(potion) ? I18n.format("gui.worldhandler.generic.on") : I18n.format("gui.worldhandler.generic.off")))));
container.add(new GuiButtonWorldHandler(9, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potions.effect.particles", (this.builderPotion.getHideParticles() ? I18n.format("gui.worldhandler.generic.off") : I18n.format("gui.worldhandler.generic.on"))))); container.add(new GuiButtonWorldHandler(9, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potions.effect.particles", (this.builderPotion.getHideParticles() ? I18n.format("gui.worldhandler.generic.off") : I18n.format("gui.worldhandler.generic.on")))));
container.add(new GuiSlider<Potion>(this, container, "potions_amplifier" + potion, x + 118, y, 114, 20, I18n.format("gui.worldhandler.potions.effect.amplifier"), 0, 100, 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "potions_amplifier" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potions.effect.amplifier"), 0, ConfigSliders.getMaxPotionAmplifier(), 0, new SimpleResponder<Potion>(value ->
{ {
this.builderPotion.setAmplifier(value.byteValue()); this.builderPotion.setAmplifier(value.byteValue());
this.builderPotionItem.setAmplifier(potion, value.byteValue()); this.builderPotionItem.setAmplifier(potion, value.byteValue());
@@ -123,17 +143,17 @@ public class ContentPotions extends ContentChild
{ {
Potion potion = this.builderPotion.getEffectAsPotion(); Potion potion = this.builderPotion.getEffectAsPotion();
container.add(new GuiSlider<Potion>(this, container, "seconds" + potion, x + 118, y, 114, 20, I18n.format("gui.worldhandler.potion.time.seconds"), 0, 59, 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "seconds" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potion.time.seconds"), 0, 59, 0, new SimpleResponder<Potion>(value ->
{ {
this.builderPotion.setSeconds(value.intValue()); this.builderPotion.setSeconds(value.intValue());
this.builderPotionItem.setSeconds(potion, value.intValue()); this.builderPotionItem.setSeconds(potion, value.intValue());
}))); })));
container.add(new GuiSlider<Potion>(this, container, "minutes" + potion, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, 59, 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "minutes" + potion.getRegistryName(), x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, 59, 0, new SimpleResponder<Potion>(value ->
{ {
this.builderPotion.setMinutes(value.intValue()); this.builderPotion.setMinutes(value.intValue());
this.builderPotionItem.setMinutes(potion, value.intValue()); this.builderPotionItem.setMinutes(potion, value.intValue());
}))); })));
container.add(new GuiSlider<Potion>(this, container, "hours" + potion, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potion.time.hours"), 0, 99, 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "hours" + potion.getRegistryName(), x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potion.time.hours"), 0, 99, 0, new SimpleResponder<Potion>(value ->
{ {
this.builderPotion.setHours(value.intValue()); this.builderPotion.setHours(value.intValue());
this.builderPotionItem.setHours(potion, value.intValue()); this.builderPotionItem.setHours(potion, value.intValue());

View File

@@ -6,6 +6,7 @@ import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderScoreboardPlayers; import exopandora.worldhandler.builder.impl.BuilderScoreboardPlayers;
import exopandora.worldhandler.builder.impl.BuilderScoreboardPlayers.EnumPoints; import exopandora.worldhandler.builder.impl.BuilderScoreboardPlayers.EnumPoints;
import exopandora.worldhandler.builder.impl.BuilderScoreboardPlayers.EnumTag; import exopandora.worldhandler.builder.impl.BuilderScoreboardPlayers.EnumTag;
import exopandora.worldhandler.config.ConfigSliders;
import exopandora.worldhandler.gui.button.EnumTooltip; import exopandora.worldhandler.gui.button.EnumTooltip;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.GuiSlider; import exopandora.worldhandler.gui.button.GuiSlider;
@@ -42,6 +43,15 @@ public class ContentScoreboardPlayers extends ContentScoreboard
return this.builderPlayers; return this.builderPlayers;
} }
@Override
public void init(Container container)
{
if(this.builderPlayers.getPoints() > ConfigSliders.getMaxPlayerPoints())
{
this.builderPlayers.setPoints((int) ConfigSliders.getMaxPlayerPoints());
}
}
@Override @Override
public void initGui(Container container, int x, int y) public void initGui(Container container, int x, int y)
{ {
@@ -78,7 +88,7 @@ public class ContentScoreboardPlayers extends ContentScoreboard
if(this.selectedPlayer.equals("add|set|remove")) if(this.selectedPlayer.equals("add|set|remove"))
{ {
container.add(new GuiSlider<String>(this, container, "points", x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.scoreboard.players.points"), 0, 100, 0, new SimpleResponder<String>(value -> container.add(new GuiSlider<String>(this, container, "points", x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.scoreboard.players.points"), 0, ConfigSliders.getMaxPlayerPoints(), 0, new SimpleResponder<String>(value ->
{ {
this.builderPlayers.setPoints(value); this.builderPlayers.setPoints(value);
}))); })));

View File

@@ -45,19 +45,26 @@ public class ContentSignEditor extends Content
private final BuilderSignEditor builderSignEditor = new BuilderSignEditor(); private final BuilderSignEditor builderSignEditor = new BuilderSignEditor();
private boolean isActive;
@Override @Override
public ICommandBuilder getCommandBuilder() public ICommandBuilder getCommandBuilder()
{ {
return this.isActive() ? this.builderSignEditor : null; return this.isActive ? this.builderSignEditor : null;
}
@Override
public void init(Container container)
{
this.isActive = BlockHelper.isFocusedBlockEqualTo(Blocks.STANDING_SIGN) || BlockHelper.isFocusedBlockEqualTo(Blocks.WALL_SIGN);
this.builderSignEditor.setPosition(BlockHelper.getFocusedBlockPos());
} }
@Override @Override
public void initGui(Container container, int x, int y) public void initGui(Container container, int x, int y)
{ {
if(this.isActive()) if(this.isActive)
{ {
this.builderSignEditor.setPosition(BlockHelper.getFocusedBlockPos());
this.commandField = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.blocks.sign_editor.commmand")); this.commandField = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.blocks.sign_editor.commmand"));
this.commandField.setValidator(Predicates.notNull()); this.commandField.setValidator(Predicates.notNull());
this.commandField.setText(this.builderSignEditor.getCommand(this.selectedLine)); this.commandField.setText(this.builderSignEditor.getCommand(this.selectedLine));
@@ -76,6 +83,12 @@ public class ContentSignEditor extends Content
{ {
return editColor; return editColor;
} }
@Override
public String getId()
{
return "color" + selectedLine;
}
}); });
container.add(colors); container.add(colors);
@@ -93,7 +106,7 @@ public class ContentSignEditor extends Content
container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back")));
container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame")));
if(this.isActive()) if(this.isActive)
{ {
container.add(button3 = new GuiButtonWorldHandler(3, x, y, 114, 20, I18n.format("gui.worldhandler.blocks.sign_editor.text_line_1"))); container.add(button3 = new GuiButtonWorldHandler(3, x, y, 114, 20, I18n.format("gui.worldhandler.blocks.sign_editor.text_line_1")));
container.add(button4 = new GuiButtonWorldHandler(4, x, y + 24, 114, 20, I18n.format("gui.worldhandler.blocks.sign_editor.text_line_2"))); container.add(button4 = new GuiButtonWorldHandler(4, x, y + 24, 114, 20, I18n.format("gui.worldhandler.blocks.sign_editor.text_line_2")));
@@ -117,15 +130,6 @@ public class ContentSignEditor extends Content
} }
} }
@Override
public void updateScreen(Container container)
{
if(!this.isActive())
{
container.initGui();
}
}
@Override @Override
public void actionPerformed(Container container, GuiButton button) public void actionPerformed(Container container, GuiButton button)
{ {
@@ -162,7 +166,7 @@ public class ContentSignEditor extends Content
@Override @Override
public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks)
{ {
if(this.isActive()) if(this.isActive)
{ {
if(!this.editColor) if(!this.editColor)
{ {
@@ -190,15 +194,10 @@ public class ContentSignEditor extends Content
} }
} }
private boolean isActive()
{
return BlockHelper.isFocusedBlockEqualTo(Blocks.STANDING_SIGN) || BlockHelper.isFocusedBlockEqualTo(Blocks.WALL_SIGN);
}
@Override @Override
public void keyTyped(Container container, char charTyped, int keyCode) public void keyTyped(Container container, char charTyped, int keyCode)
{ {
if(this.isActive()) if(this.isActive)
{ {
if(this.commandField.textboxKeyTyped(charTyped, keyCode)) if(this.commandField.textboxKeyTyped(charTyped, keyCode))
{ {
@@ -211,7 +210,7 @@ public class ContentSignEditor extends Content
@Override @Override
public void mouseClicked(int mouseX, int mouseY, int mouseButton) public void mouseClicked(int mouseX, int mouseY, int mouseButton)
{ {
if(this.isActive()) if(this.isActive)
{ {
this.commandField.mouseClicked(mouseX, mouseY, mouseButton); this.commandField.mouseClicked(mouseX, mouseY, mouseButton);
} }
@@ -235,17 +234,6 @@ public class ContentSignEditor extends Content
return I18n.format("gui.worldhandler.tab.blocks.sign_editor"); return I18n.format("gui.worldhandler.tab.blocks.sign_editor");
} }
@Override
public String[] getHeadline()
{
if(BlockHelper.isFocusedBlockEqualTo(Blocks.STANDING_SIGN) || BlockHelper.isFocusedBlockEqualTo(Blocks.WALL_SIGN))
{
return new String[] {I18n.format("gui.worldhandler.generic.browse"), I18n.format("gui.worldhandler.generic.options")};
}
return null;
}
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {

View File

@@ -13,6 +13,7 @@ import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderSummon; import exopandora.worldhandler.builder.impl.BuilderSummon;
import exopandora.worldhandler.builder.impl.abstr.EnumAttributes; import exopandora.worldhandler.builder.impl.abstr.EnumAttributes;
import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable; import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable;
import exopandora.worldhandler.config.ConfigSliders;
import exopandora.worldhandler.gui.button.GuiButtonItem; import exopandora.worldhandler.gui.button.GuiButtonItem;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.GuiSlider; import exopandora.worldhandler.gui.button.GuiSlider;
@@ -57,12 +58,45 @@ public class ContentSummon extends Content
private final BuilderSummon builderSummon = new BuilderSummon(); private final BuilderSummon builderSummon = new BuilderSummon();
private final List<EnumAttributes> attributes = Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.MOB).stream()).collect(Collectors.toList());
@Override @Override
public ICommandBuilder getCommandBuilder() public ICommandBuilder getCommandBuilder()
{ {
return this.builderSummon; return this.builderSummon;
} }
@Override
public void init(Container container)
{
for(EnumAttributes attribute : this.builderSummon.getAttributes())
{
double ammount = this.builderSummon.getAttributeAmmount(attribute);
if(ammount > ConfigSliders.getMaxSummonAttributes())
{
this.builderSummon.setAttribute(attribute, ConfigSliders.getMaxSummonAttributes());
}
}
for(Potion potion : this.builderSummon.getPotions())
{
byte amplifier = this.builderSummon.getAmplifier(potion);
if(amplifier > ConfigSliders.getMaxSummonPotionAmplifier())
{
this.builderSummon.setAmplifier(potion, (byte) ConfigSliders.getMaxSummonPotionAmplifier());
}
int minutes = this.builderSummon.getMinutes(potion);
if(minutes > ConfigSliders.getMaxSummonPotionMinutes())
{
this.builderSummon.setMinutes(potion, (int) ConfigSliders.getMaxSummonPotionMinutes());
}
}
}
@Override @Override
public void initGui(Container container, int x, int y) public void initGui(Container container, int x, int y)
{ {
@@ -82,7 +116,7 @@ public class ContentSummon extends Content
if(this.page.equals("attributes")) if(this.page.equals("attributes"))
{ {
ElementPageList<EnumAttributes, Object> attributes = new ElementPageList<EnumAttributes, Object>(x + 118, y, Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.MOB).stream()).collect(Collectors.toList()), null, 114, 20, 3, this, new int[] {6, 7, 8}, new ILogicPageList<EnumAttributes, Object>() ElementPageList<EnumAttributes, Object> attributes = new ElementPageList<EnumAttributes, Object>(x + 118, y, this.attributes, null, 114, 20, 3, this, new int[] {6, 7, 8}, new ILogicPageList<EnumAttributes, Object>()
{ {
@Override @Override
public String translate(EnumAttributes key) public String translate(EnumAttributes key)
@@ -105,7 +139,7 @@ public class ContentSummon extends Content
@Override @Override
public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, EnumAttributes value, Container container) public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, EnumAttributes value, Container container)
{ {
container.add(new GuiSlider<EnumAttributes>(Contents.SUMMON, container, value, x, y, width, height, display, value.getMin(), value.getMax(), value.getStart(), new AttributeResponder(response -> container.add(new GuiSlider<EnumAttributes>(Contents.SUMMON, container, value, x, y, width, height, display, -ConfigSliders.getMaxSummonAttributes(), ConfigSliders.getMaxSummonAttributes(), 0, new AttributeResponder(response ->
{ {
builderSummon.setAttribute(value, response); builderSummon.setAttribute(value, response);
}))); })));
@@ -208,11 +242,11 @@ public class ContentSummon extends Content
if(count == this.potionPage) if(count == this.potionPage)
{ {
container.add(new GuiSlider<Potion>(this, container, "amplifier" + potion, x + 118, y, 114, 20, I18n.format(potion.getName()), 0, 100, 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "amplifier" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format(potion.getName()), 0, ConfigSliders.getMaxSummonPotionAmplifier(), 0, new SimpleResponder<Potion>(value ->
{ {
this.builderSummon.setAmplifier(potion, value.byteValue()); this.builderSummon.setAmplifier(potion, value.byteValue());
}))); })));
container.add(new GuiSlider<Potion>(this, container, "duration" + potion, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, 100, 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "duration" + potion.getRegistryName(), x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, ConfigSliders.getMaxSummonPotionMinutes(), 0, new SimpleResponder<Potion>(value ->
{ {
this.builderSummon.setMinutes(potion, value); this.builderSummon.setMinutes(potion, value);
}))); })));
@@ -627,8 +661,6 @@ public class ContentSummon extends Content
{ {
String[] headline = new String[2]; String[] headline = new String[2];
headline[0] = I18n.format("gui.worldhandler.generic.browse");
if(this.page.equals("potionEffects")) if(this.page.equals("potionEffects"))
{ {
headline[1] = (this.potionPage + 1) + "/" + (Potion.REGISTRY.getKeys().size() - 2); headline[1] = (this.potionPage + 1) + "/" + (Potion.REGISTRY.getKeys().size() - 2);
@@ -637,10 +669,6 @@ public class ContentSummon extends Content
{ {
headline[1] = (this.equipmentPage + 1) + "/2"; headline[1] = (this.equipmentPage + 1) + "/2";
} }
else if(this.page.equals("main"))
{
headline[1] = I18n.format("gui.worldhandler.generic.options");
}
return headline; return headline;
} }

View File

@@ -219,12 +219,6 @@ public class ContentWorldInfo extends Content
return I18n.format("gui.worldhandler.tab.world.world"); return I18n.format("gui.worldhandler.tab.world.world");
} }
@Override
public String[] getHeadline()
{
return new String[] {I18n.format("gui.worldhandler.generic.browse")};
}
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {

View File

@@ -25,10 +25,4 @@ public abstract class ContentScoreboard extends Content
{ {
return I18n.format("gui.worldhandler.title.scoreboard"); return I18n.format("gui.worldhandler.title.scoreboard");
} }
@Override
public String[] getHeadline()
{
return new String[] {I18n.format("gui.worldhandler.generic.browse"), I18n.format("gui.worldhandler.generic.options")};
}
} }

View File

@@ -17,7 +17,7 @@ public class Main
public static final String MODID = "worldhandler"; public static final String MODID = "worldhandler";
public static final String MC_VERSION = "1.12.2"; public static final String MC_VERSION = "1.12.2";
public static final String MC_COMPATIBLE = "1.12"; public static final String MC_COMPATIBLE = "1.12";
public static final String VERSION = "2.0"; public static final String VERSION = "2.1";
public static final String FULL_VERSION = MC_VERSION + "-" + VERSION; public static final String FULL_VERSION = MC_VERSION + "-" + VERSION;
public static final String NAME_AND_VERSION = NAME + " " + FULL_VERSION; public static final String NAME_AND_VERSION = NAME + " " + FULL_VERSION;
public static final String URL = "https://minecraft.curseforge.com/projects/world-handler-command-gui"; public static final String URL = "https://minecraft.curseforge.com/projects/world-handler-command-gui";
@@ -43,7 +43,7 @@ public class Main
String os = System.getProperty("os.name").toLowerCase(Locale.ENGLISH); String os = System.getProperty("os.name").toLowerCase(Locale.ENGLISH);
String minecraft = ".minecraft"; String minecraft = ".minecraft";
if(os.contains("win") && (System.getenv("APPDATA") != null)) if(os.contains("win") && System.getenv("APPDATA") != null)
{ {
return new File(System.getenv("APPDATA"), minecraft); return new File(System.getenv("APPDATA"), minecraft);
} }

View File

@@ -11,6 +11,7 @@ import exopandora.worldhandler.command.CommandWorldHandler;
import exopandora.worldhandler.config.ConfigButcher; import exopandora.worldhandler.config.ConfigButcher;
import exopandora.worldhandler.config.ConfigSettings; import exopandora.worldhandler.config.ConfigSettings;
import exopandora.worldhandler.config.ConfigSkin; import exopandora.worldhandler.config.ConfigSkin;
import exopandora.worldhandler.config.ConfigSliders;
import exopandora.worldhandler.gui.category.Category; import exopandora.worldhandler.gui.category.Category;
import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.Content;
import exopandora.worldhandler.helper.BlockHelper; import exopandora.worldhandler.helper.BlockHelper;
@@ -66,6 +67,7 @@ public class WorldHandler
ConfigSettings.load(CONFIG); ConfigSettings.load(CONFIG);
ConfigSkin.load(CONFIG); ConfigSkin.load(CONFIG);
ConfigSliders.load(CONFIG);
} }
@EventHandler @EventHandler
@@ -102,6 +104,7 @@ public class WorldHandler
ConfigSettings.load(CONFIG); ConfigSettings.load(CONFIG);
ConfigSkin.load(CONFIG); ConfigSkin.load(CONFIG);
ConfigButcher.load(CONFIG); ConfigButcher.load(CONFIG);
ConfigSliders.load(CONFIG);
updateKeyBindings(); updateKeyBindings();
} }

View File

@@ -3,6 +3,7 @@ gui.worldhandler.config.tooltip=World Handler Einstellungen
gui.worldhandler.config.category.settings=Einstellungen gui.worldhandler.config.category.settings=Einstellungen
gui.worldhandler.config.category.skin=Skin gui.worldhandler.config.category.skin=Skin
gui.worldhandler.config.category.butcher=Metzler gui.worldhandler.config.category.butcher=Metzler
gui.worldhandler.config.category.sliders=Regler
gui.worldhandler.config.key.settings.biome_indicator=Biome Indikator gui.worldhandler.config.key.settings.biome_indicator=Biome Indikator
gui.worldhandler.config.key.settings.command_syntax=Befehlssyntax gui.worldhandler.config.key.settings.command_syntax=Befehlssyntax
@@ -68,6 +69,24 @@ gui.worldhandler.config.comment.skin.button_alpha=Schaltflächen Alpha
gui.worldhandler.config.comment.butcher=Metzeln von %s Aktiviert gui.worldhandler.config.comment.butcher=Metzeln von %s Aktiviert
gui.worldhandler.config.key.sliders.max_potion_amplifier=Max Trank Verstärker
gui.worldhandler.config.key.sliders.max_item_enchantment=Max Item Verzauberung
gui.worldhandler.config.key.sliders.max_item_attributes=Max Item Attribute
gui.worldhandler.config.key.sliders.max_summon_potion_amplifier=Max Trank Verstärker (Beschwören)
gui.worldhandler.config.key.sliders.max_summon_potion_minutes=Max Trank Minuten (Beschwören)
gui.worldhandler.config.key.sliders.max_summon_attributes=Max Attribute (Beschwören)
gui.worldhandler.config.key.sliders.max_experience=Max Erfahrungspunkte
gui.worldhandler.config.key.sliders.max_player_points=Max Spielerpunkte
gui.worldhandler.config.comment.sliders.max_potion_amplifier=Max Trank Verstärker
gui.worldhandler.config.comment.sliders.max_item_enchantment=Max Item Verzauberung
gui.worldhandler.config.comment.sliders.max_item_attributes=Max Item Attribute
gui.worldhandler.config.comment.sliders.max_summon_potion_amplifier=Max Trank Verstärker (Beschwören)
gui.worldhandler.config.comment.sliders.max_summon_potion_minutes=Max Trank Minuten (Beschwören)
gui.worldhandler.config.comment.sliders.max_summon_attributes=Max Attribute (Beschwören)
gui.worldhandler.config.comment.sliders.max_experience=Max Erfahrungspunkte
gui.worldhandler.config.comment.sliders.max_player_points=Max Spielerpunkte
gui.worldhandler.tab.scoreboard.objectives=Objekte gui.worldhandler.tab.scoreboard.objectives=Objekte
gui.worldhandler.tab.scoreboard.teams=Teams gui.worldhandler.tab.scoreboard.teams=Teams
gui.worldhandler.tab.scoreboard.players=Spieler gui.worldhandler.tab.scoreboard.players=Spieler
@@ -85,7 +104,7 @@ gui.worldhandler.tab.blocks.edit_blocks=Blöcke Ändern
gui.worldhandler.tab.blocks.sign_editor=Schilder Ändern gui.worldhandler.tab.blocks.sign_editor=Schilder Ändern
gui.worldhandler.tab.blocks.note_block_editor=Noten Ändern gui.worldhandler.tab.blocks.note_block_editor=Noten Ändern
gui.worldhandler.tab.items.give_custom_item=Item Erstellen gui.worldhandler.tab.items.custom_item=Item Erstellen
gui.worldhandler.tab.items.enchantment=Verzaubern gui.worldhandler.tab.items.enchantment=Verzaubern
gui.worldhandler.tab.containers=Container gui.worldhandler.tab.containers=Container
@@ -93,7 +112,7 @@ gui.worldhandler.tab.multiplayer=Mehrspieler
gui.worldhandler.title.entities.summon=Beschwören gui.worldhandler.title.entities.summon=Beschwören
gui.worldhandler.title.items.give_custom_item=Item Erstellen gui.worldhandler.title.items.custom_item=Item Erstellen
gui.worldhandler.title.items.enchantment=Verzaubern gui.worldhandler.title.items.enchantment=Verzaubern
gui.worldhandler.title.blocks.edit_blocks=Blöcke Ändern gui.worldhandler.title.blocks.edit_blocks=Blöcke Ändern
@@ -124,8 +143,6 @@ gui.worldhandler.advancements.from=Von
gui.worldhandler.advancements.through=Durch gui.worldhandler.advancements.through=Durch
gui.worldhandler.advancements.everything=Alles gui.worldhandler.advancements.everything=Alles
gui.worldhandler.continue.question=Bist du sicher ?
gui.worldhandler.change_world.singleplayer=Einzelspieler Welt gui.worldhandler.change_world.singleplayer=Einzelspieler Welt
gui.worldhandler.change_world.multiplayer=Mehrspieler Server gui.worldhandler.change_world.multiplayer=Mehrspieler Server
@@ -176,15 +193,15 @@ gui.worldhandler.world=Welt
gui.worldhandler.blocks=Blöcke gui.worldhandler.blocks=Blöcke
gui.worldhandler.player=Spieler gui.worldhandler.player=Spieler
gui.worldhandler.items.give_custom_item.start=Start gui.worldhandler.items.custom_item.start=Start
gui.worldhandler.items.give_custom_item.enchantment=Verzauberung gui.worldhandler.items.custom_item.enchantment=Verzauberung
gui.worldhandler.items.give_custom_item.attributes=Attribute gui.worldhandler.items.custom_item.attributes=Attribute
gui.worldhandler.items.give_custom_item.give_custom_item=Gebe Eigenes Item gui.worldhandler.items.custom_item.custom_item=Erstellen
gui.worldhandler.items.give_custom_item.start.item_id=Item ID gui.worldhandler.items.custom_item.start.item_id=Item
gui.worldhandler.items.give_custom_item.start.lore_1=Sage I gui.worldhandler.items.custom_item.start.lore_1=Sage I
gui.worldhandler.items.give_custom_item.start.lore_2=Sage II gui.worldhandler.items.custom_item.start.lore_2=Sage II
gui.worldhandler.items.give_custom_item.start.custom_name=Eigener Name gui.worldhandler.items.custom_item.start.custom_name=Eigener Name
gui.worldhandler.items.enchantment.level=Level gui.worldhandler.items.enchantment.level=Level
gui.worldhandler.items.enchantment.enchant=Verzaubern gui.worldhandler.items.enchantment.enchant=Verzaubern
@@ -385,8 +402,6 @@ gui.worldhandler.shortcuts.tooltip.time.dawn=Sonnenaufgang (%s)
gui.worldhandler.generic.back=Zurück gui.worldhandler.generic.back=Zurück
gui.worldhandler.generic.backToGame=Schließen gui.worldhandler.generic.backToGame=Schließen
gui.worldhandler.generic.browse=Blättern
gui.worldhandler.generic.options=Optionen
gui.worldhandler.generic.on=An gui.worldhandler.generic.on=An
gui.worldhandler.generic.off=Aus gui.worldhandler.generic.off=Aus
gui.worldhandler.generic.yes=Ja gui.worldhandler.generic.yes=Ja

View File

@@ -3,6 +3,7 @@ gui.worldhandler.config.tooltip=World Handler Settings
gui.worldhandler.config.category.settings=Settings gui.worldhandler.config.category.settings=Settings
gui.worldhandler.config.category.skin=Skin gui.worldhandler.config.category.skin=Skin
gui.worldhandler.config.category.butcher=Butcher gui.worldhandler.config.category.butcher=Butcher
gui.worldhandler.config.category.sliders=Sliders
gui.worldhandler.config.key.settings.biome_indicator=Biome Indicator gui.worldhandler.config.key.settings.biome_indicator=Biome Indicator
gui.worldhandler.config.key.settings.command_syntax=Command Syntax gui.worldhandler.config.key.settings.command_syntax=Command Syntax
@@ -20,21 +21,21 @@ gui.worldhandler.config.key.settings.custom_time_sunset=Custom Sunset Ticks
gui.worldhandler.config.key.settings.custom_time_midnight=Custom Midnight Ticks gui.worldhandler.config.key.settings.custom_time_midnight=Custom Midnight Ticks
gui.worldhandler.config.key.settings.block_placing_mode=Block Placing Mode gui.worldhandler.config.key.settings.block_placing_mode=Block Placing Mode
gui.worldhandler.config.comment.settings.biome_indicator=Biome Indicator Enabled gui.worldhandler.config.comment.settings.biome_indicator=Displays a text when you walk into another biome
gui.worldhandler.config.comment.settings.command_syntax=Command Syntax Enabled gui.worldhandler.config.comment.settings.command_syntax=Displays the current command at the bottom
gui.worldhandler.config.comment.settings.shortcuts=Shortcuts Enabled gui.worldhandler.config.comment.settings.shortcuts=Adds a row of buttons at the top for quick access
gui.worldhandler.config.comment.settings.key_shortcuts=Key Shortcuts Enabled gui.worldhandler.config.comment.settings.key_shortcuts=Enables button keys for pos1 and pos2
gui.worldhandler.config.comment.settings.tooltips=Tooltips Enabled gui.worldhandler.config.comment.settings.tooltips=Whether or not to display tooltips
gui.worldhandler.config.comment.settings.watch=Watch Enabled gui.worldhandler.config.comment.settings.watch=Whether or not to display a watch
gui.worldhandler.config.comment.settings.smooth_watch=Smooth Watch Enabled gui.worldhandler.config.comment.settings.smooth_watch=Whether or not the watch pointers move smooth
gui.worldhandler.config.comment.settings.pause_game=Pause Game gui.worldhandler.config.comment.settings.pause_game=Whether or not to pause the game when the gui is opened
gui.worldhandler.config.comment.settings.custom_times=Custom Times Enabled gui.worldhandler.config.comment.settings.custom_times=Whether or not to use the custom times
gui.worldhandler.config.comment.settings.permission_query=Permission Query Enabled gui.worldhandler.config.comment.settings.permission_query=Whether or not the permission query is enabled
gui.worldhandler.config.comment.settings.custom_time_dawn=Ticks When Dawn gui.worldhandler.config.comment.settings.custom_time_dawn=Ticks upon dawn
gui.worldhandler.config.comment.settings.custom_time_noon=Ticks When Noon gui.worldhandler.config.comment.settings.custom_time_noon=Ticks upon noon
gui.worldhandler.config.comment.settings.custom_time_sunset=Ticks When Sunset gui.worldhandler.config.comment.settings.custom_time_sunset=Ticks upon sunset
gui.worldhandler.config.comment.settings.custom_time_midnight=Ticks When Midnight gui.worldhandler.config.comment.settings.custom_time_midnight=Ticks upon midnight
gui.worldhandler.config.comment.settings.block_placing_mode=Block Placing Mode gui.worldhandler.config.comment.settings.block_placing_mode=Block placing mode
gui.worldhandler.config.key.skin.icons=Icon Size gui.worldhandler.config.key.skin.icons=Icon Size
gui.worldhandler.config.key.skin.label_color=Label Color gui.worldhandler.config.key.skin.label_color=Label Color
@@ -51,23 +52,41 @@ gui.worldhandler.config.key.skin.draw_background=Draw Background
gui.worldhandler.config.key.skin.background_alpha=Background Alpha gui.worldhandler.config.key.skin.background_alpha=Background Alpha
gui.worldhandler.config.key.skin.button_alpha=Button Alpha gui.worldhandler.config.key.skin.button_alpha=Button Alpha
gui.worldhandler.config.comment.skin.icons=Size of the Icons gui.worldhandler.config.comment.skin.icons=Size of the icons
gui.worldhandler.config.comment.skin.label_color=Label Color gui.worldhandler.config.comment.skin.label_color=Label color
gui.worldhandler.config.comment.skin.headline_color=Headline Color gui.worldhandler.config.comment.skin.headline_color=Headline color
gui.worldhandler.config.comment.skin.background_red=Background Red gui.worldhandler.config.comment.skin.background_red=Background red
gui.worldhandler.config.comment.skin.background_green=Background Green gui.worldhandler.config.comment.skin.background_green=Background green
gui.worldhandler.config.comment.skin.background_blue=Background Blue gui.worldhandler.config.comment.skin.background_blue=Background blue
gui.worldhandler.config.comment.skin.button_red=Button Red gui.worldhandler.config.comment.skin.button_red=Button red
gui.worldhandler.config.comment.skin.button_green=Button Green gui.worldhandler.config.comment.skin.button_green=Button green
gui.worldhandler.config.comment.skin.button_blue=Button Blue gui.worldhandler.config.comment.skin.button_blue=Button blue
gui.worldhandler.config.comment.skin.textures=Background Texture gui.worldhandler.config.comment.skin.textures=Background texture
gui.worldhandler.config.comment.skin.sharp_tab_edges=Sharp Tab Edges Enabled gui.worldhandler.config.comment.skin.sharp_tab_edges=Disables the background blending
gui.worldhandler.config.comment.skin.draw_background=Background Drawing Enabled gui.worldhandler.config.comment.skin.draw_background=Background drawing enabled
gui.worldhandler.config.comment.skin.background_alpha=Background Alpha gui.worldhandler.config.comment.skin.background_alpha=Background alpha
gui.worldhandler.config.comment.skin.button_alpha=Button Alpha gui.worldhandler.config.comment.skin.button_alpha=Button alpha
gui.worldhandler.config.comment.butcher=Butcher %s Enabled gui.worldhandler.config.comment.butcher=Butcher %s Enabled
gui.worldhandler.config.key.sliders.max_potion_amplifier=Max Potion Amplifier
gui.worldhandler.config.key.sliders.max_item_enchantment=Max Item Enchantment
gui.worldhandler.config.key.sliders.max_item_attributes=Max Item Attribute
gui.worldhandler.config.key.sliders.max_summon_potion_amplifier=Max Summon Potion Amplifier
gui.worldhandler.config.key.sliders.max_summon_potion_minutes=Max Summon Potion Minutes
gui.worldhandler.config.key.sliders.max_summon_attributes=Max Summon Attributes
gui.worldhandler.config.key.sliders.max_experience=Max Experience
gui.worldhandler.config.key.sliders.max_player_points=Max Player Points
gui.worldhandler.config.comment.sliders.max_potion_amplifier=Maximum value for the potion amplifier
gui.worldhandler.config.comment.sliders.max_item_enchantment=Maximum value for an item enchantment
gui.worldhandler.config.comment.sliders.max_item_attributes=Maximum value for an item attribute
gui.worldhandler.config.comment.sliders.max_summon_potion_amplifier=Maximum value for the potion amplifier for summon
gui.worldhandler.config.comment.sliders.max_summon_potion_minutes=Maximum value for the potion duration in minutes for summon
gui.worldhandler.config.comment.sliders.max_summon_attributes=Maximum value for attributes
gui.worldhandler.config.comment.sliders.max_experience=Maximum value for experience
gui.worldhandler.config.comment.sliders.max_player_points=Maximum value for player points
gui.worldhandler.tab.scoreboard.objectives=Objectives gui.worldhandler.tab.scoreboard.objectives=Objectives
gui.worldhandler.tab.scoreboard.teams=Teams gui.worldhandler.tab.scoreboard.teams=Teams
gui.worldhandler.tab.scoreboard.players=Players gui.worldhandler.tab.scoreboard.players=Players
@@ -85,7 +104,7 @@ gui.worldhandler.tab.blocks.edit_blocks=Edit Blocks
gui.worldhandler.tab.blocks.sign_editor=Sign Editor gui.worldhandler.tab.blocks.sign_editor=Sign Editor
gui.worldhandler.tab.blocks.note_block_editor=Note Editor gui.worldhandler.tab.blocks.note_block_editor=Note Editor
gui.worldhandler.tab.items.give_custom_item=Give Custom Item gui.worldhandler.tab.items.custom_item=Custom Item
gui.worldhandler.tab.items.enchantment=Enchantment gui.worldhandler.tab.items.enchantment=Enchantment
gui.worldhandler.tab.containers=Containers gui.worldhandler.tab.containers=Containers
@@ -93,7 +112,7 @@ gui.worldhandler.tab.multiplayer=Multiplayer
gui.worldhandler.title.entities.summon=Summon gui.worldhandler.title.entities.summon=Summon
gui.worldhandler.title.items.give_custom_item=Give Custom Item gui.worldhandler.title.items.custom_item=Custom Item
gui.worldhandler.title.items.enchantment=Enchantment gui.worldhandler.title.items.enchantment=Enchantment
gui.worldhandler.title.blocks.edit_blocks=Edit Blocks gui.worldhandler.title.blocks.edit_blocks=Edit Blocks
@@ -124,8 +143,6 @@ gui.worldhandler.advancements.from=From
gui.worldhandler.advancements.through=Through gui.worldhandler.advancements.through=Through
gui.worldhandler.advancements.everything=Everything gui.worldhandler.advancements.everything=Everything
gui.worldhandler.continue.question=Continue ?
gui.worldhandler.change_world.singleplayer=Singleplayer World gui.worldhandler.change_world.singleplayer=Singleplayer World
gui.worldhandler.change_world.multiplayer=Multiplayer Server gui.worldhandler.change_world.multiplayer=Multiplayer Server
@@ -176,15 +193,15 @@ gui.worldhandler.world=World
gui.worldhandler.blocks=Blocks gui.worldhandler.blocks=Blocks
gui.worldhandler.player=Player gui.worldhandler.player=Player
gui.worldhandler.items.give_custom_item.start=Start gui.worldhandler.items.custom_item.start=Start
gui.worldhandler.items.give_custom_item.enchantment=Enchantment gui.worldhandler.items.custom_item.enchantment=Enchantment
gui.worldhandler.items.give_custom_item.attributes=Attributes gui.worldhandler.items.custom_item.attributes=Attributes
gui.worldhandler.items.give_custom_item.give_custom_item=Give Custom Item gui.worldhandler.items.custom_item.custom_item=Give
gui.worldhandler.items.give_custom_item.start.item_id=Item ID gui.worldhandler.items.custom_item.start.item_id=Item
gui.worldhandler.items.give_custom_item.start.lore_1=Lore I gui.worldhandler.items.custom_item.start.lore_1=Lore I
gui.worldhandler.items.give_custom_item.start.lore_2=Lore II gui.worldhandler.items.custom_item.start.lore_2=Lore II
gui.worldhandler.items.give_custom_item.start.custom_name=Custom Name gui.worldhandler.items.custom_item.start.custom_name=Custom Name
gui.worldhandler.items.enchantment.level=Level gui.worldhandler.items.enchantment.level=Level
gui.worldhandler.items.enchantment.enchant=Enchant gui.worldhandler.items.enchantment.enchant=Enchant
@@ -385,8 +402,6 @@ gui.worldhandler.shortcuts.tooltip.time.dawn=Dawn (%s)
gui.worldhandler.generic.back=Back gui.worldhandler.generic.back=Back
gui.worldhandler.generic.backToGame=Back to Game gui.worldhandler.generic.backToGame=Back to Game
gui.worldhandler.generic.browse=Browse
gui.worldhandler.generic.options=Options
gui.worldhandler.generic.on=On gui.worldhandler.generic.on=On
gui.worldhandler.generic.off=Off gui.worldhandler.generic.off=Off
gui.worldhandler.generic.yes=Yes gui.worldhandler.generic.yes=Yes

View File

@@ -3,6 +3,7 @@ gui.worldhandler.config.tooltip=World Handler 设置
gui.worldhandler.config.category.settings=设置 gui.worldhandler.config.category.settings=设置
gui.worldhandler.config.category.skin=皮肤样式 gui.worldhandler.config.category.skin=皮肤样式
gui.worldhandler.config.category.butcher=屠宰 gui.worldhandler.config.category.butcher=屠宰
gui.worldhandler.config.category.sliders=Sliders
gui.worldhandler.config.key.settings.biome_indicator=生物群系指示器 gui.worldhandler.config.key.settings.biome_indicator=生物群系指示器
gui.worldhandler.config.key.settings.command_syntax=命令句法 gui.worldhandler.config.key.settings.command_syntax=命令句法
@@ -68,6 +69,24 @@ gui.worldhandler.config.comment.skin.button_alpha=按钮 Alpha
gui.worldhandler.config.comment.butcher=屠宰 %s 开启 gui.worldhandler.config.comment.butcher=屠宰 %s 开启
gui.worldhandler.config.key.sliders.max_potion_amplifier=Max Potion Amplifier
gui.worldhandler.config.key.sliders.max_item_enchantment=Max Item Enchantment
gui.worldhandler.config.key.sliders.max_item_attributes=Max Item Attribute
gui.worldhandler.config.key.sliders.max_summon_potion_amplifier=Max Summon Potion Amplifier
gui.worldhandler.config.key.sliders.max_summon_potion_minutes=Max Summon Potion Minutes
gui.worldhandler.config.key.sliders.max_summon_attributes=Max Summon Attributes
gui.worldhandler.config.key.sliders.max_experience=Max Experience
gui.worldhandler.config.key.sliders.max_player_points=Max Player Points
gui.worldhandler.config.comment.sliders.max_potion_amplifier=Max Potion Amplifier
gui.worldhandler.config.comment.sliders.max_item_enchantment=Max Item Enchantment
gui.worldhandler.config.comment.sliders.max_item_attributes=Max Item Attribute
gui.worldhandler.config.comment.sliders.max_summon_potion_amplifier=Max Summon Potion Amplifier
gui.worldhandler.config.comment.sliders.max_summon_potion_minutes=Max Summon Potion Minutes
gui.worldhandler.config.comment.sliders.max_summon_attributes=Max Summon Attributes
gui.worldhandler.config.comment.sliders.max_experience=Max Experience
gui.worldhandler.config.comment.sliders.max_player_points=Max Player Points
gui.worldhandler.tab.scoreboard.objectives=变量 gui.worldhandler.tab.scoreboard.objectives=变量
gui.worldhandler.tab.scoreboard.teams=团队 gui.worldhandler.tab.scoreboard.teams=团队
gui.worldhandler.tab.scoreboard.players=玩家 gui.worldhandler.tab.scoreboard.players=玩家
@@ -85,7 +104,7 @@ gui.worldhandler.tab.blocks.edit_blocks=编辑方块
gui.worldhandler.tab.blocks.sign_editor=告示牌编辑器 gui.worldhandler.tab.blocks.sign_editor=告示牌编辑器
gui.worldhandler.tab.blocks.note_block_editor=音符编辑器 gui.worldhandler.tab.blocks.note_block_editor=音符编辑器
gui.worldhandler.tab.items.give_custom_item=给予自定义物品 gui.worldhandler.tab.items.custom_item=给予自定义物品
gui.worldhandler.tab.items.enchantment=附魔 gui.worldhandler.tab.items.enchantment=附魔
gui.worldhandler.tab.containers=容器 gui.worldhandler.tab.containers=容器
@@ -93,7 +112,7 @@ gui.worldhandler.tab.multiplayer=多人
gui.worldhandler.title.entities.summon=召唤 gui.worldhandler.title.entities.summon=召唤
gui.worldhandler.title.items.give_custom_item=给予自定义物品 gui.worldhandler.title.items.custom_item=给予自定义物品
gui.worldhandler.title.items.enchantment=附魔 gui.worldhandler.title.items.enchantment=附魔
gui.worldhandler.title.blocks.edit_blocks=编辑方块 gui.worldhandler.title.blocks.edit_blocks=编辑方块
@@ -124,8 +143,6 @@ gui.worldhandler.advancements.from=自
gui.worldhandler.advancements.through=经由 gui.worldhandler.advancements.through=经由
gui.worldhandler.advancements.everything=全部 gui.worldhandler.advancements.everything=全部
gui.worldhandler.continue.question=继续?
gui.worldhandler.change_world.singleplayer=单人世界 gui.worldhandler.change_world.singleplayer=单人世界
gui.worldhandler.change_world.multiplayer=多人世界 gui.worldhandler.change_world.multiplayer=多人世界
@@ -176,15 +193,15 @@ gui.worldhandler.world=世界
gui.worldhandler.blocks=方块 gui.worldhandler.blocks=方块
gui.worldhandler.player=玩家 gui.worldhandler.player=玩家
gui.worldhandler.items.give_custom_item.start=首选项 gui.worldhandler.items.custom_item.start=首选项
gui.worldhandler.items.give_custom_item.enchantment=附魔 gui.worldhandler.items.custom_item.enchantment=附魔
gui.worldhandler.items.give_custom_item.attributes=属性 gui.worldhandler.items.custom_item.attributes=属性
gui.worldhandler.items.give_custom_item.give_custom_item=给予自定义物品 gui.worldhandler.items.custom_item.custom_item=给予自定义物品
gui.worldhandler.items.give_custom_item.start.item_id=物品 ID gui.worldhandler.items.custom_item.start.item_id=物品 ID
gui.worldhandler.items.give_custom_item.start.lore_1=描述 I gui.worldhandler.items.custom_item.start.lore_1=描述 I
gui.worldhandler.items.give_custom_item.start.lore_2=描述 II gui.worldhandler.items.custom_item.start.lore_2=描述 II
gui.worldhandler.items.give_custom_item.start.custom_name=自定义名称 gui.worldhandler.items.custom_item.start.custom_name=自定义名称
gui.worldhandler.items.enchantment.level=等级 gui.worldhandler.items.enchantment.level=等级
gui.worldhandler.items.enchantment.enchant=附魔 gui.worldhandler.items.enchantment.enchant=附魔
@@ -385,8 +402,6 @@ gui.worldhandler.shortcuts.tooltip.time.dawn=日出(%s
gui.worldhandler.generic.back=返回 gui.worldhandler.generic.back=返回
gui.worldhandler.generic.backToGame=返回游戏 gui.worldhandler.generic.backToGame=返回游戏
gui.worldhandler.generic.browse=浏览
gui.worldhandler.generic.options=选项
gui.worldhandler.generic.on=开 gui.worldhandler.generic.on=开
gui.worldhandler.generic.off=关 gui.worldhandler.generic.off=关
gui.worldhandler.generic.yes=是 gui.worldhandler.generic.yes=是