Compare commits

...
4 Commits
7 changed files with 8 additions and 74 deletions

No files matched your search

+1 -1
View File
@@ -66,7 +66,7 @@ dependencies {
}
group = 'io.github.retrooper'
version = '1.8.0'
version = '1.8.2'
description = 'packetevents'
java.sourceCompatibility = JavaVersion.VERSION_1_8
@@ -57,7 +57,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
public final class PacketEvents implements Listener, EventManager {
private static PacketEvents instance;
private static Plugin plugin;
private final PEVersion version = new PEVersion(1, 8, 0);
private final PEVersion version = new PEVersion(1, 8, 2);
private final EventManager eventManager = new PEEventManager();
private final PlayerUtils playerUtils = new PlayerUtils();
private final ServerUtils serverUtils = new ServerUtils();
@@ -39,12 +39,13 @@ public class PEChannelInitializerModern extends ChannelInitializer<Channel> {
public static void postInitChannel(Channel channel) {
if (channel.getClass().equals(NioSocketChannel.class)
|| channel.getClass().equals(EpollSocketChannel.class)) {
|| channel.getClass().equals(EpollSocketChannel.class)) {
PlayerChannelHandlerModern channelHandler = new PlayerChannelHandlerModern();
if (channel.pipeline().get("packet_handler") != null) {
String handlerName = PacketEvents.get().getHandlerName();
if (channel.pipeline().get(handlerName) != null) {
PacketEvents.get().getPlugin().getLogger().warning("[PacketEvents] Attempted to initialize a channel twice!");
//Just ignore this to support latest ProtocolLib snapshots.
//PacketEvents.get().getPlugin().getLogger().warning("[PacketEvents] Attempted to initialize a channel twice!");
} else {
channel.pipeline().addBefore("packet_handler", handlerName, channelHandler);
}
@@ -1,67 +0,0 @@
/*
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
* Copyright (C) 2016-2021 ViaVersion and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package io.github.retrooper.packetevents.injector.modern.early;
import io.github.retrooper.packetevents.PacketEvents;
import io.netty.channel.Channel;
import net.kyori.adventure.key.Key;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class PaperChannelInjector {
public static final boolean PAPER_INJECTION_METHOD = hasPaperInjectionMethod();
private PaperChannelInjector() {
}
public static void setPaperChannelInitializeListener() throws ReflectiveOperationException {
// Call io.papermc.paper.network.ChannelInitializeListenerHolder.addListener(net.kyori.adventure.key.Key, io.papermc.paper.network.ChannelInitializeListener)
// Create an interface proxy of ChannelInitializeListener
Class<?> listenerClass = Class.forName("io.papermc.paper.network.ChannelInitializeListener");
Object channelInitializeListener = Proxy.newProxyInstance(EarlyChannelInjectorModern.class.getClassLoader(), new Class[]{listenerClass}, (proxy, method, args) -> {
if (method.getName().equals("afterInitChannel")) {
PEChannelInitializerModern.postInitChannel((Channel) args[0]);
return null;
}
return method.invoke(proxy, args);
});
Class<?> holderClass = Class.forName("io.papermc.paper.network.ChannelInitializeListenerHolder");
Method addListenerMethod = holderClass.getDeclaredMethod("addListener", Key.class, listenerClass);
Key key = Key.key(PacketEvents.get().getHandlerName().toLowerCase(), "injector");
addListenerMethod.invoke(null, key, channelInitializeListener);
}
public static void removePaperChannelInitializeListener() throws ReflectiveOperationException {
Class<?> holderClass = Class.forName("io.papermc.paper.network.ChannelInitializeListenerHolder");
Method addListenerMethod = holderClass.getDeclaredMethod("removeListener", Key.class);
Key key = Key.key(PacketEvents.get().getHandlerName().toLowerCase(), "injector");
addListenerMethod.invoke(null, key);
}
private static boolean hasPaperInjectionMethod() {
try {
Class.forName("io.papermc.paper.network.ChannelInitializeListener");
return true;
} catch (ReflectiveOperationException e) {
return false;
}
}
}
@@ -38,7 +38,7 @@ public class LowLevelUpdateCheckerLegacy implements LowLevelUpdateChecker {
JsonObject jsonObject = parser.parse(jsonResponse).getAsJsonObject();
String versionName = null;
if (jsonObject != null) {
versionName = jsonObject.get("tag_name").getAsString();
versionName = jsonObject.get("name").getAsString();
}
return versionName;
}
@@ -38,7 +38,7 @@ public class LowLevelUpdateCheckerModern implements LowLevelUpdateChecker {
JsonObject jsonObject = parser.parse(jsonResponse).getAsJsonObject();
String versionName = null;
if (jsonObject != null) {
versionName = jsonObject.get("tag_name").getAsString();
versionName = jsonObject.get("name").getAsString();
}
return versionName;
}
+1 -1
View File
@@ -1,5 +1,5 @@
name: packetevents
version: 1.8.0
version: 1.8.2
main: io.github.retrooper.packetevents.PacketEventsPlugin
author: retrooper
softdepend: