9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-25 09:59:20 +00:00

refactor(resourcepack): 移除 DelayedTasks

This commit is contained in:
jhqwqmc
2025-06-17 01:54:10 +08:00
parent 0607e59d49
commit 0e6533aeb2
2 changed files with 1 additions and 28 deletions

View File

@@ -487,7 +487,6 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes
@Override
public void write(ChannelHandlerContext context, Object packet, ChannelPromise channelPromise) throws Exception {
boolean isWrote = false;
try {
NMSPacketEvent event = new NMSPacketEvent(packet);
onNMSPacketSend(player, event, packet);
@@ -497,23 +496,9 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes
} else {
super.write(context, packet, channelPromise);
}
isWrote = true;
if (channelPromise instanceof VoidChannelPromise) { // 从 1.21.6 开始大量使用 VoidChannelPromise
if (!event.getDelayedTasks().isEmpty()) {
plugin.logger().warn("Delayed tasks are not supported for void promises");
}
return;
}
channelPromise.addListener((p) -> {
for (Runnable task : event.getDelayedTasks()) {
task.run();
}
});
} catch (Throwable e) {
plugin.logger().severe("An error occurred when reading packets. Packet class: " + packet.getClass(), e);
if (!isWrote) {
super.write(context, packet, channelPromise);
}
super.write(context, packet, channelPromise);
}
}

View File

@@ -11,7 +11,6 @@ import java.util.Optional;
public class NMSPacketEvent implements Cancellable {
private final Object packet;
private boolean cancelled;
private List<Runnable> delayedTasks = null;
private Object newPacket = null;
public NMSPacketEvent(Object packet) {
@@ -34,17 +33,6 @@ public class NMSPacketEvent implements Cancellable {
return newPacket;
}
public void addDelayedTask(Runnable task) {
if (delayedTasks == null) {
delayedTasks = new ArrayList<>();
}
delayedTasks.add(task);
}
public List<Runnable> getDelayedTasks() {
return Optional.ofNullable(delayedTasks).orElse(Collections.emptyList());
}
@Override
public boolean isCancelled() {
return cancelled;