Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
95ee18cf5b | ||
|
|
0dd0444271 | ||
|
|
c4713479e5 | ||
|
|
d2320a0f0a | ||
|
|
e3e2cd2a18 | ||
|
|
98754dee92 | ||
|
|
9df833d052 |
No files matched your search
@@ -21,7 +21,7 @@ allprojects {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.github.purplexdev:packetevents:1.0.6'
|
||||
implementation 'com.github.purplexdev:packetevents:1.0.9'
|
||||
}
|
||||
```
|
||||
|
||||
@@ -40,7 +40,7 @@ dependencies {
|
||||
<dependency>
|
||||
<groupId>com.github.purplexdev</groupId>
|
||||
<artifactId>packetevents</artifactId>
|
||||
<version>1.0.6</version>
|
||||
<version>1.0.9</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
```
|
||||
@@ -50,14 +50,14 @@ dependencies {
|
||||
```
|
||||
resolvers += "jitpack" at "https://jitpack.io"
|
||||
|
||||
libraryDependencies += "com.github.purplexdev" % "packetevents" % "1.0.6"
|
||||
libraryDependencies += "com.github.purplexdev" % "packetevents" % "1.0.9"
|
||||
```
|
||||
|
||||
# leiningen
|
||||
```
|
||||
:repositories [["jitpack" "https://jitpack.io"]]
|
||||
|
||||
:dependencies [[com.github.purplexdev/packetevents "1.0.6"]]
|
||||
:dependencies [[com.github.purplexdev/packetevents "1.0.9"]]
|
||||
```
|
||||
|
||||
|
||||
|
||||
@@ -4,13 +4,11 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>me.retrooper</groupId>
|
||||
<groupId>me.purplex</groupId>
|
||||
<artifactId>packetevents</artifactId>
|
||||
<version>1.0.6</version>
|
||||
<version>1.0.9</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>PacketEvents</name>
|
||||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
@@ -19,6 +17,14 @@
|
||||
<build>
|
||||
<defaultGoal>clean package</defaultGoal>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.7.0</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
@@ -28,22 +34,6 @@
|
||||
<target>${java.version}</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<resources>
|
||||
<resource>
|
||||
@@ -56,27 +46,143 @@
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>libraries-mojang</id>
|
||||
<url>https://libraries.minecraft.net/</url>
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>funkemunky-releases</id>
|
||||
<url>https://nexus.funkemunky.cc/content/repositories/releases/</url>
|
||||
</repository>
|
||||
|
||||
</repositories>
|
||||
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.mojang</groupId>
|
||||
<artifactId>authlib</artifactId>
|
||||
<version>1.5.21</version>
|
||||
<scope>compile</scope>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.14.1</artifactId>
|
||||
<version>1.14.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.netty</groupId>
|
||||
<artifactId>netty-all</artifactId>
|
||||
<version>4.1.42.Final</version>
|
||||
<scope>compile</scope>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.15.1</artifactId>
|
||||
<version>1.15.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.14.3</artifactId>
|
||||
<version>1.14.3</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.14.2</artifactId>
|
||||
<version>1.14.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.15</artifactId>
|
||||
<version>1.15</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.15.2</artifactId>
|
||||
<version>1.15.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.13.2</artifactId>
|
||||
<version>1.13.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.7.10</artifactId>
|
||||
<version>1.7.10</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.8</artifactId>
|
||||
<version>1.8</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.8.3</artifactId>
|
||||
<version>1.8.3</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.8.8</artifactId>
|
||||
<version>1.8.8</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.9</artifactId>
|
||||
<version>1.9</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.9.4</artifactId>
|
||||
<version>1.9.4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.10.2</artifactId>
|
||||
<version>1.10.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.11.1</artifactId>
|
||||
<version>1.11.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.11.2</artifactId>
|
||||
<version>1.11.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.12.1</artifactId>
|
||||
<version>1.12.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.12.2</artifactId>
|
||||
<version>1.12.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.13</artifactId>
|
||||
<version>1.13</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.14</artifactId>
|
||||
<version>1.14</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!--Bukkit-->
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
|
||||
@@ -2,10 +2,10 @@ package me.purplex.packetevents;
|
||||
|
||||
import com.comphenix.tinyprotocol.*;
|
||||
import io.netty.channel.Channel;
|
||||
import me.purplex.packetevents.enums.ServerVersion;
|
||||
import me.purplex.packetevents.events.packetevent.PacketSendEvent;
|
||||
import me.purplex.packetevents.events.packetevent.ServerTickEvent;
|
||||
import me.purplex.packetevents.events.packetevent.PacketReceiveEvent;
|
||||
import me.purplex.packetevents.example.TestExample;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.*;
|
||||
|
||||
@@ -3,6 +3,7 @@ package me.purplex.packetevents;
|
||||
import com.comphenix.tinyprotocol.Reflection.*;
|
||||
import com.comphenix.tinyprotocol.Reflection;
|
||||
import io.netty.channel.Channel;
|
||||
import me.purplex.packetevents.enums.ServerVersion;
|
||||
import me.purplex.packetevents.events.manager.PacketManager;
|
||||
import me.purplex.packetevents.packets.Packet;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -10,6 +11,10 @@ import org.bukkit.entity.Player;
|
||||
public class PacketEvents {
|
||||
private static PacketManager packetManager;
|
||||
|
||||
public static ServerVersion getServerVersion() {
|
||||
return ServerVersion.getVersion();
|
||||
}
|
||||
|
||||
|
||||
public static PacketManager getPacketManager() {
|
||||
if (packetManager == null) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package me.purplex.packetevents.enums;
|
||||
|
||||
public enum EntityUseAction {
|
||||
INTERACT, INTERACT_AT, ATTACK, INVALID, WRONG_PACKET;
|
||||
INTERACT, INTERACT_AT, ATTACK, INVALID;
|
||||
}
|
||||
@@ -17,5 +17,5 @@ public enum PlayerAction {
|
||||
|
||||
OPEN_INVENTORY,
|
||||
|
||||
START_FALL_FLYING, WRONG_PACKET;
|
||||
START_FALL_FLYING;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package me.purplex.packetevents.enums;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
|
||||
public enum ServerVersion
|
||||
{
|
||||
v_1_8, v_1_8_3, v_1_8_8, v_1_9, v_1_9_4, v_1_10_2, v_1_11_1, v_1_11_2, v_1_12_1, v_1_12_2, v_1_13, v_1_13_2, v_1_14, v_1_14_1, v_1_15_1,
|
||||
ERROR;
|
||||
|
||||
public static ServerVersion getVersion() {
|
||||
ServerVersion[] vals = values();
|
||||
ArrayUtils.reverse(vals);
|
||||
for(ServerVersion val : vals) {
|
||||
String valName = val.name().substring(2).replace("_", ".");
|
||||
if(Bukkit.getBukkitVersion().contains(valName)) {
|
||||
System.out.println(val + " we got");
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ 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.Method;
|
||||
|
||||
public class PacketManager implements PacketEventManager {
|
||||
|
||||
+471
-148
@@ -1,27 +1,21 @@
|
||||
package me.purplex.packetevents.events.packetevent;
|
||||
|
||||
import com.comphenix.tinyprotocol.Reflection;
|
||||
import com.comphenix.tinyprotocol.Reflection.*;
|
||||
import me.purplex.packetevents.enums.EntityUseAction;
|
||||
import me.purplex.packetevents.enums.PlayerAction;
|
||||
import me.purplex.packetevents.enums.PlayerDigType;
|
||||
import me.purplex.packetevents.enums.ServerVersion;
|
||||
import me.purplex.packetevents.events.PacketEvent;
|
||||
import me.purplex.packetevents.packets.Packet;
|
||||
import org.apache.commons.lang3.reflect.FieldUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import me.purplex.packetevents.exceptions.VersionNotFoundException;
|
||||
import org.bukkit.entity.*;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
public class PacketReceiveEvent extends PacketEvent {
|
||||
|
||||
private Player player;
|
||||
private String name;
|
||||
private Object packet;
|
||||
private long timestamp;
|
||||
private final Player player;
|
||||
private final String name;
|
||||
private final Object packet;
|
||||
private final long timestamp;
|
||||
private boolean cancelled;
|
||||
private final ServerVersion version = ServerVersion.getVersion();
|
||||
|
||||
public PacketReceiveEvent(Player player, String packetName, Object packet) {
|
||||
this.player = player;
|
||||
@@ -34,6 +28,7 @@ public class PacketReceiveEvent extends PacketEvent {
|
||||
|
||||
/**
|
||||
* Get the player sending the packet
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Player getPlayer() {
|
||||
@@ -41,7 +36,8 @@ public class PacketReceiveEvent extends PacketEvent {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the packet object's class name, aka. Packet Name
|
||||
* Get the packet's name (NMS packet class simple name)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getPacketName() {
|
||||
@@ -49,7 +45,8 @@ public class PacketReceiveEvent extends PacketEvent {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the raw packet object
|
||||
* Get the NMS packet object
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Object getPacket() {
|
||||
@@ -58,6 +55,7 @@ public class PacketReceiveEvent extends PacketEvent {
|
||||
|
||||
/**
|
||||
* The time the packet was received(ms)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public long getTimestamp() {
|
||||
@@ -66,6 +64,7 @@ public class PacketReceiveEvent extends PacketEvent {
|
||||
|
||||
/**
|
||||
* Cancel the packet
|
||||
*
|
||||
* @param cancelled
|
||||
*/
|
||||
public void setCancelled(boolean cancelled) {
|
||||
@@ -74,7 +73,8 @@ public class PacketReceiveEvent extends PacketEvent {
|
||||
|
||||
/**
|
||||
* Returns if the packet has been cancelled
|
||||
* @return
|
||||
*
|
||||
* @return cancelled
|
||||
*/
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
@@ -83,15 +83,57 @@ public class PacketReceiveEvent extends PacketEvent {
|
||||
/**
|
||||
* Get the type of dig
|
||||
* PacketPlayInBlockDig
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public PlayerDigType getPlayerDigType() {
|
||||
String c = String.valueOf(Reflection.getMethod(packet.getClass(), "c").invoke(packet));
|
||||
public PlayerDigType getPlayerDigType() throws VersionNotFoundException {
|
||||
PlayerDigType type;
|
||||
try {
|
||||
type = PlayerDigType.valueOf(c);
|
||||
} catch (IllegalArgumentException e) {
|
||||
type = PlayerDigType.WRONG_PACKET;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_8_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.PacketPlayInBlockDig p = (net.minecraft.server.v1_8_R2.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.PacketPlayInBlockDig p = (net.minecraft.server.v1_8_R3.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_9_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.PacketPlayInBlockDig p = (net.minecraft.server.v1_9_R2.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_10_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_11_1) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_11_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_11_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_12_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_13_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.PacketPlayInBlockDig p = (net.minecraft.server.v1_13_R2.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_14_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_14_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.PacketPlayInBlockDig p = (net.minecraft.server.v1_15_R1.PacketPlayInBlockDig) packet;
|
||||
type = PlayerDigType.valueOf(p.c().name());
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return type;
|
||||
}
|
||||
@@ -99,174 +141,455 @@ public class PacketReceiveEvent extends PacketEvent {
|
||||
/**
|
||||
* Get the entity interact action
|
||||
* PacketPlayInUseEntity
|
||||
* @return
|
||||
*
|
||||
* @return me.purplex.packetevents.enums.EntityUseAction
|
||||
*/
|
||||
public EntityUseAction getEntityUseAction() {
|
||||
Object action = null;
|
||||
try {
|
||||
action = FieldUtils.readDeclaredField(packet, "action", true);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
public EntityUseAction getEntityUseAction() throws VersionNotFoundException {
|
||||
EntityUseAction entityUseAction;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_8_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.a().name());
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_8_R2.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.a().name());
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_8_R3.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.a().name());
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_9_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.a().name());
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_9_R2.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.a().name());
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_10_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.a().name());
|
||||
} else if (version == ServerVersion.v_1_11_1) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_11_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.a().name());
|
||||
} else if (version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_11_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.a().name());
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_12_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.a().name());
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_13_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.b().name());
|
||||
}
|
||||
for (EntityUseAction a : EntityUseAction.values()) {
|
||||
if (a.toString().equalsIgnoreCase(action.toString())) {
|
||||
return a;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_13_R2.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.b().name());
|
||||
}
|
||||
return EntityUseAction.WRONG_PACKET;
|
||||
else if (version == ServerVersion.v_1_14) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_14_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.b().name());
|
||||
} else if (version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_14_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.b().name());
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_15_R1.PacketPlayInUseEntity) packet;
|
||||
entityUseAction = EntityUseAction.valueOf(useEntity.b().name());
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return entityUseAction;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the PlayerAction
|
||||
* PacketPlayInEntityAction
|
||||
* @return
|
||||
*
|
||||
* @return me.purplex.packetevents.enums.PlayerAction
|
||||
*/
|
||||
public PlayerAction getPlayerAction() {
|
||||
Object animation = null;
|
||||
try {
|
||||
animation = FieldUtils.readDeclaredField(packet, "animation", true);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
public PlayerAction getPlayerAction() throws VersionNotFoundException {
|
||||
String animation;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_8_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.PacketPlayInEntityAction action = (net.minecraft.server.v1_8_R2.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.PacketPlayInEntityAction action = (net.minecraft.server.v1_8_R3.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_9_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.PacketPlayInEntityAction action = (net.minecraft.server.v1_9_R2.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_10_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_11_1) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_11_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_11_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_12_1) {
|
||||
net.minecraft.server.v1_12_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_12_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_12_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.b().name();
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_13_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.c().name();
|
||||
}
|
||||
for (PlayerAction a : PlayerAction.values()) {
|
||||
if (a.toString().equalsIgnoreCase(animation.toString())) {
|
||||
return a;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.PacketPlayInEntityAction action = (net.minecraft.server.v1_13_R2.PacketPlayInEntityAction) packet;
|
||||
animation = action.c().name();
|
||||
}
|
||||
return PlayerAction.WRONG_PACKET;
|
||||
else if (version == ServerVersion.v_1_14) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_14_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.c().name();
|
||||
} else if (version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_14_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.c().name();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.PacketPlayInEntityAction action = (net.minecraft.server.v1_15_R1.PacketPlayInEntityAction) packet;
|
||||
animation = action.c().name();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return PlayerAction.valueOf(animation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Entity you interacted with
|
||||
* PacketPlayInUseEntity
|
||||
* @return
|
||||
*
|
||||
* @return org.bukkit.entity.Entity
|
||||
*/
|
||||
public Entity getInteractedEntity() {
|
||||
try {
|
||||
FieldAccessor<Integer> field = Reflection.getField(packet.getClass(), int.class, 0);
|
||||
int id = field.get(packet);
|
||||
for (Entity e : player.getWorld().getEntities()) {
|
||||
if (e.getEntityId() == id) {
|
||||
return e;
|
||||
}
|
||||
}
|
||||
for(World w : Bukkit.getWorlds()) {
|
||||
for(Entity e : w.getEntities()) {
|
||||
if(e.getEntityId() == id) {
|
||||
return e;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
public Entity getInteractedEntity() throws VersionNotFoundException {
|
||||
Entity entity;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_8_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_8_R1.World world = ((org.bukkit.craftbukkit.v1_8_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_8_R2.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_8_R2.World world = ((org.bukkit.craftbukkit.v1_8_R2.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_8_R3.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_8_R3.World world = ((org.bukkit.craftbukkit.v1_8_R3.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_9_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_9_R1.World world = ((org.bukkit.craftbukkit.v1_9_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_9_R2.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_9_R2.World world = ((org.bukkit.craftbukkit.v1_9_R2.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_10_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_10_R1.World world = ((org.bukkit.craftbukkit.v1_10_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_11_1) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_11_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_11_R1.World world = ((org.bukkit.craftbukkit.v1_11_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_11_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_11_R1.World world = ((org.bukkit.craftbukkit.v1_11_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_12_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_12_R1.World world = ((org.bukkit.craftbukkit.v1_12_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_13_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_13_R1.World world = ((org.bukkit.craftbukkit.v1_13_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
}
|
||||
return null;
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_13_R2.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_13_R2.World world = ((org.bukkit.craftbukkit.v1_13_R2.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_14_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_14_R1.World world = ((org.bukkit.craftbukkit.v1_14_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_14_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_14_R1.World world = ((org.bukkit.craftbukkit.v1_14_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.PacketPlayInUseEntity useEntity = (net.minecraft.server.v1_15_R1.PacketPlayInUseEntity) packet;
|
||||
net.minecraft.server.v1_15_R1.World world = ((org.bukkit.craftbukkit.v1_15_R1.CraftWorld) player.getWorld()).getHandle();
|
||||
entity = useEntity.a(world).getBukkitEntity();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return entity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the string message
|
||||
* PacketPlayInChat
|
||||
* @return
|
||||
*
|
||||
* @return message
|
||||
*/
|
||||
public String getChatPacketMessage() {
|
||||
FieldAccessor<String> field = Reflection.getField(packet.getClass(), String.class, 0);
|
||||
String message = field.get(packet);
|
||||
public String getChatPacketMessage() throws VersionNotFoundException {
|
||||
String message;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.PacketPlayInChat p = (net.minecraft.server.v1_8_R1.PacketPlayInChat) packet;
|
||||
message = p.a();
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.PacketPlayInChat p = (net.minecraft.server.v1_8_R2.PacketPlayInChat) packet;
|
||||
message = p.a();
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.PacketPlayInChat p = (net.minecraft.server.v1_8_R3.PacketPlayInChat) packet;
|
||||
message = p.a();
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.PacketPlayInChat p = (net.minecraft.server.v1_9_R1.PacketPlayInChat) packet;
|
||||
message = p.a();
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.PacketPlayInChat p = (net.minecraft.server.v1_9_R2.PacketPlayInChat) packet;
|
||||
message = p.a();
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.PacketPlayInChat p = (net.minecraft.server.v1_10_R1.PacketPlayInChat) packet;
|
||||
message = p.a();
|
||||
} else if (version == ServerVersion.v_1_11_1) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInChat p = (net.minecraft.server.v1_11_R1.PacketPlayInChat) packet;
|
||||
message = p.a();
|
||||
} else if (version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayInChat p = (net.minecraft.server.v1_11_R1.PacketPlayInChat) packet;
|
||||
message = p.a();
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.PacketPlayInChat p = (net.minecraft.server.v1_12_R1.PacketPlayInChat) packet;
|
||||
message = p.a();
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.PacketPlayInChat p = (net.minecraft.server.v1_13_R1.PacketPlayInChat) packet;
|
||||
message = p.b();
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.PacketPlayInChat p = (net.minecraft.server.v1_13_R2.PacketPlayInChat) packet;
|
||||
message = p.b();
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInChat p = (net.minecraft.server.v1_14_R1.PacketPlayInChat) packet;
|
||||
message = p.b();
|
||||
} else if (version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayInChat p = (net.minecraft.server.v1_14_R1.PacketPlayInChat) packet;
|
||||
message = p.b();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.PacketPlayInChat p = (net.minecraft.server.v1_15_R1.PacketPlayInChat) packet;
|
||||
message = p.b();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
public int getPing() {
|
||||
int ping = 0;
|
||||
try {
|
||||
Object entityPlayer = player.getClass().getMethod("getHandle").invoke(player);
|
||||
ping = (int) entityPlayer.getClass().getField("ping").get(entityPlayer);
|
||||
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
|
||||
| SecurityException | NoSuchFieldException e) {
|
||||
e.printStackTrace();
|
||||
/**
|
||||
* Get the player's ping in the EntityPlayer's class
|
||||
* @return ping
|
||||
* @throws VersionNotFoundException
|
||||
*/
|
||||
public int getPing() throws VersionNotFoundException {
|
||||
int ping;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return ping;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the motX variable in the player's CraftPlayer class
|
||||
* using Reflection
|
||||
* @return
|
||||
* Get the motX variable in the EntityPlayer class
|
||||
*
|
||||
* @return motX
|
||||
*/
|
||||
public double getMotionX() {
|
||||
Reflection.MethodInvoker getPlayerHandle = Reflection.getMethod("{obc}.entity.CraftPlayer", "getHandle");
|
||||
Object entityplayer = getPlayerHandle.invoke(player);
|
||||
Field field = null;
|
||||
try {
|
||||
field = entityplayer.getClass().getField("motX");
|
||||
} catch (NoSuchFieldException e1) {
|
||||
e1.printStackTrace();
|
||||
} catch (SecurityException e1) {
|
||||
e1.printStackTrace();
|
||||
public double getMotX() throws VersionNotFoundException {
|
||||
double motX;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
}
|
||||
double mot = 0.0D;
|
||||
try {
|
||||
mot = field.getDouble(entityplayer);
|
||||
} catch (IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.getMot().getX();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.getMot().getX();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return motX;
|
||||
}
|
||||
|
||||
return mot;
|
||||
|
||||
|
||||
/**
|
||||
* Get the motY variable in the EntityPlayer class
|
||||
*
|
||||
* @return motY
|
||||
*/
|
||||
public double getMotY() throws VersionNotFoundException {
|
||||
double motY;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.getMot().getY();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.getMot().getY();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return motY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the motY variable in the player's CraftPlayer class
|
||||
* using Reflection
|
||||
* @return
|
||||
* Get the motZ variable in the EntityPlayer class
|
||||
*
|
||||
* @return motZ
|
||||
*/
|
||||
public double getMotionY() {
|
||||
Reflection.MethodInvoker getPlayerHandle = Reflection.getMethod("{obc}.entity.CraftPlayer", "getHandle");
|
||||
Object entityplayer = getPlayerHandle.invoke(player);
|
||||
Field field = null;
|
||||
try {
|
||||
field = entityplayer.getClass().getField("motY");
|
||||
} catch (NoSuchFieldException e1) {
|
||||
e1.printStackTrace();
|
||||
} catch (SecurityException e1) {
|
||||
e1.printStackTrace();
|
||||
public double getMotZ() throws VersionNotFoundException {
|
||||
double motZ;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
}
|
||||
double mot = 0.0D;
|
||||
try {
|
||||
mot = field.getDouble(entityplayer);
|
||||
} catch (IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
}
|
||||
|
||||
return mot;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the motZ variable in the player's CraftPlayer class
|
||||
* using Reflection
|
||||
* @return
|
||||
*/
|
||||
public double getMotionZ() {
|
||||
Reflection.MethodInvoker getPlayerHandle = Reflection.getMethod("{obc}.entity.CraftPlayer", "getHandle");
|
||||
Object entityplayer = getPlayerHandle.invoke(player);
|
||||
Field field = null;
|
||||
try {
|
||||
field = entityplayer.getClass().getField("motZ");
|
||||
} catch (NoSuchFieldException e1) {
|
||||
e1.printStackTrace();
|
||||
} catch (SecurityException e1) {
|
||||
e1.printStackTrace();
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.getMot().getZ();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.getMot().getZ();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
double mot = 0.0D;
|
||||
try {
|
||||
mot = field.getDouble(entityplayer);
|
||||
} catch (IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return mot;
|
||||
return motZ;
|
||||
}
|
||||
}
|
||||
@@ -2,21 +2,25 @@ package me.purplex.packetevents.events.packetevent;
|
||||
|
||||
import com.comphenix.tinyprotocol.Reflection;
|
||||
import com.comphenix.tinyprotocol.Reflection.*;
|
||||
import me.purplex.packetevents.enums.ServerVersion;
|
||||
import me.purplex.packetevents.events.PacketEvent;
|
||||
import me.purplex.packetevents.exceptions.VersionNotFoundException;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
public class PacketSendEvent extends PacketEvent {
|
||||
private Player player;
|
||||
private String name;
|
||||
private Object packet;
|
||||
private long timestamp;
|
||||
private final Player player;
|
||||
private final String name;
|
||||
private final Object packet;
|
||||
private final long timestamp;
|
||||
private boolean cancelled;
|
||||
private final ServerVersion version = ServerVersion.getVersion();
|
||||
private static FieldAccessor<Integer> velId;
|
||||
private static FieldAccessor<Integer> velX;
|
||||
private static FieldAccessor<Integer> velY;
|
||||
private static FieldAccessor<Integer> velZ;
|
||||
|
||||
public PacketSendEvent(Player player, String packetName, Object packet) {
|
||||
this.player = player;
|
||||
@@ -53,28 +57,205 @@ public class PacketSendEvent extends PacketEvent {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Velocity entity
|
||||
* Get Velocity entity (partly reflection)
|
||||
* PacketPlayOutEntityVelocity
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Entity getVelocityEntity() {
|
||||
//WorldServer s;
|
||||
FieldAccessor<Integer> field = Reflection.getField(packet.getClass(), int.class, 0);
|
||||
int id = field.get(packet);
|
||||
for (World w : Bukkit.getWorlds()) {
|
||||
for (Entity e : w.getEntities()) {
|
||||
if (e.getEntityId() == id) {
|
||||
return e;
|
||||
public Entity getVelocityEntity() throws VersionNotFoundException {
|
||||
int entityId;
|
||||
Object velPacket;
|
||||
Entity entity = null;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_8_R1.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_8_R1.World world = ((org.bukkit.craftbukkit.v1_8_R1.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_8_R1.Entity nmsEntity = world.a(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_8_R2.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_8_R2.World world = ((org.bukkit.craftbukkit.v1_8_R2.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_8_R2.Entity nmsEntity = world.a(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_8_R3.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_8_R3.World world = ((org.bukkit.craftbukkit.v1_8_R3.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_8_R3.Entity nmsEntity = world.a(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_9_R1.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_9_R1.World world = ((org.bukkit.craftbukkit.v1_9_R1.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_9_R1.Entity nmsEntity = world.getEntity(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_9_R2.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_9_R2.World world = ((org.bukkit.craftbukkit.v1_9_R2.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_9_R2.Entity nmsEntity = world.getEntity(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_10_R1.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_10_R1.World world = ((org.bukkit.craftbukkit.v1_10_R1.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_10_R1.Entity nmsEntity = world.getEntity(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_11_R1.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_11_R1.World world = ((org.bukkit.craftbukkit.v1_11_R1.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_11_R1.Entity nmsEntity = world.getEntity(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_12_R1.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_12_R1.World world = ((org.bukkit.craftbukkit.v1_12_R1.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_12_R1.Entity nmsEntity = world.getEntity(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_13_R1.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_13_R1.World world = ((org.bukkit.craftbukkit.v1_13_R1.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_13_R1.Entity nmsEntity = world.getEntity(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_13_R2.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_13_R2.World world = ((org.bukkit.craftbukkit.v1_13_R2.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_13_R2.Entity nmsEntity = world.getEntity(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_14_R1.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_14_R1.World world = ((org.bukkit.craftbukkit.v1_14_R1.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_14_R1.Entity nmsEntity = world.getEntity(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.PacketPlayOutEntityVelocity p = (net.minecraft.server.v1_15_R1.PacketPlayOutEntityVelocity) packet;
|
||||
velPacket = p;
|
||||
if (velId == null) {
|
||||
velId = Reflection.getField(velPacket.getClass(), int.class, 0);
|
||||
}
|
||||
int id = velId.get(velPacket);
|
||||
for (World bukkitWorld : Bukkit.getWorlds()) {
|
||||
net.minecraft.server.v1_15_R1.World world = ((org.bukkit.craftbukkit.v1_15_R1.CraftWorld) bukkitWorld).getHandle();
|
||||
net.minecraft.server.v1_15_R1.Entity nmsEntity = world.getEntity(id);
|
||||
if (nmsEntity != null) {
|
||||
entity = nmsEntity.getBukkitEntity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return null;
|
||||
return entity;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get X velocity
|
||||
* Get X velocity (with reflection)
|
||||
* PacketPlayOutEntityVelocity
|
||||
*
|
||||
* @return x
|
||||
@@ -87,7 +268,7 @@ public class PacketSendEvent extends PacketEvent {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Y velocity
|
||||
* Get Y velocity (with reflection)
|
||||
* PacketPlayOutEntityVelocity
|
||||
*
|
||||
* @return y
|
||||
@@ -100,7 +281,7 @@ public class PacketSendEvent extends PacketEvent {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Z velocity
|
||||
* Get Z velocity (with reflection)
|
||||
* PacketPlayOutEntityVelocity
|
||||
*
|
||||
* @return z
|
||||
@@ -113,103 +294,211 @@ public class PacketSendEvent extends PacketEvent {
|
||||
}
|
||||
|
||||
|
||||
public int getPing() {
|
||||
int ping = 0;
|
||||
try {
|
||||
Object entityPlayer = player.getClass().getMethod("getHandle").invoke(player);
|
||||
ping = (int) entityPlayer.getClass().getField("ping").get(entityPlayer);
|
||||
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
|
||||
| SecurityException | NoSuchFieldException e) {
|
||||
e.printStackTrace();
|
||||
/**
|
||||
* Get the player's ping in the EntityPlayer's class
|
||||
* @return ping
|
||||
* @throws VersionNotFoundException
|
||||
*/
|
||||
public int getPing() throws VersionNotFoundException {
|
||||
int ping;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return ping;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the motX variable in the player's CraftPlayer class
|
||||
* using Reflection
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public double getMotionX() {
|
||||
Reflection.MethodInvoker getPlayerHandle = Reflection.getMethod("{obc}.entity.CraftPlayer", "getHandle");
|
||||
Object entityplayer = getPlayerHandle.invoke(player);
|
||||
Field field = null;
|
||||
try {
|
||||
field = entityplayer.getClass().getField("motX");
|
||||
} catch (NoSuchFieldException e1) {
|
||||
e1.printStackTrace();
|
||||
} catch (SecurityException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
double mot = 0.0D;
|
||||
try {
|
||||
mot = field.getDouble(entityplayer);
|
||||
} catch (IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return mot;
|
||||
/**
|
||||
* Get the motX variable in the EntityPlayer class
|
||||
*
|
||||
* @return motX
|
||||
*/
|
||||
public double getMotX() throws VersionNotFoundException {
|
||||
double motX;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.getMot().getX();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.getMot().getX();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return motX;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the motY variable in the EntityPlayer class
|
||||
*
|
||||
* @return motY
|
||||
*/
|
||||
public double getMotY() throws VersionNotFoundException {
|
||||
double motY;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.getMot().getY();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.getMot().getY();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return motY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the motY variable in the player's CraftPlayer class
|
||||
* using Reflection
|
||||
* Get the motZ variable in the EntityPlayer class
|
||||
*
|
||||
* @return
|
||||
* @return motZ
|
||||
*/
|
||||
public double getMotionY() {
|
||||
Reflection.MethodInvoker getPlayerHandle = Reflection.getMethod("{obc}.entity.CraftPlayer", "getHandle");
|
||||
Object entityplayer = getPlayerHandle.invoke(player);
|
||||
Field field = null;
|
||||
try {
|
||||
field = entityplayer.getClass().getField("motY");
|
||||
} catch (NoSuchFieldException e1) {
|
||||
e1.printStackTrace();
|
||||
} catch (SecurityException e1) {
|
||||
e1.printStackTrace();
|
||||
public double getMotZ() throws VersionNotFoundException {
|
||||
double motZ;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
}
|
||||
double mot = 0.0D;
|
||||
try {
|
||||
mot = field.getDouble(entityplayer);
|
||||
} catch (IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
}
|
||||
|
||||
return mot;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the motZ variable in the player's CraftPlayer class
|
||||
* using Reflection
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public double getMotionZ() {
|
||||
Reflection.MethodInvoker getPlayerHandle = Reflection.getMethod("{obc}.entity.CraftPlayer", "getHandle");
|
||||
Object entityplayer = getPlayerHandle.invoke(player);
|
||||
Field field = null;
|
||||
try {
|
||||
field = entityplayer.getClass().getField("motZ");
|
||||
} catch (NoSuchFieldException e1) {
|
||||
e1.printStackTrace();
|
||||
} catch (SecurityException e1) {
|
||||
e1.printStackTrace();
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.getMot().getZ();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.getMot().getZ();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
double mot = 0.0D;
|
||||
try {
|
||||
mot = field.getDouble(entityplayer);
|
||||
} catch (IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return mot;
|
||||
return motZ;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,11 +3,13 @@ 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.PacketReceiveEvent;
|
||||
import me.purplex.packetevents.events.packetevent.PacketSendEvent;
|
||||
import me.purplex.packetevents.exceptions.VersionNotFoundException;
|
||||
import me.purplex.packetevents.packets.Packet;
|
||||
import org.bukkit.entity.Entity;
|
||||
|
||||
@@ -20,15 +22,19 @@ public class TestExample implements PacketListener {
|
||||
|
||||
private int tick;
|
||||
|
||||
private static ServerVersion serverVersion = ServerVersion.getVersion();
|
||||
|
||||
@PacketHandler
|
||||
public void onPacketReceive(PacketReceiveEvent e) {
|
||||
public void onPacketReceive(PacketReceiveEvent e) throws VersionNotFoundException {
|
||||
//ONLY CLIENT PACKETS ALLOWED HERE!
|
||||
double motX = e.getMotX();
|
||||
double motY = e.getMotY();
|
||||
double motZ = e.getMotZ();
|
||||
long timestamp = e.getTimestamp();
|
||||
if (e.getPacketName().equals(Packet.Client.USE_ENTITY)) {
|
||||
Entity entity = e.getInteractedEntity();
|
||||
EntityUseAction entityUseAction = e.getEntityUseAction();
|
||||
if(entityUseAction == EntityUseAction.ATTACK) {
|
||||
if (entityUseAction == EntityUseAction.ATTACK) {
|
||||
//LEFT CLICKED
|
||||
e.getPlayer().sendMessage("Attacked an entity!");
|
||||
}
|
||||
@@ -37,25 +43,25 @@ public class TestExample implements PacketListener {
|
||||
|
||||
} else if (e.getPacketName().equals(Packet.Client.BLOCK_DIG)) {
|
||||
PlayerDigType type = e.getPlayerDigType();
|
||||
if(type == PlayerDigType.ABORT_DESTROY_BLOCK) {
|
||||
if (type == PlayerDigType.ABORT_DESTROY_BLOCK) {
|
||||
//aborted destroying a block
|
||||
}
|
||||
} else if (e.getPacketName().equals(Packet.Client.CHAT)) {
|
||||
String message = e.getChatPacketMessage();
|
||||
if(message.equals("pls jump")) {
|
||||
if (message.equals("pls jump")) {
|
||||
//shoot them in the air
|
||||
PacketEvents.sendVelocity(e.getPlayer(), 0.0, 50.0, 0.0);
|
||||
}
|
||||
}
|
||||
else if(e.getPacketName().equals(Packet.Client.POSITION)) {
|
||||
double motX = e.getMotionX();
|
||||
double motY = e.getMotionY();
|
||||
double motZ= e.getMotionZ();
|
||||
if (serverVersion == ServerVersion.v_1_8) {
|
||||
if (e.getPacket() instanceof net.minecraft.server.v1_8_R1.PacketPlayInFlying) {
|
||||
//flying packet, position, position_look extend the flying packet
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@PacketHandler
|
||||
public void onPacketSend(PacketSendEvent e) {
|
||||
public void onPacketSend(PacketSendEvent e) throws VersionNotFoundException {
|
||||
//ONLY SERVER PACKETS ALLOWED HERE!
|
||||
if (e.getPacketName().equals(Packet.Server.ENTITY_VELOCITY)) {
|
||||
int ping = e.getPing();
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package me.purplex.packetevents.exceptions;
|
||||
|
||||
public class VersionNotFoundException extends Exception {
|
||||
public VersionNotFoundException() {
|
||||
super("VersionNotFound! Failed to access an NMS Field.");
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user