Skip to content

Commit f0254ec

Browse files
committed
fix: Fixed scheduler repeating task execution
1 parent 660459c commit f0254ec

File tree

5 files changed

+21
-20
lines changed

5 files changed

+21
-20
lines changed

common/src/main/java/io/github/miniplaceholders/expansion/proxyconnection/common/PlatformProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
import java.util.regex.Pattern;
88

99
public abstract class PlatformProvider<S, M> {
10-
public static final String CHANNEL = "bungeecord:main";
10+
public static final String LEGACY_CHANNEL = "BungeeCord";
11+
public static final String MODERN_CHANNEL = "bungeecord:main";
1112
public static final Pattern SPLIT_PATTERN = Pattern.compile(", ");
1213
protected final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
1314
protected S platformInstance;

fabric/src/main/java/io/github/miniplaceholders/expansion/proxyconnection/fabric/FabricProvider.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public FabricProvider(Object platformInstance, Object miniInstance) {
2323

2424
@Override
2525
public Expansion.Builder provideBuilder() {
26-
executor.schedule(() -> {
26+
executor.scheduleAtFixedRate(() -> {
2727
final var players = platformInstance.getPlayerList().getPlayers().iterator();
2828
if (!players.hasNext()) {
2929
return;
@@ -35,9 +35,9 @@ public Expansion.Builder provideBuilder() {
3535
output.writeUTF(server);
3636
ServerPlayNetworking.send(player, new PluginMessagePacket(output.toByteArray()));
3737
}
38-
}, 5, TimeUnit.SECONDS);
38+
}, 30, 7, TimeUnit.SECONDS);
3939

40-
executor.schedule(() -> {
40+
executor.scheduleAtFixedRate(() -> {
4141
final var players = platformInstance.getPlayerList().getPlayers().iterator();
4242
if (!players.hasNext()) {
4343
return;
@@ -46,7 +46,7 @@ public Expansion.Builder provideBuilder() {
4646
final ByteArrayDataOutput output = ByteStreams.newDataOutput();
4747
output.writeUTF(BungeeMessageTypes.GET_SERVERS.rawType());
4848
ServerPlayNetworking.send(player, new PluginMessagePacket(output.toByteArray()));
49-
}, 10, TimeUnit.MINUTES);
49+
}, 1, 3, TimeUnit.MINUTES);
5050

5151
PluginMessageEvent.EVENT.register((payload, context) -> {
5252
final ByteArrayDataInput data = ByteStreams.newDataInput(payload.getData());

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
group = io.github.miniplaceholders
2-
version = 2.0.0
2+
version = 2.0.1
33
description = MiniPlaceholders Example Expansion

paper/src/main/java/io/github/miniplaceholders/expansion/proxyconnection/paper/PaperProvider.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public PaperProvider(Object platformInstance, Object miniInstance) {
2323

2424
@Override
2525
public Expansion.Builder provideBuilder() {
26-
platformInstance.getMessenger().registerOutgoingPluginChannel(miniInstance, CHANNEL);
27-
platformInstance.getMessenger().registerIncomingPluginChannel(miniInstance, CHANNEL, this);
28-
executor.schedule(() -> {
26+
platformInstance.getMessenger().registerOutgoingPluginChannel(miniInstance, LEGACY_CHANNEL);
27+
platformInstance.getMessenger().registerIncomingPluginChannel(miniInstance, LEGACY_CHANNEL, this);
28+
executor.scheduleAtFixedRate(() -> {
2929
final var players = platformInstance.getOnlinePlayers().iterator();
3030
if (!players.hasNext()) {
3131
return;
@@ -35,20 +35,20 @@ public Expansion.Builder provideBuilder() {
3535
final ByteArrayDataOutput output = ByteStreams.newDataOutput();
3636
output.writeUTF(BungeeMessageTypes.PLAYER_COUNT.rawType());
3737
output.writeUTF(server);
38-
player.sendPluginMessage(miniInstance, CHANNEL, output.toByteArray());
38+
player.sendPluginMessage(miniInstance, LEGACY_CHANNEL, output.toByteArray());
3939
}
40-
}, 5, TimeUnit.SECONDS);
40+
}, 30, 7, TimeUnit.SECONDS);
4141

42-
executor.schedule(() -> {
42+
executor.scheduleAtFixedRate(() -> {
4343
final var players = platformInstance.getOnlinePlayers().iterator();
4444
if (!players.hasNext()) {
4545
return;
4646
}
4747
final Player player = players.next();
4848
final ByteArrayDataOutput output = ByteStreams.newDataOutput();
4949
output.writeUTF(BungeeMessageTypes.GET_SERVERS.rawType());
50-
player.sendPluginMessage(miniInstance, CHANNEL, output.toByteArray());
51-
}, 10, TimeUnit.MINUTES);
50+
player.sendPluginMessage(miniInstance, LEGACY_CHANNEL, output.toByteArray());
51+
}, 1, 3, TimeUnit.MINUTES);
5252

5353
return Expansion.builder("proxyconnection")
5454
.globalPlaceholder("player_count", (queue, context) -> {
@@ -64,7 +64,7 @@ public Expansion.Builder provideBuilder() {
6464

6565
@Override
6666
public void onPluginMessageReceived(@NotNull String channel, @NotNull Player player, byte @NotNull [] message) {
67-
if (!channel.equals("BungeeCord")) {
67+
if (!channel.equals(LEGACY_CHANNEL)) {
6868
return;
6969
}
7070
final ByteArrayDataInput in = ByteStreams.newDataInput(message);

sponge/src/main/java/io/github/miniplaceholders/expansion/proxyconnection/sponge/SpongeProvider.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public SpongeProvider(Object platformInstance, Object miniInstance) {
2121
public Expansion.Builder provideBuilder() {
2222
final RawDataChannel rawDataChannel = platformInstance.game()
2323
.channelManager()
24-
.ofType(ResourceKey.resolve(CHANNEL), RawDataChannel.class);
24+
.ofType(ResourceKey.resolve(MODERN_CHANNEL), RawDataChannel.class);
2525
rawDataChannel.play()
2626
.addHandler((data, state) -> {
2727
final String subchannel = data.readUTF();
@@ -41,7 +41,7 @@ public Expansion.Builder provideBuilder() {
4141
dataCache.updateServers(List.of(servers));
4242
}
4343
});
44-
executor.schedule(() -> {
44+
executor.scheduleAtFixedRate(() -> {
4545
final var players = platformInstance.onlinePlayers().iterator();
4646
if (!players.hasNext()) {
4747
return;
@@ -53,17 +53,17 @@ public Expansion.Builder provideBuilder() {
5353
buf.writeUTF(server);
5454
});
5555
}
56-
}, 5, TimeUnit.SECONDS);
56+
}, 30, 7, TimeUnit.SECONDS);
5757

58-
executor.schedule(() -> {
58+
executor.scheduleAtFixedRate(() -> {
5959
final var players = platformInstance.onlinePlayers().iterator();
6060
if (!players.hasNext()) {
6161
return;
6262
}
6363
final ServerPlayer player = players.next();
6464
rawDataChannel.play().sendTo(player,
6565
buf -> buf.writeUTF(BungeeMessageTypes.GET_SERVERS.rawType()));
66-
}, 10, TimeUnit.MINUTES);
66+
}, 1, 3, TimeUnit.MINUTES);
6767

6868
return Expansion.builder("proxyconnection")
6969
.globalPlaceholder("player_count", (queue, context) -> {

0 commit comments

Comments
 (0)