3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-12-27 08:30:09 +01:00

Fix PS compatibility on Java 16

Dieser Commit ist enthalten in:
KennyTV 2021-05-15 09:28:18 +02:00
Ursprung 1538ff5201
Commit 4f9f3254be
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 6BE3B555EBC5982B
6 geänderte Dateien mit 11 neuen und 22 gelöschten Zeilen

Datei anzeigen

@ -21,6 +21,8 @@ import com.viaversion.viaversion.ViaVersionPlugin;
import com.viaversion.viaversion.bukkit.handlers.BukkitDecodeHandler; import com.viaversion.viaversion.bukkit.handlers.BukkitDecodeHandler;
import com.viaversion.viaversion.bukkit.handlers.BukkitEncodeHandler; import com.viaversion.viaversion.bukkit.handlers.BukkitEncodeHandler;
import com.viaversion.viaversion.bukkit.util.NMSUtil; import com.viaversion.viaversion.bukkit.util.NMSUtil;
import com.viaversion.viaversion.classgenerator.generated.BasicHandlerConstructor;
import com.viaversion.viaversion.classgenerator.generated.HandlerConstructor;
import javassist.CannotCompileException; import javassist.CannotCompileException;
import javassist.ClassPool; import javassist.ClassPool;
import javassist.CtClass; import javassist.CtClass;
@ -144,7 +146,7 @@ public class ClassGenerator {
} }
} }
} }
return generated.toClass(HandlerConstructor.class.getClassLoader()); return generated.toClass(HandlerConstructor.class);
} catch (NotFoundException e) { } catch (NotFoundException e) {
e.printStackTrace(); e.printStackTrace();
} catch (CannotCompileException e) { } catch (CannotCompileException e) {
@ -153,7 +155,7 @@ public class ClassGenerator {
return null; return null;
} }
private static Class addPSCompatibility(ClassPool pool, Class input, Class superclass) { private static void addPSCompatibility(ClassPool pool, Class input, Class superclass) {
boolean newPS = getOldPSPackage().equals("unknown"); boolean newPS = getOldPSPackage().equals("unknown");
String newName = "com.viaversion.viaversion.classgenerator.generated." + input.getSimpleName(); String newName = "com.viaversion.viaversion.classgenerator.generated." + input.getSimpleName();
@ -193,13 +195,12 @@ public class ClassGenerator {
} }
} }
} }
return generated.toClass(HandlerConstructor.class.getClassLoader()); generated.toClass(HandlerConstructor.class);
} catch (NotFoundException e) { } catch (NotFoundException e) {
e.printStackTrace(); e.printStackTrace();
} catch (CannotCompileException e) { } catch (CannotCompileException e) {
e.printStackTrace(); e.printStackTrace();
} }
return null;
} }
private static Class makePSConnectListener(ClassPool pool, boolean newVersionMethod) { private static Class makePSConnectListener(ClassPool pool, boolean newVersionMethod) {
@ -247,7 +248,7 @@ public class ClassGenerator {
// In any case, remove the packet listener and wrap up. // In any case, remove the packet listener and wrap up.
+ " connection.removePacketListener(this);\n" + " connection.removePacketListener(this);\n"
+ "}", connectListenerClazz)); + "}", connectListenerClazz));
return connectListenerClazz.toClass(HandlerConstructor.class.getClassLoader()); return connectListenerClazz.toClass(HandlerConstructor.class);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

Datei anzeigen

@ -19,7 +19,7 @@ package com.viaversion.viaversion.bukkit.handlers;
import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.bukkit.classgenerator.ClassGenerator; import com.viaversion.viaversion.bukkit.classgenerator.ClassGenerator;
import com.viaversion.viaversion.bukkit.classgenerator.HandlerConstructor; import com.viaversion.viaversion.classgenerator.generated.HandlerConstructor;
import com.viaversion.viaversion.connection.UserConnectionImpl; import com.viaversion.viaversion.connection.UserConnectionImpl;
import com.viaversion.viaversion.protocol.ProtocolPipelineImpl; import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
import io.netty.channel.Channel; import io.netty.channel.Channel;

Datei anzeigen

@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.viaversion.viaversion.bukkit.classgenerator; package com.viaversion.viaversion.classgenerator.generated;
import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.bukkit.handlers.BukkitDecodeHandler; import com.viaversion.viaversion.bukkit.handlers.BukkitDecodeHandler;

Datei anzeigen

@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.viaversion.viaversion.bukkit.classgenerator; package com.viaversion.viaversion.classgenerator.generated;
import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.connection.UserConnection;
import io.netty.handler.codec.ByteToMessageDecoder; import io.netty.handler.codec.ByteToMessageDecoder;

Datei anzeigen

@ -17,9 +17,7 @@
*/ */
package com.viaversion.viaversion.util; package com.viaversion.viaversion.util;
import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -79,17 +77,7 @@ public class ConcurrentList<E> extends ArrayList<E> {
@Override @Override
public Object clone() { public Object clone() {
synchronized (lock) { synchronized (lock) {
try { return super.clone();
ConcurrentList<E> clist = (ConcurrentList<E>) super.clone();
clist.modCount = 0;
Field f = ArrayList.class.getDeclaredField("elementData");
f.setAccessible(true);
f.set(clist, Arrays.copyOf((Object[]) f.get(this), this.size()));
return clist;
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
} }
} }

Datei anzeigen

@ -6,7 +6,7 @@ adventure = "4.7.0"
gson = "2.8.6" gson = "2.8.6"
fastutil = "8.3.1" fastutil = "8.3.1"
openNBT = "2.0-SNAPSHOT" openNBT = "2.0-SNAPSHOT"
javassist = "3.27.0-GA" javassist = "3.28.0-GA"
# Common provided # Common provided
netty = "4.0.20.Final" netty = "4.0.20.Final"