Skip to content

Commit

Permalink
1.7.9 release
Browse files Browse the repository at this point in the history
Update!
  • Loading branch information
retrooper committed Nov 23, 2020
2 parents 8643e14 + feda5b9 commit bd1e4e7
Show file tree
Hide file tree
Showing 28 changed files with 316 additions and 261 deletions.
3 changes: 2 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>io.github.retrooper</groupId>
<artifactId>packetevents</artifactId>
<version>1.7.8</version>
<version>1.7.9</version>

<!-- You can build the project with this: "mvn clean compile assembly:single" -->
<build>
Expand Down Expand Up @@ -134,6 +134,7 @@
<groupId>com.github.ProtocolSupport</groupId>
<artifactId>ProtocolSupport</artifactId>
<version>3d24efeda6</version>
<scope>provided</scope>
</dependency>

<dependency>
Expand Down
45 changes: 30 additions & 15 deletions src/main/java/io/github/retrooper/packetevents/PacketEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@

package io.github.retrooper.packetevents;

import io.github.retrooper.packetevents.bungee.BungeePluginMessageListener;
import io.github.retrooper.packetevents.event.PacketEvent;
import io.github.retrooper.packetevents.event.impl.PostPlayerInjectEvent;
import io.github.retrooper.packetevents.exceptions.PacketEventsLoadFailureException;
import io.github.retrooper.packetevents.packetmanager.PacketManager;
import io.github.retrooper.packetevents.packettype.PacketTypeClasses;
Expand All @@ -52,14 +52,13 @@
import java.util.ArrayList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public final class PacketEvents implements Listener {
private static final PacketEventsAPI packetEventsAPI = new PacketEventsAPI();
private static final PacketEvents instance = new PacketEvents();
private static final ArrayList<Plugin> plugins = new ArrayList<>(1);
private static boolean loading, loaded, initialized, initializing, uninitializing;
private static final PEVersion version = new PEVersion(1, 7, 8);
private static final PEVersion version = new PEVersion(1, 7, 9);
private static PacketEventsSettings settings = new PacketEventsSettings();
/**
* General executor service, basically for anything that the packet executor service doesn't do.
Expand Down Expand Up @@ -109,7 +108,7 @@ public static void load() {
WrappedPacket.loadAllWrappers();
} catch (Exception ex) {
loading = false;
throw new PacketEventsLoadFailureException();
throw new PacketEventsLoadFailureException(ex);
}
loaded = true;
loading = false;
Expand Down Expand Up @@ -163,16 +162,14 @@ public static void init(final Plugin pl, PacketEventsSettings packetEventsSettin
}

if (settings.shouldCheckForUpdates()) {
Future<?> future =
PacketEvents.generalExecutorService
.submit(() -> new UpdateChecker().handleUpdate());
}
PacketEvents.generalExecutorService.execute(new Runnable() {
@Override
public void run() {
new UpdateChecker().handleUpdate();
}
});

if (getAPI().getServerUtils().isBungeeCordEnabled()) {
Bukkit.getMessenger().registerOutgoingPluginChannel(plugins.get(0), "BungeeCord");
Bukkit.getServer().getMessenger().registerIncomingPluginChannel(plugins.get(0), BungeePluginMessageListener.tagName, new BungeePluginMessageListener());
}

initialized = true;
initializing = false;
}
Expand All @@ -191,6 +188,7 @@ public static void stop() {
if (PacketEvents.getAPI().packetManager.tinyProtocol != null) {
PacketEvents.getAPI().packetManager.tinyProtocol.unregisterChannelHandler();
}

getAPI().getEventManager().unregisterAllListeners();
PacketEvents.generalExecutorService.shutdownNow();
PacketEvents.packetHandlingExecutorService.shutdownNow();
Expand All @@ -203,6 +201,18 @@ public static boolean hasLoaded() {
return loaded;
}

public static boolean isLoading() {
return loading;
}

public static boolean isInitializing() {
return initializing;
}

public static boolean isUninitializing() {
return uninitializing;
}

public static boolean isInitialized() {
return initialized;
}
Expand Down Expand Up @@ -240,25 +250,30 @@ public void onLogin(PlayerLoginEvent e) {
}
}

@EventHandler(priority = EventPriority.LOW)
@EventHandler(priority = EventPriority.HIGH)
public void onJoin(final PlayerJoinEvent e) {
Object channel = NMSUtils.getChannel(e.getPlayer());
if (PacketEvents.getAPI().getServerUtils().getVersion() == ServerVersion.v_1_7_10) {
ClientVersion version = ClientVersion.getClientVersion(ProtocolVersionAccessor_v_1_7.getProtocolVersion(e.getPlayer()));
PacketEvents.getAPI().getPlayerUtils().clientVersionsMap.put(channel, version);
} else if (VersionLookupUtils.isDependencyAvailable()) {
}
else if(VersionLookupUtils.isDependencyAvailable()) {
int protocolVersion = VersionLookupUtils.getProtocolVersion(e.getPlayer());
ClientVersion version = ClientVersion.getClientVersion(protocolVersion);
PacketEvents.getAPI().getPlayerUtils().clientVersionsMap.put(channel, version);
}
//Waiting for the BungeeCord server to send their plugin message with your version,

if (!PacketEvents.getSettings().shouldInjectEarly()) {
try {
PacketEvents.getAPI().packetManager.injectPlayer(e.getPlayer());
PacketEvents.getAPI().getEventManager().callEvent(new PostPlayerInjectEvent(e.getPlayer()));
} catch (Exception ex) {
e.getPlayer().kickPlayer("There was an issue injecting you. Please try again!");
}
}
else {
PacketEvents.getAPI().getEventManager().callEvent(new PostPlayerInjectEvent(e.getPlayer()));
}
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@

package io.github.retrooper.packetevents.event.impl;

import io.github.retrooper.packetevents.event.eventtypes.CancellableEvent;
import io.github.retrooper.packetevents.event.PacketEvent;
import io.github.retrooper.packetevents.event.eventtypes.CancellableEvent;
import io.github.retrooper.packetevents.event.eventtypes.PlayerEvent;
import io.github.retrooper.packetevents.packettype.PacketType;
import io.github.retrooper.packetevents.utils.reflection.ClassUtil;
Expand All @@ -38,6 +38,7 @@ public final class PacketReceiveEvent extends PacketEvent implements Cancellable
private final Player player;
private final Object packet;
private boolean cancelled;
private byte packetID = -1;

public PacketReceiveEvent(final Player player, final Object packet) {
this.player = player;
Expand All @@ -46,6 +47,7 @@ public PacketReceiveEvent(final Player player, final Object packet) {

/**
* Get the packet sender
*
* @return player
*/
@Override
Expand All @@ -56,6 +58,7 @@ public Player getPlayer() {
/**
* Get the packet's name (NMS packet class simple name).
* The class simple name is cached.
*
* @return Name of the packet
*/
public String getPacketName() {
Expand All @@ -64,6 +67,7 @@ public String getPacketName() {

/**
* Get the raw packet object
*
* @return packet object
*/
public Object getNMSPacket() {
Expand All @@ -72,10 +76,14 @@ public Object getNMSPacket() {

/**
* Get the ID of the packet
*
* @return packet id
*/
public byte getPacketId() {
return PacketType.Client.packetIds.getOrDefault(packet.getClass(), (byte) -1);
if (packetID == -1) {
packetID = PacketType.Client.packetIds.getOrDefault(packet.getClass(), (byte) -1);
}
return packetID;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public final class PacketSendEvent extends PacketEvent implements CancellableEve
private final Player player;
private final Object packet;
private boolean cancelled;
private byte packetID = -1;

public PacketSendEvent(final Player player, final Object packet) {
this.player = player;
Expand Down Expand Up @@ -65,7 +66,10 @@ public String getPacketName() {
* @return packet id
*/
public byte getPacketId() {
return PacketType.Server.packetIds.getOrDefault(packet.getClass(), (byte) -1);
if(packetID == -1) {
packetID = PacketType.Server.packetIds.getOrDefault(packet.getClass(), (byte) -1);
}
return packetID;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public class PacketStatusEvent extends PacketEvent implements CancellableEvent {
private final Object channel;
private final Object packet;
private boolean cancelled;
private byte packetID = -1;

public PacketStatusEvent(final Object channel, final Object packet) {
this.channel = channel;
Expand Down Expand Up @@ -68,7 +69,10 @@ public Object getNMSPacket() {
* @return packet id
*/
public byte getPacketId() {
return PacketType.Status.packetIds.getOrDefault(packet.getClass(), (byte) -1);
if (packetID == -1) {
packetID = PacketType.Status.packetIds.getOrDefault(packet.getClass(), (byte) -1);
}
return packetID;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
public class PostPacketReceiveEvent extends PacketEvent implements PlayerEvent {
private final Player player;
private final Object packet;

private byte packetID = -1;
public PostPacketReceiveEvent(final Player player, final Object packet) {
this.player = player;
this.packet = packet;
Expand Down Expand Up @@ -70,6 +70,9 @@ public Object getNMSPacket() {
* @return packet id
*/
public byte getPacketId() {
return PacketType.Client.packetIds.getOrDefault(packet.getClass(), (byte) -1);
if(packetID == -1) {
packetID = PacketType.Client.packetIds.getOrDefault(packet.getClass(), (byte) -1);
}
return packetID;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
public class PostPacketSendEvent extends PacketEvent implements PlayerEvent {
private final Player player;
private final Object packet;
private byte packetID = -1;

public PostPacketSendEvent(final Player player, final Object packet) {
this.player = player;
Expand All @@ -41,6 +42,7 @@ public PostPacketSendEvent(final Player player, final Object packet) {

/**
* Get the packet sender
*
* @return player
*/
@Override
Expand All @@ -51,6 +53,7 @@ public Player getPlayer() {
/**
* Get the packet's name (NMS packet class simple name).
* The class simple name is cached.
*
* @return Name of the packet
*/
public String getPacketName() {
Expand All @@ -59,6 +62,7 @@ public String getPacketName() {

/**
* Get the raw packet object
*
* @return packet object
*/
public Object getNMSPacket() {
Expand All @@ -67,9 +71,13 @@ public Object getNMSPacket() {

/**
* Get the ID of the packet
*
* @return packet id
*/
public byte getPacketId() {
return PacketType.Server.packetIds.getOrDefault(packet.getClass(), (byte) -1);
if (packetID == -1) {
packetID = PacketType.Server.packetIds.getOrDefault(packet.getClass(), (byte) -1);
}
return packetID;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,34 +22,31 @@
* SOFTWARE.
*/

package io.github.retrooper.packetevents.bungee;
package io.github.retrooper.packetevents.event.impl;

import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteStreams;
import io.github.retrooper.packetevents.PacketEvents;
import io.github.retrooper.packetevents.event.PacketEvent;
import io.github.retrooper.packetevents.event.eventtypes.PlayerEvent;
import io.github.retrooper.packetevents.utils.nms.NMSUtils;
import io.github.retrooper.packetevents.utils.player.ClientVersion;
import org.bukkit.entity.Player;
import org.bukkit.plugin.messaging.PluginMessageListener;

import java.util.UUID;

public class BungeePluginMessageListener implements PluginMessageListener {
public static String tagName = "packetevents:channel";
public class PostPlayerInjectEvent extends PacketEvent implements PlayerEvent {
private final Player player;
public PostPlayerInjectEvent(Player player) {
this.player = player;
}

@Override
public void onPluginMessageReceived(String tag, Player player, byte[] bytes) {
if (tag.equals(tagName)) {
ByteArrayDataInput in = ByteStreams.newDataInput(bytes);
if (in.readUTF().equals("version")) {
String uuidString = in.readUTF();
Object channel = NMSUtils.getChannel(player);
short protocolVersion = in.readShort();
ClientVersion version = ClientVersion.getClientVersion(protocolVersion);
PacketEvents.getAPI().getPlayerUtils().clientVersionsMap.put(channel, version);
}
}
public Player getPlayer() {
return player;
}

public Object getChannel() {
return NMSUtils.getChannel(player);
}

public ClientVersion getClientVersion() {
return PacketEvents.getAPI().getPlayerUtils().clientVersionsMap.get(getChannel());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,7 @@ public void callEvent(PacketEvent event) {
}

} catch (Exception ex) {
throw new PacketEventsMethodInvokeException("PacketEvents " +
"failed to call an event method in the " +
"dynamic packet listener. Event type: "
+ ClassUtil.getClassSimpleName(event.getClass()));
ex.printStackTrace();
}

if (event instanceof CancellableEvent) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,23 +29,23 @@
import io.github.retrooper.packetevents.event.impl.PacketReceiveEvent;
import io.github.retrooper.packetevents.event.priority.PacketEventPriority;
import io.github.retrooper.packetevents.packettype.PacketType;
import io.github.retrooper.packetevents.packetwrappers.in.chat.WrappedPacketInChat;
import io.github.retrooper.packetevents.utils.player.ClientVersion;
import io.github.retrooper.packetevents.packetwrappers.in.useentity.WrappedPacketInUseEntity;
import io.github.retrooper.packetevents.utils.player.ClientHand;
import io.github.retrooper.packetevents.utils.server.ServerVersion;
import org.bukkit.plugin.java.JavaPlugin;

public class MainExample extends JavaPlugin {

@Override
public void onLoad() {
PacketEvents.load();
}

@Override
public void onEnable() {
PacketEvents.getSettings().injectAsync(true).ejectAsync(true)
.backupServerVersion(ServerVersion.v_1_7_10).checkForUpdates(true).injectEarly(true).
packetHandlingThreadCount(1);
PacketEvents.getSettings().injectAsync(true)
.ejectAsync(true).backupServerVersion(ServerVersion.v_1_7_10)
.checkForUpdates(true).injectEarly(true)
.packetHandlingThreadCount(1);
PacketEvents.init(this);
}

Expand Down
Loading

0 comments on commit bd1e4e7

Please sign in to comment.