Compare commits

..
17 Commits
108 changed files with 1071 additions and 404 deletions

No files matched your search

+5 -5
View File
@@ -10,7 +10,7 @@ Coding help discord server: https://discord.gg/ZWTkg4v
How to use with **Gradle, Maven, sbt and leiningen**.
The lastest stable tested versions are displayed below.
The lastest stable version is displayed below.
[![](https://jitpack.io/v/purplexdev/packetevents.svg)](https://jitpack.io/#purplexdev/packetevents)
@@ -25,7 +25,7 @@ allprojects {
}
dependencies {
implementation 'com.github.purplexdev:packetevents:1.1.5'
implementation 'com.github.purplexdev:packetevents:1.1.9'
}
```
@@ -44,7 +44,7 @@ dependencies {
<dependency>
<groupId>com.github.purplexdev</groupId>
<artifactId>packetevents</artifactId>
<version>1.1.5</version>
<version>1.1.9</version>
</dependency>
</dependencies>
```
@@ -54,14 +54,14 @@ dependencies {
```
resolvers += "jitpack" at "https://jitpack.io"
libraryDependencies += "com.github.purplexdev" % "packetevents" % "1.1.5"
libraryDependencies += "com.github.purplexdev" % "packetevents" % "1.1.9"
```
# leiningen
```
:repositories [["jitpack" "https://jitpack.io"]]
:dependencies [[com.github.purplexdev/packetevents "1.1.5"]]
:dependencies [[com.github.purplexdev/packetevents "1.1.9"]]
```
+2 -2
View File
@@ -6,7 +6,7 @@
<groupId>me.purplex</groupId>
<artifactId>packetevents</artifactId>
<version>1.1.7</version>
<version>1.2</version>
<packaging>jar</packaging>
<name>packetevents</name>
<properties>
@@ -182,7 +182,7 @@
<scope>provided</scope>
</dependency>
<!--Bukkit-->
<!--Spigot API-->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
@@ -1,64 +0,0 @@
package me.purplex.packetevents;
import me.purplex.packetevents.customlistener.injector.PacketInjector;
import me.purplex.packetevents.events.packetevent.ServerTickEvent;
import me.purplex.packetevents.example.TestExample;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.*;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener {
private static Main instance;
private static PacketInjector packetInjector;
@Override
public void onEnable() {
instance = this;
Bukkit.getPluginManager().registerEvents(this, this);
packetInjector = new PacketInjector();
PacketEvents.getPacketManager().registerListener(new TestExample());
Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, new Runnable() {
@Override
public void run() {
long now = System.currentTimeMillis();
PacketEvents.getPacketManager().callEvent(new ServerTickEvent(now));
}
}, 0L, 1L);
}
@Override
public void onDisable() {
/**
* You don't need to unregister all events when the server shutsdown,
* This is just an example
*/
PacketEvents.getPacketManager().unregisterListener(new TestExample());
}
@EventHandler
public void onJoin(PlayerJoinEvent e) {
Bukkit.getScheduler().runTaskAsynchronously(this, new Runnable() {
@Override
public void run() {
packetInjector.injectPlayer(e.getPlayer());
}
});
}
@EventHandler
public void onQuit(PlayerQuitEvent e) {
packetInjector.uninjectPlayer(e.getPlayer());
}
public static Main getInstance() {
return instance;
}
}
@@ -1,20 +1,80 @@
package me.purplex.packetevents;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.packetmanager.PacketManager;
import me.purplex.packetevents.injector.PacketInjector;
import me.purplex.packetevents.packetevent.impl.ServerTickEvent;
import me.purplex.packetevents.packetevent.manager.PacketManager;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class PacketEvents {
private static PacketManager packetManager;
import java.util.concurrent.*;
public class PacketEvents implements Listener {
private static PacketEvents instance;
private static PacketInjector packetInjector = new PacketInjector();
public static ExecutorService executor = Executors.newCachedThreadPool();
private static final PacketManager packetManager = new PacketManager();
public static ServerVersion getServerVersion() {
return ServerVersion.getVersion();
}
private static int asyncRepeatingTask;
private static boolean serverTickEventActive = false;
public static PacketManager getPacketManager() {
if (packetManager == null) {
packetManager = new PacketManager();
}
return packetManager;
}
public static void setup(JavaPlugin plugin, boolean serverTickEventEnabled) {
serverTickEventActive = serverTickEventEnabled;
Bukkit.getPluginManager().registerEvents(getInstance(), plugin);
if (serverTickEventEnabled) {
asyncRepeatingTask = Bukkit.getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() {
@Override
public void run() {
long now = System.currentTimeMillis();
PacketEvents.getPacketManager().callEvent(new ServerTickEvent(now));
}
}, 0L, 1L);
}
}
public static void cleanup(JavaPlugin plugin) {
if (serverTickEventActive) {
Bukkit.getScheduler().cancelTasks(plugin);
}
}
@EventHandler
public void onJoin(PlayerJoinEvent e) {
if (executor == null) {
executor = Executors.newCachedThreadPool();
packetInjector.injectPlayer(e.getPlayer());
System.out.println("Failed to inject " + e.getPlayer().getName() + " asynchronously!");
}
executor.submit(new Runnable() {
@Override
public void run() {
packetInjector.injectPlayer(e.getPlayer());
}
});
}
@EventHandler
public void onQuit(PlayerQuitEvent e) {
packetInjector.uninjectPlayer(e.getPlayer());
}
public static PacketEvents getInstance() {
return instance == null ? instance = new PacketEvents() : instance;
}
}
@@ -1,99 +0,0 @@
package me.purplex.packetevents.customlistener.injector;
import io.netty.channel.*;
import me.purplex.packetevents.PacketEvents;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.events.packetevent.*;
import org.bukkit.entity.Player;
public class PacketInjector {
private final static ServerVersion version = ServerVersion.getVersion();
public void injectPlayer(Player player) {
ChannelDuplexHandler channelDuplexHandler = new ChannelDuplexHandler() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object packet) throws Exception {
String packetName = packet.getClass().getSimpleName();
PacketReceiveEvent e = new PacketReceiveEvent(player, packetName, packet);
PacketEvents.getPacketManager().callEvent(e);
if (e.isCancelled()) {
return;
}
super.channelRead(ctx, packet);
}
@Override
public void write(ChannelHandlerContext ctx, Object packet, ChannelPromise promise) throws Exception {
String packetName = packet.getClass().getSimpleName();
PacketSendEvent e = new PacketSendEvent(player, packetName, packet);
PacketEvents.getPacketManager().callEvent(e);
if (e.isCancelled()) {
return;
}
super.write(ctx, packet, promise);
}
};
Channel channel = getChannel(player);
ChannelPipeline pipeline = channel.pipeline();
pipeline.addBefore("packet_handler", player.getName(), channelDuplexHandler);
}
public void uninjectPlayer(Player player) {
Channel channel = getChannel(player);
channel.eventLoop().submit(() -> {
channel.pipeline().remove(player.getName());
return null;
});
}
public Channel getChannel(Player player) {
Channel channel = null;
if (version == ServerVersion.v_1_8) {
net.minecraft.server.v1_8_R1.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
try {
channel = (Channel) networkManager.getClass().getField("i").get(networkManager);
} catch (IllegalAccessException | NoSuchFieldException e) {
e.printStackTrace();
}
} else if (version == ServerVersion.v_1_8_3) {
net.minecraft.server.v1_8_R2.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.k;
} else if (version == ServerVersion.v_1_8_8) {
net.minecraft.server.v1_8_R3.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else if (version == ServerVersion.v_1_9) {
net.minecraft.server.v1_9_R1.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else if (version == ServerVersion.v_1_9_4) {
net.minecraft.server.v1_9_R2.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else if (version == ServerVersion.v_1_10) {
net.minecraft.server.v1_10_R1.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else if (version == ServerVersion.v_1_11) {
net.minecraft.server.v1_11_R1.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else if (version == ServerVersion.v_1_12) {
net.minecraft.server.v1_12_R1.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else if (version == ServerVersion.v_1_13) {
net.minecraft.server.v1_13_R1.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else if (version == ServerVersion.v_1_13_2) {
net.minecraft.server.v1_13_R2.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else if (version == ServerVersion.v_1_14) {
net.minecraft.server.v1_14_R1.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else if (version == ServerVersion.v_1_15) {
net.minecraft.server.v1_15_R1.NetworkManager networkManager = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer) player).getHandle().playerConnection.networkManager;
channel = networkManager.channel;
} else {
System.err.println("Version unsupported, please contact purplex#0001 and tell him what version your server is running on! Make sure you are using paperspigot or spigot.");
}
return channel;
}
}
@@ -1,22 +0,0 @@
package me.purplex.packetevents.eventmanager;
import me.purplex.packetevents.events.PacketEvent;
import me.purplex.packetevents.events.packetevent.ServerTickEvent;
import me.purplex.packetevents.events.listener.PacketListener;
import me.purplex.packetevents.events.packetevent.PacketReceiveEvent;
import me.purplex.packetevents.events.packetevent.PacketSendEvent;
import java.util.LinkedList;
public interface PacketEventManager {
LinkedList<PacketListener> packetListeners = new LinkedList<>();
void callEvent(PacketEvent e);
void registerListener(PacketListener e);
void unregisterListener(PacketListener e);
void unregisterAllListeners(PacketListener e);
}
@@ -1,4 +0,0 @@
package me.purplex.packetevents.events.listener;
public interface PacketListener {
}
@@ -0,0 +1,60 @@
package me.purplex.packetevents.example;
import me.purplex.packetevents.packetevent.PacketEvent;
import org.bukkit.Location;
import org.bukkit.entity.Player;
/**
* Example packetevent
* Make sure to initiate the super timestamp variable,
* if you want to use the getTimestamp() function
*/
public class CustomMoveEvent extends PacketEvent {
private final Player player;
private Location to, from;
private boolean cancelled;
public CustomMoveEvent(final Player player, final Location to, final Location from) {
this.player = player;
this.to = to;
this.from = from;
this.cancelled = false;
//IMPORTANT to initialize the timestamp variable
this.timestamp = (System.nanoTime() / 1000000);
}
@Override
public long getTimestamp() {
return super.getTimestamp();
}
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}
public boolean isCancelled() {
return this.cancelled;
}
public Player getPlayer() {
return player;
}
public Location getTo() {
return to;
}
public Location getFrom() {
return from;
}
public void setTo(Location loc) {
this.to = loc;
}
public void setFrom(Location loc) {
this.from = from;
}
}
@@ -0,0 +1,29 @@
package me.purplex.packetevents.example;
import me.purplex.packetevents.PacketEvents;
import org.bukkit.plugin.java.JavaPlugin;
public class MainExample extends JavaPlugin {
@Override
public void onEnable() {
/**
* Starts the servertickevent repeating task (if enabled)
* and registers onJoin and onQuit events to inject and uninject players.
*
* First argument is the JavaPlugin instance to register these events and start the task with,
* Second argument enables server tick event
*/
PacketEvents.setup(this, true);
PacketEvents.getPacketManager().registerListener(new TestExample());
}
@Override
public void onDisable() {
/**
* Stops server tick event task if enabled
*/
PacketEvents.cleanup(this);
}
}
@@ -1,26 +1,45 @@
package me.purplex.packetevents.example;
import me.purplex.packetevents.PacketEvents;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.events.packetevent.ServerTickEvent;
import me.purplex.packetevents.events.handler.PacketHandler;
import me.purplex.packetevents.events.listener.PacketListener;
import me.purplex.packetevents.events.packetevent.*;
import me.purplex.packetevents.packetevent.PacketEvent;
import me.purplex.packetevents.packetevent.impl.PacketReceiveEvent;
import me.purplex.packetevents.packetevent.impl.PacketSendEvent;
import me.purplex.packetevents.packetevent.impl.ServerTickEvent;
import me.purplex.packetevents.packetevent.handler.PacketHandler;
import me.purplex.packetevents.packetevent.listener.PacketListener;
import me.purplex.packetevents.packetevent.packet.Packet;
import me.purplex.packetevents.packetwrappers.in.*;
import me.purplex.packetevents.packets.Packet;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
public class TestExample implements PacketListener {
/**
* Implementing PacketListener to listen to packets and packetevents' custom events.
* Implementing org.bukkit.event.Listener to listen to bukkit's events
*/
public class TestExample implements PacketListener, Listener {
/**
* How to register a packet listener?
* <p>
* PacketEvents.getPacketManager().registerPacketListener(new TestExample());
* PacketEvents.getPacketManager().registerListener(new TestExample());
*/
/**
* How to unregister a packet listener?
* PacketEvents.getPacketManager().unregisterListener(new TestExample());
*/
private int tick;
/**
* Only listen to the onPacketReceive
* @param e
*/
@PacketHandler
public void onPacketReceive(PacketReceiveEvent e) {
final Player p = e.getPlayer();
@@ -29,13 +48,14 @@ public class TestExample implements PacketListener {
switch (e.getPacketName()) {
case Packet.Client.USE_ENTITY:
final WrappedPacketPlayInUseEntity useEntity = new WrappedPacketPlayInUseEntity(e.getPacket());
final Entity entity = useEntity.getEntity();
if (useEntity.getEntityUseAction() == EntityUseAction.ATTACK) {
final Entity entity = useEntity.entity;
if (useEntity.action == EntityUseAction.ATTACK) {
final double dist = entity.getLocation().distanceSquared(p.getLocation());
//p.sendMessage("dist: " + dist);
}
break;
case Packet.Client.ABILITIES:
//1.8 packet style
final WrappedPacketPlayInAbilities abilities = new WrappedPacketPlayInAbilities(e.getPacket());
final boolean a = abilities.a;
final boolean b = abilities.b;
@@ -43,11 +63,11 @@ public class TestExample implements PacketListener {
final boolean d = abilities.d;
final float eFloat = abilities.e;
final float fFloat = abilities.f;
//just like the 1.8 NMS classes.
break;
case Packet.Client.BLOCK_DIG:
//Custom PlayerDigType enum
final WrappedPacketPlayInBlockDig blockDig = new WrappedPacketPlayInBlockDig(e.getPacket());
final PlayerDigType type = blockDig.getPlayerDigType();
final PlayerDigType type = blockDig.digType;
break;
case Packet.Client.FLYING:
final WrappedPacketPlayInFlying flying = new WrappedPacketPlayInFlying(e.getPacket());
@@ -66,18 +86,72 @@ public class TestExample implements PacketListener {
new WrappedPacketPlayInFlying.WrappedPacketPlayInPosition_Look(e.getPacket());
final boolean isLook = position_look.hasLook; //true
break;
case Packet.Client.CHAT:
final WrappedPacketPlayInChat chat = new WrappedPacketPlayInChat(e.getPacket());
final String message = chat.message;
//System.out.println("YOU SAID: " + message);
}
}
@PacketHandler
public void onPacketSend(PacketSendEvent e) {
if(e.getPacketName().equals(Packet.Server.KEEP_ALIVE)) {
}
}
@PacketHandler
public void onCustomMove(CustomMoveEvent e) {
}
/**
* Another way to listen to packets
* @param e
*/
@PacketHandler
public void onPacket(PacketEvent e) {
if(e instanceof PacketSendEvent) {
final PacketSendEvent p = (PacketSendEvent)e;
final Player targetPlayer = p.getPlayer();
final Object rawNMSPacket = p.getPacket();
final long timestamp = p.getTimestamp();
}
else if(e instanceof CustomMoveEvent){
final CustomMoveEvent event = (CustomMoveEvent)e;
final Player player = event.getPlayer();
final Location to = event.getTo();
final Location from = event.getFrom();
}
}
/**
* Update the CustomMoveEvent event
* @param e
*/
@EventHandler
public void onMove(PlayerMoveEvent e) {
CustomMoveEvent customMoveEvent = new CustomMoveEvent(e.getPlayer(),e.getTo(), e.getFrom());
e.setCancelled(customMoveEvent.isCancelled());
PacketEvents.getPacketManager().callEvent(customMoveEvent);
if(e.getTo() != customMoveEvent.getTo()) {
e.setTo(customMoveEvent.getTo());
}
if(e.getFrom() != customMoveEvent.getFrom()) {
e.setFrom(customMoveEvent.getFrom());
}
}
/**
* Only listen to server tick (if enabled)
* @param e
*/
@PacketHandler
public void onServerTick(ServerTickEvent e) {
//CALLED EVERY TICK
tick++;
if (tick % 20 == 0) {
/*for (Player p : Bukkit.getOnlinePlayers()) {
p.sendMessage("One second has passed!");
}*/
if (tick++ % 20 == 0) {
//one second passed
}
}
@@ -0,0 +1,106 @@
package me.purplex.packetevents.injector;
import io.netty.channel.*;
import me.purplex.packetevents.PacketEvents;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.injector.channels._1_10.Channel_1_10;
import me.purplex.packetevents.injector.channels._1_11.Channel_1_11;
import me.purplex.packetevents.injector.channels._1_12.Channel_1_12;
import me.purplex.packetevents.injector.channels._1_13.Channel_1_13;
import me.purplex.packetevents.injector.channels._1_13_2.Channel_1_13_2;
import me.purplex.packetevents.injector.channels._1_14.Channel_1_14;
import me.purplex.packetevents.injector.channels._1_15.Channel_1_15;
import me.purplex.packetevents.injector.channels._1_7_10.Channel_1_7_10;
import me.purplex.packetevents.injector.channels._1_8.Channel_1_8;
import me.purplex.packetevents.injector.channels._1_8_3.Channel_1_8_3;
import me.purplex.packetevents.injector.channels._1_8_8.Channel_1_8_8;
import me.purplex.packetevents.injector.channels._1_9.Channel_1_9;
import me.purplex.packetevents.injector.channels._1_9_4.Channel_1_9_4;
import me.purplex.packetevents.packetevent.impl.PacketReceiveEvent;
import me.purplex.packetevents.packetevent.impl.PacketSendEvent;
import org.bukkit.entity.Player;
public class PacketInjector {
private final static ServerVersion version;
static {
version = ServerVersion.getVersion();
}
public void injectPlayer(Player player) {
ChannelDuplexHandler channelDuplexHandler = new ChannelDuplexHandler() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object packet) throws Exception {
String packetName = packet.getClass().getSimpleName();
PacketReceiveEvent e = new PacketReceiveEvent(player, packetName, packet);
PacketEvents.getPacketManager().callEvent(e);
if (e.isCancelled()) {
return;
}
super.channelRead(ctx, packet);
}
@Override
public void write(ChannelHandlerContext ctx, Object packet, ChannelPromise promise) throws Exception {
String packetName = packet.getClass().getSimpleName();
PacketSendEvent e = new PacketSendEvent(player, packetName, packet);
PacketEvents.getPacketManager().callEvent(e);
if (e.isCancelled()) {
return;
}
super.write(ctx, packet, promise);
}
};
Channel channel = getChannel(player);
ChannelPipeline pipeline = channel.pipeline();
pipeline.addBefore("packet_handler", player.getName(), channelDuplexHandler);
}
public void uninjectPlayer(Player player) {
Channel channel = getChannel(player);
channel.eventLoop().submit(new Runnable() {
@Override
public void run() {
channel.pipeline().remove(player.getName());
}
});
}
public Channel getChannel(Player player) {
Channel channel = null;
if (version == ServerVersion.v_1_7_10) {
channel = new Channel_1_7_10().getChannel(player);
} else if (version == ServerVersion.v_1_8) {
channel = new Channel_1_8().getChannel(player);
} else if (version == ServerVersion.v_1_8_3) {
channel = new Channel_1_8_3().getChannel(player);
} else if (version == ServerVersion.v_1_8_8) {
channel = new Channel_1_8_8().getChannel(player);
} else if (version == ServerVersion.v_1_9) {
channel = new Channel_1_9().getChannel(player);
} else if (version == ServerVersion.v_1_9_4) {
channel = new Channel_1_9_4().getChannel(player);
} else if (version == ServerVersion.v_1_10) {
channel = new Channel_1_10().getChannel(player);
} else if (version == ServerVersion.v_1_11) {
channel = new Channel_1_11().getChannel(player);
} else if (version == ServerVersion.v_1_12) {
channel = new Channel_1_12().getChannel(player);
} else if (version == ServerVersion.v_1_13) {
channel = new Channel_1_13().getChannel(player);
} else if (version == ServerVersion.v_1_13_2) {
channel = new Channel_1_13_2().getChannel(player);
} else if (version == ServerVersion.v_1_14) {
channel = new Channel_1_14().getChannel(player);
} else if (version == ServerVersion.v_1_15) {
channel = new Channel_1_15().getChannel(player);
} else {
String err = "Version unsupported, please contact purplex(creator) through his discord server (http://discord.gg/2uZY5A4) and tell him what version your server is running on! Make sure you are using spigot!";
throw new IllegalStateException(err);
}
return channel;
}
}
@@ -0,0 +1,17 @@
package me.purplex.packetevents.injector.channels._1_10;
import io.netty.channel.Channel;
import net.minecraft.server.v1_10_R1.EntityPlayer;
import net.minecraft.server.v1_10_R1.NetworkManager;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_10 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -0,0 +1,17 @@
package me.purplex.packetevents.injector.channels._1_11;
import io.netty.channel.Channel;
import net.minecraft.server.v1_11_R1.EntityPlayer;
import net.minecraft.server.v1_11_R1.NetworkManager;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_11 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -0,0 +1,16 @@
package me.purplex.packetevents.injector.channels._1_12;
import io.netty.channel.Channel;
import net.minecraft.server.v1_12_R1.EntityPlayer;
import net.minecraft.server.v1_12_R1.NetworkManager;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_12 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -0,0 +1,17 @@
package me.purplex.packetevents.injector.channels._1_13;
import io.netty.channel.Channel;
import net.minecraft.server.v1_13_R1.EntityPlayer;
import net.minecraft.server.v1_13_R1.NetworkManager;
import org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_13 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -0,0 +1,16 @@
package me.purplex.packetevents.injector.channels._1_13_2;
import io.netty.channel.Channel;
import net.minecraft.server.v1_13_R2.EntityPlayer;
import net.minecraft.server.v1_13_R2.NetworkManager;
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_13_2 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -0,0 +1,16 @@
package me.purplex.packetevents.injector.channels._1_14;
import io.netty.channel.Channel;
import net.minecraft.server.v1_14_R1.EntityPlayer;
import net.minecraft.server.v1_14_R1.NetworkManager;
import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_14 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -0,0 +1,16 @@
package me.purplex.packetevents.injector.channels._1_15;
import io.netty.channel.Channel;
import net.minecraft.server.v1_15_R1.EntityPlayer;
import net.minecraft.server.v1_15_R1.NetworkManager;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_15 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -0,0 +1,33 @@
package me.purplex.packetevents.injector.channels._1_7_10;
import io.netty.channel.Channel;
import net.minecraft.server.v1_7_R4.EntityPlayer;
import net.minecraft.server.v1_7_R4.NetworkManager;
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
import org.bukkit.entity.Player;
import java.lang.reflect.Field;
public class Channel_1_7_10 {
private static Field field;
static {
try {
field = NetworkManager.class.getDeclaredField("m");
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
field.setAccessible(true);
}
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = null;
try {
channel = (Channel) field.get(networkManager);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return channel;
}
}
@@ -0,0 +1,34 @@
package me.purplex.packetevents.injector.channels._1_8;
import io.netty.channel.Channel;
import net.minecraft.server.v1_8_R1.EntityPlayer;
import net.minecraft.server.v1_8_R1.NetworkManager;
import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import java.lang.reflect.Field;
public class Channel_1_8 {
private static Field field;
static {
try {
field = NetworkManager.class.getDeclaredField("i");
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
field.setAccessible(true);
}
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = null;
try {
channel = (Channel) field.get(networkManager);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return channel;
}
}
@@ -0,0 +1,17 @@
package me.purplex.packetevents.injector.channels._1_8_3;
import io.netty.channel.Channel;
import net.minecraft.server.v1_8_R2.EntityPlayer;
import net.minecraft.server.v1_8_R2.NetworkManager;
import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_8_3 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.k;
return channel;
}
}
@@ -0,0 +1,17 @@
package me.purplex.packetevents.injector.channels._1_8_8;
import io.netty.channel.Channel;
import net.minecraft.server.v1_8_R3.EntityPlayer;
import net.minecraft.server.v1_8_R3.NetworkManager;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_8_8 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -0,0 +1,18 @@
package me.purplex.packetevents.injector.channels._1_9;
import io.netty.channel.Channel;
import net.minecraft.server.v1_9_R1.EntityPlayer;
import net.minecraft.server.v1_9_R1.NetworkManager;
import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_9 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
entityPlayer.playerConnection.networkManager.sendPacket(null);
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -0,0 +1,18 @@
package me.purplex.packetevents.injector.channels._1_9_4;
import io.netty.channel.Channel;
import net.minecraft.server.v1_9_R2.EntityPlayer;
import net.minecraft.server.v1_9_R2.NetworkManager;
import org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Channel_1_9_4 {
public Channel getChannel(Player p) {
EntityPlayer entityPlayer = ((CraftPlayer)p).getHandle();
NetworkManager networkManager = entityPlayer.playerConnection.networkManager;
Channel channel = networkManager.channel;
return channel;
}
}
@@ -1,4 +1,4 @@
package me.purplex.packetevents.events;
package me.purplex.packetevents.packetevent;
import me.purplex.packetevents.enums.ServerVersion;
@@ -1,4 +1,4 @@
package me.purplex.packetevents.events.handler;
package me.purplex.packetevents.packetevent.handler;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -7,6 +7,10 @@ import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
/**
* Just like Bukkit's @EventHandler, but for packets.
* Make sure your class implements the PacketListener interface, and is registered!
*/
public @interface PacketHandler {
@@ -1,9 +1,7 @@
package me.purplex.packetevents.events.packetevent;
package me.purplex.packetevents.packetevent.impl;
import me.purplex.packetevents.PacketEvents;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.events.PacketEvent;
import me.purplex.packetevents.packetevent.PacketEvent;
import org.bukkit.entity.Player;
public class PacketReceiveEvent extends PacketEvent {
@@ -1,8 +1,6 @@
package me.purplex.packetevents.events.packetevent;
package me.purplex.packetevents.packetevent.impl;
import me.purplex.packetevents.PacketEvents;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.events.PacketEvent;
import me.purplex.packetevents.packetevent.PacketEvent;
import org.bukkit.entity.Player;
public class PacketSendEvent extends PacketEvent {
@@ -1,7 +1,7 @@
package me.purplex.packetevents.events.packetevent;
package me.purplex.packetevents.packetevent.impl;
import me.purplex.packetevents.events.PacketEvent;
import me.purplex.packetevents.packetevent.PacketEvent;
public class ServerTickEvent extends PacketEvent {
@@ -0,0 +1,4 @@
package me.purplex.packetevents.packetevent.listener;
public interface PacketListener {
}
@@ -0,0 +1,21 @@
package me.purplex.packetevents.packetevent.manager;
import me.purplex.packetevents.packetevent.PacketEvent;
import me.purplex.packetevents.packetevent.listener.PacketListener;
import me.purplex.packetevents.packetwrappers.api.WrappedPacket;
import org.bukkit.entity.Player;
import java.util.LinkedList;
public interface PacketEventManager {
public LinkedList<PacketListener> packetListeners = new LinkedList<>();
public void callEvent(PacketEvent e);
public void registerListener(PacketListener e);
public void unregisterListener(PacketListener e);
public void unregisterAllListeners(PacketListener e);
//public void sendPacket(Player player, WrappedPacket packet);
}
@@ -0,0 +1,59 @@
package me.purplex.packetevents.packetevent.manager;
import me.purplex.packetevents.packetevent.PacketEvent;
import me.purplex.packetevents.packetevent.impl.ServerTickEvent;
import me.purplex.packetevents.packetevent.manager.PacketEventManager;
import me.purplex.packetevents.packetevent.handler.PacketHandler;
import me.purplex.packetevents.packetevent.listener.PacketListener;
import me.purplex.packetevents.packetevent.impl.PacketReceiveEvent;
import me.purplex.packetevents.packetevent.impl.PacketSendEvent;
import me.purplex.packetevents.packetwrappers.api.WrappedPacket;
import org.bukkit.entity.Player;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class PacketManager implements PacketEventManager {
@Override
public void callEvent(PacketEvent e) {
for (PacketListener listener : this.packetListeners) {
Method[] methods = listener.getClass().getMethods();
for (Method m : methods) {
if (m.isAnnotationPresent(PacketHandler.class)) {
if (m.getParameterTypes()[0].getSimpleName().equals(e.getClass().getSimpleName())) {
try {
m.invoke(listener, e);
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (InvocationTargetException ex) {
ex.printStackTrace();
}
}
}
}
}
}
@Override
public void registerListener(PacketListener e) {
this.packetListeners.add(e);
}
@Override
public void unregisterListener(PacketListener e) {
this.packetListeners.remove(e);
}
@Override
public void unregisterAllListeners(PacketListener e) {
this.packetListeners.clear();
}
/*@Override
public void sendPacket(Player player, WrappedPacket packet) {
}*/
}
@@ -1,4 +1,4 @@
package me.purplex.packetevents.packets;
package me.purplex.packetevents.packetevent.packet;
public abstract class Packet {
public static class Client {
@@ -1,88 +0,0 @@
package me.purplex.packetevents.packetmanager;
import me.purplex.packetevents.events.PacketEvent;
import me.purplex.packetevents.events.packetevent.ServerTickEvent;
import me.purplex.packetevents.eventmanager.PacketEventManager;
import me.purplex.packetevents.events.handler.PacketHandler;
import me.purplex.packetevents.events.listener.PacketListener;
import me.purplex.packetevents.events.packetevent.PacketReceiveEvent;
import me.purplex.packetevents.events.packetevent.PacketSendEvent;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class PacketManager implements PacketEventManager {
@Override
public void callEvent(PacketEvent e) {
for (PacketListener listener : this.packetListeners) {
Method[] methods = listener.getClass().getMethods();
for (Method m : methods) {
if (m.isAnnotationPresent(PacketHandler.class)) {
if(e instanceof PacketReceiveEvent) {
PacketReceiveEvent event = (PacketReceiveEvent)e;
if(m.getParameterTypes()[0].getSimpleName().equals(event.getClass().getSimpleName())) {
try {
m.invoke(listener, event);
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (InvocationTargetException ex) {
ex.printStackTrace();
}
}
}
else if(e instanceof PacketSendEvent) {
PacketSendEvent event = (PacketSendEvent)e;
if(m.getParameterTypes()[0].getSimpleName().equals(event.getClass().getSimpleName())) {
try {
m.invoke(listener, event);
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (InvocationTargetException ex) {
ex.printStackTrace();
}
}
}
else if(e instanceof ServerTickEvent) {
ServerTickEvent event = (ServerTickEvent)e;
if(m.getParameterTypes()[0].getSimpleName().equals(event.getClass().getSimpleName())) {
try {
m.invoke(listener, event);
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (InvocationTargetException ex) {
ex.printStackTrace();
}
}
}
else {
if(m.getParameterTypes()[0].getSimpleName().equals(e.getClass().getSimpleName())) {
try {
m.invoke(listener, e);
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (InvocationTargetException ex) {
ex.printStackTrace();
}
}
}
}
}
}
}
@Override
public void registerListener(PacketListener e) {
this.packetListeners.add(e);
}
@Override
public void unregisterListener(PacketListener e) {
this.packetListeners.remove(e);
}
@Override
public void unregisterAllListeners(PacketListener e) {
this.packetListeners.clear();
}
}
@@ -2,13 +2,9 @@ package me.purplex.packetevents.packetwrappers.api;
import me.purplex.packetevents.enums.ServerVersion;
/**
* All the wrappers are still under development.
* It is a lot of work, I must make 13 wrappers for each packet.
*/
public class WrappedPacket {
protected Object packet;
protected static final ServerVersion version = ServerVersion.getVersion();
protected static ServerVersion version = ServerVersion.getVersion();
public WrappedPacket(Object packet) {
this.packet = packet;
setup();
@@ -0,0 +1,12 @@
package me.purplex.packetevents.packetwrappers.api.sendable;
import org.bukkit.entity.Player;
/**
* Unfinished
*/
public class WrappedServerPacket {
public WrappedServerPacket(Player target) {
}
}
@@ -1,4 +1,4 @@
package me.purplex.packetevents.packetwrappers.api;
package me.purplex.packetevents.packetwrappers.api.version;
import me.purplex.packetevents.enums.ServerVersion;
@@ -3,7 +3,6 @@ package me.purplex.packetevents.packetwrappers.in;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.packetwrappers.api.WrappedPacket;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.in._1_10.WrappedPacketPlayInAbilities_1_10;
import me.purplex.packetevents.packetwrappers.in._1_11.WrappedPacketPlayInAbilities_1_11;
import me.purplex.packetevents.packetwrappers.in._1_12.WrappedPacketPlayInAbilities_1_12;
@@ -19,15 +19,12 @@ import me.purplex.packetevents.packetwrappers.in._1_9_4.WrappedPacketPlayInBlock
public class WrappedPacketPlayInBlockDig extends WrappedPacket {
private PlayerDigType digType;
public PlayerDigType digType;
public WrappedPacketPlayInBlockDig(Object packet) {
super(packet);
}
public PlayerDigType getPlayerDigType() {
return digType;
}
@Override
public void setup() {
@@ -0,0 +1,69 @@
package me.purplex.packetevents.packetwrappers.in;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.packetwrappers.api.WrappedPacket;
import me.purplex.packetevents.packetwrappers.in._1_10.WrappedPacketPlayInChat_1_10;
import me.purplex.packetevents.packetwrappers.in._1_11.WrappedPacketPlayInChat_1_11;
import me.purplex.packetevents.packetwrappers.in._1_12.WrappedPacketPlayInChat_1_12;
import me.purplex.packetevents.packetwrappers.in._1_13.WrappedPacketPlayInChat_1_13;
import me.purplex.packetevents.packetwrappers.in._1_13_2.WrappedPacketPlayInChat_1_13_2;
import me.purplex.packetevents.packetwrappers.in._1_14.WrappedPacketPlayInChat_1_14;
import me.purplex.packetevents.packetwrappers.in._1_15.WrappedPacketPlayInChat_1_15;
import me.purplex.packetevents.packetwrappers.in._1_7_10.WrappedPacketPlayInChat_1_7_10;
import me.purplex.packetevents.packetwrappers.in._1_8.WrappedPacketPlayInChat_1_8;
import me.purplex.packetevents.packetwrappers.in._1_8_3.WrappedPacketPlayInChat_1_8_3;
import me.purplex.packetevents.packetwrappers.in._1_8_8.WrappedPacketPlayInChat_1_8_8;
import me.purplex.packetevents.packetwrappers.in._1_9.WrappedPacketPlayInChat_1_9;
import me.purplex.packetevents.packetwrappers.in._1_9_4.WrappedPacketPlayInChat_1_9_4;
public class WrappedPacketPlayInChat extends WrappedPacket {
public String message;
public WrappedPacketPlayInChat(Object packet) {
super(packet);
}
@Override
protected void setup() {
if(version == ServerVersion.v_1_7_10) {
WrappedPacketPlayInChat_1_7_10 p = new WrappedPacketPlayInChat_1_7_10(this.packet);
this.message = p.message;
}
else if (version == ServerVersion.v_1_8) {
WrappedPacketPlayInChat_1_8 p = new WrappedPacketPlayInChat_1_8(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_8_3) {
WrappedPacketPlayInChat_1_8_3 p = new WrappedPacketPlayInChat_1_8_3(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_8_8) {
WrappedPacketPlayInChat_1_8_8 p = new WrappedPacketPlayInChat_1_8_8(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_9) {
WrappedPacketPlayInChat_1_9 p = new WrappedPacketPlayInChat_1_9(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_9_4) {
WrappedPacketPlayInChat_1_9_4 p = new WrappedPacketPlayInChat_1_9_4(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_10) {
WrappedPacketPlayInChat_1_10 p = new WrappedPacketPlayInChat_1_10(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_11) {
WrappedPacketPlayInChat_1_11 p = new WrappedPacketPlayInChat_1_11(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_12) {
WrappedPacketPlayInChat_1_12 p = new WrappedPacketPlayInChat_1_12(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_13) {
WrappedPacketPlayInChat_1_13 p = new WrappedPacketPlayInChat_1_13(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_13_2) {
WrappedPacketPlayInChat_1_13_2 p = new WrappedPacketPlayInChat_1_13_2(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_14) {
WrappedPacketPlayInChat_1_14 p = new WrappedPacketPlayInChat_1_14(packet);
this.message = p.message;
} else if (version == ServerVersion.v_1_15) {
WrappedPacketPlayInChat_1_15 p = new WrappedPacketPlayInChat_1_15(packet);
this.message = p.message;
}
}
}
@@ -17,23 +17,17 @@ import me.purplex.packetevents.packetwrappers.in._1_8_8.WrappedPacketPlayInUseEn
import me.purplex.packetevents.packetwrappers.in._1_9.WrappedPacketPlayInUseEntity_1_9;
import me.purplex.packetevents.packetwrappers.in._1_9_4.WrappedPacketPlayInUseEntity_1_9_4;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
public class WrappedPacketPlayInUseEntity extends WrappedPacket {
private Entity entity;
private EntityUseAction action;
public Entity entity;
public EntityUseAction action;
public WrappedPacketPlayInUseEntity(Object packet) {
super(packet);
}
public Entity getEntity() {
return entity;
}
public EntityUseAction getEntityUseAction() {
return action;
}
@Override
protected void setup() {
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_10;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_10_R1.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_10;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_10_R1.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_10 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_10;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_10_R1.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_10 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_10(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.a();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_10;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_10_R1.PacketPlayInFlying;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_10;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_10_R1.Entity;
import net.minecraft.server.v1_10_R1.PacketPlayInUseEntity;
import net.minecraft.server.v1_10_R1.WorldServer;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_11;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_11_R1.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_11;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_11_R1.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_11 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_11;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_11_R1.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_11 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_11(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.a();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_11;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_11_R1.PacketPlayInFlying;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_11;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_11_R1.Entity;
import net.minecraft.server.v1_11_R1.PacketPlayInUseEntity;
import net.minecraft.server.v1_11_R1.WorldServer;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_12;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_12_R1.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_12;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_12_R1.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_12 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_12;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_12_R1.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_12 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_12(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.a();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_12;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_12_R1.PacketPlayInFlying;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_12;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_12_R1.Entity;
import net.minecraft.server.v1_12_R1.PacketPlayInUseEntity;
import net.minecraft.server.v1_12_R1.WorldServer;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_13;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R1.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_13;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R1.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_13 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_13;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R1.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_13 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_13(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.b();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_13;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R1.PacketPlayInFlying;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_13;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R1.Entity;
import net.minecraft.server.v1_13_R1.PacketPlayInUseEntity;
import net.minecraft.server.v1_13_R1.WorldServer;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_13_2;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R2.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_13_2;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R2.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_13_2 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_13_2;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R2.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_13_2 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_13_2(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.b();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_13_2;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R2.PacketPlayInFlying;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_13_2;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_13_R2.Entity;
import org.bukkit.Bukkit;
import org.bukkit.World;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_14;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_14_R1.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_14;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_14_R1.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_14 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_14;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_14_R1.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_14 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_14(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.b();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_14;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_14_R1.PacketPlayInFlying;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_14;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_14_R1.Entity;
import net.minecraft.server.v1_14_R1.PacketPlayInUseEntity;
import net.minecraft.server.v1_14_R1.WorldServer;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_15;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_15_R1.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_15;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_15_R1.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_15 extends WrappedVersionPacket {
@@ -0,0 +1,18 @@
package me.purplex.packetevents.packetwrappers.in._1_15;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_15_R1.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_15 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_15(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.b();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_15;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_15_R1.PacketPlayInFlying;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_15;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_15_R1.Entity;
import net.minecraft.server.v1_15_R1.PacketPlayInUseEntity;
import net.minecraft.server.v1_15_R1.WorldServer;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_7_10;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_7_R4.PacketPlayInAbilities;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_7_10;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_7_R4.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_7_10 extends WrappedVersionPacket {
@@ -1,6 +0,0 @@
package me.purplex.packetevents.packetwrappers.in._1_7_10;
public class WrappedPacketPlayInBlockPlace_1_7_10 {
}
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_7_10;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_7_R4.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_7_10 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_7_10(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.c();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_7_10;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_7_R4.PacketPlayInFlying;
public class WrappedPacketPlayInFlying_1_7_10 extends WrappedVersionPacket {
@@ -2,7 +2,7 @@ package me.purplex.packetevents.packetwrappers.in._1_7_10;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_7_R4.Entity;
import net.minecraft.server.v1_7_R4.PacketPlayInUseEntity;
import net.minecraft.server.v1_7_R4.WorldServer;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_8;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R1.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_8;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R1.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_8 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_8;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R1.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_8 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_8(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.a();
}
}
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_8;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R1.PacketPlayInFlying;
public class WrappedPacketPlayInFlying_1_8 extends WrappedVersionPacket {
@@ -2,7 +2,7 @@ package me.purplex.packetevents.packetwrappers.in._1_8;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.enums.ServerVersion;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Entity;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_8_3;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R2.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_8_3;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R2.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_8_3 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_8_3;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R2.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_8_3 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_8_3(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.a();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_8_3;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R2.PacketPlayInFlying;
public class WrappedPacketPlayInFlying_1_8_3 extends WrappedVersionPacket {
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_8_3;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R2.Entity;
import net.minecraft.server.v1_8_R2.PacketPlayInUseEntity;
import net.minecraft.server.v1_8_R2.WorldServer;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_8_8;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R3.PacketPlayInAbilities;
import java.lang.Object;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_8_8;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R3.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_8_8 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_8_8;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R3.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_8_8 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_8_8(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.a();
}
}
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_8_8;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R3.PacketPlayInFlying;
public class WrappedPacketPlayInFlying_1_8_8 extends WrappedVersionPacket {
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_8_8;
import me.purplex.packetevents.enums.EntityUseAction;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_8_R3.Entity;
import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity;
import net.minecraft.server.v1_8_R3.WorldServer;
@@ -1,6 +1,6 @@
package me.purplex.packetevents.packetwrappers.in._1_9;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_9_R1.PacketPlayInAbilities;
import java.lang.reflect.Field;
@@ -1,7 +1,7 @@
package me.purplex.packetevents.packetwrappers.in._1_9;
import me.purplex.packetevents.enums.PlayerDigType;
import me.purplex.packetevents.packetwrappers.api.WrappedVersionPacket;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_9_R1.PacketPlayInBlockDig;
public class WrappedPacketPlayInBlockDig_1_9 extends WrappedVersionPacket {
@@ -0,0 +1,17 @@
package me.purplex.packetevents.packetwrappers.in._1_9;
import me.purplex.packetevents.packetwrappers.api.version.WrappedVersionPacket;
import net.minecraft.server.v1_9_R1.PacketPlayInChat;
public class WrappedPacketPlayInChat_1_9 extends WrappedVersionPacket {
public String message;
public WrappedPacketPlayInChat_1_9(Object packet) {
super(packet);
}
@Override
protected void setup() {
PacketPlayInChat p = (PacketPlayInChat)packet;
this.message = p.a();
}
}
Loaded 100 of 108 files, more files were not shown because too many files have changed in this diff. Show more