MassiveCraft / Factions

https://www.massivecraft.com/factions
245 stars 590 forks source link

Containers not working in 1.13 #1332

Open Dinip opened 5 years ago

Dinip commented 5 years ago

Affected Plugin

Describe your Environment

Steps to Reproduce this Bug

I'm currently running a "vanilla" type server with factions so people can protect their stuff. I now that there is no support for 1.13 but everytings seems do be working except the containers. In 1.12 it blocks people that are not member, leader... from accessing containers (chests...). In 1.13 even setting CHESTS, FURNACES in instance.json "materialsContainer" it does not work. Will it suport 1.13? And how much time it will take?...

tjhorner commented 5 years ago

I can reproduce this issue:

Although, Spigot is telling me I'm 2 versions behind. I will rebuild the server and see if it fixes the issue.

EDIT: Updating to latest Spigot does not fix the issue.

tjhorner commented 5 years ago

Since Factions has an API, I can try to make a plugin that listens for the events that are broken and fills in the broken functionality with actual working functionality for the time being. The last commit being on Jul 1, 2018 doesn't really inspire hope lol

tjhorner commented 5 years ago

Fix below!

While writing the plugin, I noticed that the chest material shows up as LEGACY_CHEST. Turns out that, for some weird reason, it uses the legacy material IDs instead of the new ones, so I added them to the mstore/factions_mconf/instance.json config file:

"materialsContainer": [
  "DISPENSER",
  "CHEST",
  "FURNACE",
  "JUKEBOX",
  "BREWING_STAND",
  "ENCHANTING_TABLE",
  "ANVIL",
  "BEACON",
  "TRAPPED_CHEST",
  "HOPPER",
  "DROPPER",

  "LEGACY_CHEST",
  "LEGACY_FURNACE",
  "LEGACY_BURNING_FURNACE",
  "LEGACY_JUKEBOX",
  "LEGACY_BREWING_STAND",
  "LEGACY_ENCHANTMENT_TABLE",
  "LEGACY_ANVIL",
  "LEGACY_BEACON",
  "LEGACY_TRAPPED_CHEST",
  "LEGACY_HOPPER",
  "LEGACY_DROPPER"
]

It works. I assume that this also affects the other configuration options starting with material. You can update your own config files by looking up your materials' LEGACY counterparts: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html

Edit: here are some other fixed config properties (untested, but probably work):

"materialsEditOnInteract": [
  "NOTE_BLOCK",
  "CAULDRON",

  "LEGACY_NOTE_BLOCK",
  "LEGACY_SOIL",
  "LEGACY_DIODE_BLOCK_OFF",
  "LEGACY_DIODE_BLOCK_ON"
],
"materialsEditTools": [
  "FLINT_AND_STEEL",
  "BUCKET",
  "WATER_BUCKET",
  "LAVA_BUCKET",

  "LEGACY_FIREBALL",
  "LEGACY_FLINT_AND_STEEL",
  "LEGACY_BUCKET",
  "LEGACY_WATER_BUCKET",
  "LEGACY_LAVA_BUCKET"
],
"materialsDoor": [
  "ACACIA_DOOR",
  "SPRUCE_DOOR",
  "BIRCH_DOOR",
  "DARK_OAK_DOOR",
  "IRON_DOOR",
  "JUNGLE_DOOR",

  "ACACIA_TRAPDOOR",
  "SPRUCE_TRAPDOOR",
  "BIRCH_TRAPDOOR",
  "DARK_OAK_TRAPDOOR",
  "IRON_TRAPDOOR",
  "JUNGLE_TRAPDOOR",

  "ACACIA_FENCE_GATE",
  "SPRUCE_FENCE_GATE",
  "BIRCH_FENCE_GATE",
  "DARK_OAK_FENCE_GATE",
  "IRON_FENCE_GATE",
  "JUNGLE_FENCE_GATE",

  "LEGACY_WOODEN_DOOR",
  "LEGACY_TRAP_DOOR",
  "LEGACY_FENCE_GATE"
]