Skip to content

Commit

Permalink
Fix dynamic items not behaving correctly if metada wasn't registered …
Browse files Browse the repository at this point in the history
…in ascending order
  • Loading branch information
bonii-xx committed Nov 9, 2015
1 parent db887e7 commit ebe8798
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/main/java/slimeknights/mantle/item/ItemMetaDynamic.java
Expand Up @@ -48,14 +48,14 @@ public ItemMetaDynamic() {
* @return An itemstack representing the Item-Meta combination.
*/
public ItemStack addMeta(int meta, String name) {
if(meta > MAX) {
if(meta > MAX || isValid(meta)) {
throw new IllegalArgumentException(String
.format("Metadata too high, highest supported value is %d. Meta was %d", MAX, meta));
}
if(meta > maxMeta) {
maxMeta = meta;
setValid(meta);
}
setValid(meta);
names.put(meta, name);
return new ItemStack(this, 1, meta);
}
Expand Down Expand Up @@ -97,8 +97,12 @@ protected boolean isValid(int meta) {

@SideOnly(Side.CLIENT)
public void registerItemModels(final String prefix) {
registerItemModels(prefix, this);
}

@SideOnly(Side.CLIENT)
protected void registerItemModels(final String prefix, final Item item) {
final String resourceId = Loader.instance().activeModContainer().getModId().toLowerCase();
final Item item = this;
names.forEachEntry(new TIntObjectProcedure<String>() {
@Override
public boolean execute(int meta, String name) {
Expand Down

0 comments on commit ebe8798

Please sign in to comment.