Compare commits

...
6 Commits
Author SHA1 Message Date
retrooper 1c0d932c48 Bump up version to 1.8.4;
Deprecated the "async" loading methods in PacketEvents.java
2022-04-27 19:25:59 +02:00
retrooper c43d992619 Removed debugs. 2022-04-27 19:22:32 +02:00
retrooper c2e0fe6b4c More changes to README 2022-04-17 22:49:08 +02:00
retrooper 14a783560c Removed currently deleted pages 2022-04-17 22:42:04 +02:00
retrooper 2767b99479 We now don't discard packets sent by bytebuf packet plugins (for example beta 2.0 version of packetevents) 2022-04-15 22:43:54 +02:00
retrooper 3d7a0d901f WrappedPacketOutBlockChange hopefully now supports 1.18.1+ 2022-03-31 23:05:25 +02:00
8 changed files with 43 additions and 9 deletions

No files matched your search

+1 -5
View File
@@ -3,7 +3,7 @@
[![](https://img.shields.io/badge/License-GPLv3-yellow.svg)](https://github.com/retrooper/packetevents/blob/dev/LICENSE)
[![](https://jitpack.io/v/retrooper/packetevents.svg)](https://jitpack.io/#retrooper/packetevents)
PacketEvents is an open-source Packet API. It has many cross-version packet-wrappers. You can process incoming and outgoing packets on the server. You can even send packets with our packet-wrappers. We are here to save you a ton of time.
PacketEvents is a powerful packet library. Our packet wrappers are efficient and easy to use. We support many protocol versions. (1.8+)
### Resources
* [SpigotMC](https://www.spigotmc.org/resources/packetevents-api.80279/)
@@ -13,10 +13,6 @@ PacketEvents is an open-source Packet API. It has many cross-version packet-wrap
### Setup
[Learn more](https://github.com/retrooper/packetevents/wiki/1.-Setup)
### Contributing/Forking
[Learn more](https://github.com/retrooper/packetevents/wiki/2.-Contributing-and-Forking)\
Our discord server has a role for contributors and forkers.
### Sponsorships
[![](https://www.ej-technologies.com/images/product_banners/jprofiler_small.png)](https://www.ej-technologies.com/products/jprofiler/overview.html)
+2 -2
View File
@@ -53,7 +53,7 @@ repositories {
}
dependencies {
implementation 'org.jetbrains:annotations:22.0.0'
implementation 'org.jetbrains:annotations:23.0.0'
compileOnly 'org.spigotmc:spigot-api:1.17-R0.1-SNAPSHOT'
compileOnly 'com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT'
@@ -66,7 +66,7 @@ dependencies {
}
group = 'io.github.retrooper'
version = '1.8.3'
version = '1.8.4'
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, 3);
private final PEVersion version = new PEVersion(1, 8, 4);
private final EventManager eventManager = new PEEventManager();
private final PlayerUtils playerUtils = new PlayerUtils();
private final ServerUtils serverUtils = new ServerUtils();
@@ -161,10 +161,12 @@ public final class PacketEvents implements Listener, EventManager {
}
}
@Deprecated
public void loadAsyncNewThread() {
new Thread(this::load).start();
}
@Deprecated
public void loadAsync(ExecutorService executorService) {
executorService.execute(this::load);
}
@@ -18,8 +18,14 @@
package io.github.retrooper.packetevents;
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
import io.github.retrooper.packetevents.event.impl.PacketPlayReceiveEvent;
import io.github.retrooper.packetevents.packettype.PacketType;
import io.github.retrooper.packetevents.packetwrappers.play.out.setslot.WrappedPacketOutSetSlot;
import io.github.retrooper.packetevents.settings.PacketEventsSettings;
import io.github.retrooper.packetevents.utils.server.ServerVersion;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
public class PacketEventsPlugin extends JavaPlugin {
@@ -37,6 +43,16 @@ public class PacketEventsPlugin extends JavaPlugin {
@Override
public void onEnable() {
/*PacketEvents.get().getEventManager().registerListener(new PacketListenerAbstract() {
@Override
public void onPacketPlayReceive(PacketPlayReceiveEvent event) {
if (event.getPacketId() == PacketType.Play.Client.USE_ENTITY) {
ItemStack stack = new ItemStack(Material.STICK);
WrappedPacketOutSetSlot setSlot = new WrappedPacketOutSetSlot(0, 2, stack);
PacketEvents.get().getPlayerUtils().sendPacket(event.getPlayer(), setSlot);
}
}
});*/
PacketEvents.get().init();
}
@@ -20,6 +20,7 @@ package io.github.retrooper.packetevents.injector.legacy;
import io.github.retrooper.packetevents.PacketEvents;
import io.github.retrooper.packetevents.processor.PacketProcessorInternal;
import net.minecraft.util.io.netty.buffer.ByteBuf;
import net.minecraft.util.io.netty.channel.ChannelDuplexHandler;
import net.minecraft.util.io.netty.channel.ChannelHandler;
import net.minecraft.util.io.netty.channel.ChannelHandlerContext;
@@ -44,6 +45,11 @@ public class PlayerChannelHandlerLegacy extends ChannelDuplexHandler {
@Override
public void write(final ChannelHandlerContext ctx, Object packet, final ChannelPromise promise) throws Exception {
if (packet instanceof ByteBuf) {
//Ignore bytebufs!
super.write(ctx, packet, promise);
return;
}
PacketProcessorInternal.PacketData data = PacketEvents.get().getInternalPacketProcessor().write(player, ctx.channel(), packet);
if (data.postAction != null) {
promise.addListener(f -> {
@@ -20,6 +20,7 @@ package io.github.retrooper.packetevents.injector.modern;
import io.github.retrooper.packetevents.PacketEvents;
import io.github.retrooper.packetevents.processor.PacketProcessorInternal;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelDuplexHandler;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
@@ -44,6 +45,11 @@ public class PlayerChannelHandlerModern extends ChannelDuplexHandler {
@Override
public void write(final ChannelHandlerContext ctx, Object packet, final ChannelPromise promise) throws Exception {
if (packet instanceof ByteBuf) {
//Ignore bytebufs!
super.write(ctx, packet, promise);
return;
}
PacketProcessorInternal.PacketData data = PacketEvents.get().getInternalPacketProcessor().write(player, ctx.channel(), packet);
if (data.postAction != null) {
promise.addListener(f -> {
@@ -71,7 +71,15 @@ public class WrappedPacketOutBlockChange extends WrappedPacket implements Sendab
@Override
protected void load() {
getNMSBlockMethodCache = Reflection.getMethod(NMSUtils.iBlockDataClass, "getBlock", 0);
if (getNMSBlockMethodCache == null) {
Class<?> blockDataClass = NMSUtils.iBlockDataClass.getSuperclass();
getNMSBlockMethodCache = Reflection.getMethod(blockDataClass, NMSUtils.blockClass, 0);
}
getNMSWorldTypeMethodCache = Reflection.getMethod(NMSUtils.nmsWorldClass, "getType", 0);
if (getNMSWorldTypeMethodCache == null) {
getNMSWorldTypeMethodCache = Reflection.getMethod(NMSUtils.nmsWorldClass,
"getBlockStateIfLoaded", 0);
}
v_1_7_10 = version.isOlderThan(ServerVersion.v_1_8);
v_1_17 = version.isNewerThanOrEquals(ServerVersion.v_1_17);
if (v_1_17) {
+1 -1
View File
@@ -1,5 +1,5 @@
name: packetevents
version: 1.8.3
version: 1.8.4
main: io.github.retrooper.packetevents.PacketEventsPlugin
author: retrooper
softdepend: