EverNife / EverNifeCore

A Minecraft Framework to help the creation of Bukkit/Spigot Minecraft plugins, with several utilities to interact with Forge as well.
11 stars 4 forks source link

WorldGuard Flags not integrating correctly on 1.7.10 with java 21 #5

Closed re7gog closed 3 months ago

re7gog commented 3 months ago

Running crucible on java 21 Core and final restrictor drops errors when trying to get reflective access to worldguard Exacly as in https://github.com/GTNewHorizons/lwjgl3ify?tab=readme-ov-file#javabasejavalangreflect-classes-are-protected-from-reflective-access

Here is error: [[174127] [Server threadINFO] Final.txt

EverNife commented 3 months ago

The problem is, on java 21 the reflection does not work anymore as noted on the mentioned text you sent.

Also the problem of:

Beware, the Java JIT compiler will assume that final fields don't change value at runtime, so the value you write there using Unsafe might not actually be read back by some code. This can lead to inconsistent states, where some methods might see the old value while other ones will see the new value, especially if you change the value down a callchain that already read the value earlier.

Anyway, i implemted it! Tested here on local server and seemed to work! I also have a modified version of the WorldGuard that will work for 'eternity' in case the UNSAFE stop working.

More details of the modified WorldGuard here! https://discord.petrus.dev/ https://discord.com/channels/899151012290498620/1251646424651927683/threads/1251658896183922799

If you want the dev jar for EverNifeCore 2.0.4 just call me on discord, the next release might take some time yet.

EverNife commented 3 months ago

Fixed at cdff4555e66fa93170a22b4f2016805555b0b3a0