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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user