Skip to content

Commit 715013d

Browse files
committed
Refactor login event to use UserLoginEvent() with PE, prevents unneccessary stacktrace from PE join errors
1 parent a59ff6e commit 715013d

File tree

15 files changed

+56
-84
lines changed

15 files changed

+56
-84
lines changed

.github/workflows/build-gradle.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,19 @@ jobs:
3737
with:
3838
token: ${{ secrets.GITHUB_TOKEN }}
3939

40+
# Temporary tasks so built jar works because PacketEvents won't merge my fixes for their broken fabric support
41+
- name: Clone Axionize's PacketEvents Repository
42+
run: |
43+
git clone -b fix/fabric-events https://github.com/Axionize/packetevents.git packetevents
44+
cd packetevents
45+
echo "Cloned PacketEvents repository"
46+
47+
- name: Build and Publish PacketEvents to Maven Local
48+
uses: gradle/actions/setup-gradle@v3
49+
with:
50+
build-root-directory: packetevents
51+
arguments: publishToMavenLocal
52+
4053
- name: Update version in build.gradle.kts
4154
id: update_version
4255
run: |

bukkit/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ dependencies {
4040

4141
shadeThisThing(implementation("org.kohsuke:github-api:1.326")!!)
4242
if (shadePE) {
43-
shadeThisThing(implementation("com.github.retrooper:packetevents-spigot:2.7.0-SNAPSHOT")!!)
43+
shadeThisThing(implementation("com.github.retrooper:packetevents-spigot:2.7.1-SNAPSHOT")!!)
4444
} else {
45-
compileOnly("com.github.retrooper:packetevents-spigot:2.7.0-SNAPSHOT")
45+
compileOnly("com.github.retrooper:packetevents-spigot:2.7.1-SNAPSHOT")
4646
}
4747
shadeThisThing(implementation("org.incendo:cloud-paper:2.0.0-beta.10")!!)
4848
shadeThisThing(implementation("org.incendo:cloud-core:2.0.0")!!)

bukkit/src/main/java/me/caseload/knockbacksync/BukkitBase.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,7 @@ public void initializeScheduler() {
132132
protected void registerPlatformListeners() {
133133
registerPluginListeners(
134134
new BukkitPlayerDamageListener(),
135-
new BukkitPlayerKnockbackListener(),
136-
new BukkitPlayerJoinQuitListener()
135+
new BukkitPlayerKnockbackListener()
137136
);
138137
}
139138

bukkit/src/main/java/me/caseload/knockbacksync/listener/bukkit/BukkitPlayerJoinQuitListener.java

Lines changed: 0 additions & 36 deletions
This file was deleted.

bukkit/src/main/java/me/caseload/knockbacksync/player/BukkitPlayer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class BukkitPlayer implements PlatformPlayer {
3131
private static Class<?> craftPlayerClass;
3232
private static Method getHandleMethod;
3333
private static Method getAttackStrengthScaleMethod;
34-
private static ServerVersion currentVersion = PacketEvents.getAPI().getServerManager().getVersion();
34+
private static final ServerVersion currentVersion = PacketEvents.getAPI().getServerManager().getVersion();
3535

3636
// 1.12.2 support
3737
static {

bukkit/src/main/java/me/caseload/knockbacksync/world/BukkitServer.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import me.caseload.knockbacksync.player.BukkitPlayer;
44
import me.caseload.knockbacksync.player.PlatformPlayer;
55
import org.bukkit.Bukkit;
6+
import org.bukkit.entity.Player;
67

78
import java.util.Collection;
89
import java.util.UUID;
@@ -19,4 +20,9 @@ public Collection<PlatformPlayer> getOnlinePlayers() {
1920
public PlatformPlayer getPlayer(UUID uuid) {
2021
return new BukkitPlayer(Bukkit.getPlayer(uuid));
2122
}
23+
24+
@Override
25+
public PlatformPlayer getPlayer(Object nativePlatformPlayer) {
26+
return new BukkitPlayer((Player) nativePlatformPlayer);
27+
}
2228
}

common/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ dependencies {
1313

1414
// Shaded in or bundled by platform-specific code
1515
if (shadePE) {
16-
implementation("com.github.retrooper:packetevents-api:2.7.0-SNAPSHOT")
16+
implementation("com.github.retrooper:packetevents-api:2.7.1-SNAPSHOT")
1717
} else {
18-
compileOnly("com.github.retrooper:packetevents-api:2.7.0-SNAPSHOT")
18+
compileOnly("com.github.retrooper:packetevents-api:2.7.1-SNAPSHOT")
1919
}
2020

2121
implementation("org.yaml:snakeyaml:2.0")

common/src/main/java/me/caseload/knockbacksync/Base.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313
import me.caseload.knockbacksync.event.Event;
1414
import me.caseload.knockbacksync.event.EventBus;
1515
import me.caseload.knockbacksync.event.OptimizedEventBus;
16-
import me.caseload.knockbacksync.listener.packetevents.AttributeChangeListener;
17-
import me.caseload.knockbacksync.listener.packetevents.ClientBrandListener;
18-
import me.caseload.knockbacksync.listener.packetevents.PingReceiveListener;
19-
import me.caseload.knockbacksync.listener.packetevents.PingSendListener;
16+
import me.caseload.knockbacksync.listener.packetevents.*;
2017
import me.caseload.knockbacksync.manager.ConfigManager;
2118
import me.caseload.knockbacksync.permission.PermissionChecker;
2219
import me.caseload.knockbacksync.scheduler.SchedulerAdapter;
@@ -119,6 +116,7 @@ protected void registerCommonListeners() {
119116
new AttributeChangeListener(),
120117
new PingSendListener(),
121118
new PingReceiveListener(),
119+
new PacketPlayerJoinQuit(),
122120
new ClientBrandListener()
123121
);
124122
Event.setEventBus(eventBus);

common/src/main/java/me/caseload/knockbacksync/listener/PlayerJoinQuitListener.java renamed to common/src/main/java/me/caseload/knockbacksync/listener/packetevents/PacketPlayerJoinQuit.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,33 @@
1-
package me.caseload.knockbacksync.listener;
1+
package me.caseload.knockbacksync.listener.packetevents;
22

3+
import com.github.retrooper.packetevents.event.PacketListenerAbstract;
4+
import com.github.retrooper.packetevents.event.UserDisconnectEvent;
5+
import com.github.retrooper.packetevents.event.UserLoginEvent;
6+
import com.google.common.base.Preconditions;
37
import me.caseload.knockbacksync.Base;
48
import me.caseload.knockbacksync.manager.PlayerDataManager;
59
import me.caseload.knockbacksync.player.PlatformPlayer;
610
import me.caseload.knockbacksync.player.PlayerData;
711
import me.caseload.knockbacksync.util.ChatUtil;
12+
import org.jetbrains.annotations.NotNull;
813

914
import java.util.UUID;
1015

11-
public abstract class PlayerJoinQuitListener {
16+
public class PacketPlayerJoinQuit extends PacketListenerAbstract {
17+
@Override
18+
public void onUserLogin(UserLoginEvent event) {
19+
Object nativePlayerObject = event.getPlayer();
20+
Preconditions.checkArgument(nativePlayerObject != null);
21+
22+
@NotNull PlatformPlayer platformPlayer = Base.INSTANCE.getPlatformServer().getPlayer(nativePlayerObject);
23+
onPlayerJoin(new PlayerData(platformPlayer));
24+
}
25+
26+
@Override
27+
public void onUserDisconnect(UserDisconnectEvent event) {
28+
onPlayerQuit(event.getUser().getUUID());
29+
}
30+
1231
public void onPlayerJoin(PlayerData player) {
1332
PlayerDataManager.addPlayerData(player.getUuid(), player);
1433
PlatformPlayer platformPlayer = player.getPlatformPlayer();

common/src/main/java/me/caseload/knockbacksync/player/PlayerData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ public boolean didWeSendThatPacket(long receivedId) {
354354

355355
@KBSyncEventHandler
356356
public void onToggledEvent(ToggleOnOffEvent event) {
357-
if (event.getStatus() == false) {
357+
if (!event.getStatus()) {
358358
transactionsSent.clear();
359359
keepaliveMap.clear();
360360
}

0 commit comments

Comments
 (0)