Knokko's Custom Items

Knokko's Custom Items

37.4k Downloads

Support minecraft 1.9 to minecraft 1.11

knokko opened this issue ยท 3 comments

commented

Currently, minecraft 1.12 is the oldest minecraft version that we support. However, resourcepack predicates were introduced in minecraft 1.9, so it should be possible to support minecraft 1.9, 1.10, and 1.11 as well. I have received a couple of requests to actually do this.

Currently, the biggest blockage is the crafting system: the plug-in uses a quite dirty trick to overrule the default crafting system using the PrepareItemCraftEvent. Unfortunately, that event is not often fired in minecraft 1.11 and earlier, which breaks the system on those minecraft versions. Perhaps, I could work around it, but this will probably require even more usage of the InventoryClickEvent, which is not so nice...

commented

Since these MC versions are barely used anymore, I won't be adding support for them at all.

commented

It turns out there are more obstacles to support these versions than I initially expected:

Minecraft 1.11.2

  • Doesn't have BlockBreakEvent.setDropItems(boolean) and BlockBreakEvent.isDropItems()
  • Doesn't have EntityPickupItemEvent, but does have PlayerPickupItemEvent (so we would miss proper hopper stacking)

Minecraft 1.10.2

  • All limitations of Minecraft 1.11.2
  • Doesn't have ItemMeta.setUnbreakable(boolean), but there is some kind of work-around: https://www.spigotmc.org/threads/cross-version-itemmeta-setunbreakable.418928/
  • Doesn't have ShulkerBox (so any shulkerbox work-arounds would have to be moved to KnokkoCore)
  • Doesn't have AnvilInventory.getRepairCost(), AnvilInventory.setRepairCost(int), and AnvilInventory.getRenameText()
  • Doesn't have World.spawn(Location, Class, lambda) (would require a minor refactoring)
  • Misses some enchantments (requires some refactorings in CustomItemsEventHandler.getItemEnchantFactor)
  • Misses some damage causes (requires some refactorings in CustomItemsEventHandler.isReducedByArmor)

Minecraft 1.9.4

  • All limitations of Minecraft 1.10.2
  • Doesn't have LivingEntity.getPotionEffect()
  • Doesn't have Entity.setGravity(boolean)

Due to the large number of problems and the small interest in these versions, I am not going to solve this anytime soon.

commented

When adding amounts to custom ingredients, I had to get rid of PrepareItemCraftEvent anyway. That was the only thing preventing me from supporting minecraft 1.11 to 1.9 (as far as I am aware). So I should try to add support for these versions.