Skip to content

Commit

Permalink
Use the platform scheduler on paper
Browse files Browse the repository at this point in the history
  • Loading branch information
Draycia committed Apr 23, 2023
1 parent cdabaa0 commit 9d6c646
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,8 @@ protected void shutdown() {
this.commandExecutor.shutdown();
}

public abstract PlatformScheduler platformScheduler();

@Override
public UUID serverId() {
return this.serverId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import net.draycia.carbon.common.CarbonChatInternal;
import net.draycia.carbon.common.DataDirectory;
import net.draycia.carbon.common.PeriodicTasks;
import net.draycia.carbon.common.PlatformScheduler;
import net.draycia.carbon.common.channels.CarbonChannelRegistry;
import net.draycia.carbon.common.command.commands.ExecutionCoordinatorHolder;
import net.draycia.carbon.common.messages.CarbonMessages;
Expand Down Expand Up @@ -66,6 +67,8 @@ public final class CarbonChatPaper extends CarbonChatInternal<CarbonPlayerPaper>

private final JavaPlugin plugin;

private final PlatformScheduler platformScheduler;

@Inject
private CarbonChatPaper(
final Injector injector,
Expand Down Expand Up @@ -98,6 +101,7 @@ private CarbonChatPaper(
messagingManager
);
this.plugin = plugin;
this.platformScheduler = new ContextualPlatformScheduler(this);
}

void onEnable() {
Expand Down Expand Up @@ -137,6 +141,11 @@ void onDisable() {
this.shutdown();
}

@Override
public PlatformScheduler platformScheduler() {
return this.platformScheduler;
}

public static boolean papiLoaded() {
return Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@

public class ContextualPlatformScheduler implements PlatformScheduler {

private final CarbonChat carbonChat;
private final CarbonChatPaper carbonChat;
private boolean isFolia;

public ContextualPlatformScheduler(final CarbonChat carbonChat) {
public ContextualPlatformScheduler(final CarbonChatPaper carbonChat) {
this.carbonChat = carbonChat;

try {
Expand All @@ -29,7 +29,7 @@ private boolean isFolia() {
}

public void scheduleForPlayer(final CarbonPlayer carbonPlayer, final Runnable runnable) {
final JavaPlugin plugin = ((CarbonChatPaper) this.carbonChat).bukkitPlugin();
final JavaPlugin plugin = this.carbonChat.bukkitPlugin();

if (!isFolia()) {
if (Bukkit.isPrimaryThread()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@
import java.util.List;
import java.util.Locale;
import java.util.Optional;
import net.draycia.carbon.api.CarbonChatProvider;
import net.draycia.carbon.api.channels.ChatChannel;
import net.draycia.carbon.api.users.CarbonPlayer;
import net.draycia.carbon.api.util.InventorySlot;
import net.draycia.carbon.common.CarbonChatInternal;
import net.draycia.carbon.common.users.CarbonPlayerCommon;
import net.draycia.carbon.common.users.WrappedCarbonPlayer;
import net.draycia.carbon.paper.CarbonServerPaper;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.audience.ForwardingAudience;
import net.kyori.adventure.key.Key;
Expand Down Expand Up @@ -64,15 +65,10 @@ public CarbonPlayerPaper(final CarbonPlayerCommon carbonPlayerCommon) {

final Player player = optionalPlayer.get();

if (CarbonServerPaper.isFolia() && !Bukkit.isOwnedByCurrentRegion(player)) {
player.getScheduler().run(Bukkit.getPluginManager().getPlugin("CarbonChat"), task -> {
player.displayName(carbonPlayerCommon.displayName());
player.playerListName(carbonPlayerCommon.displayName());
}, null);
} else {
((CarbonChatInternal<?>) CarbonChatProvider.carbonChat()).platformScheduler().scheduleForPlayer(this, () -> {
player.displayName(carbonPlayerCommon.displayName());
player.playerListName(carbonPlayerCommon.displayName());
}
});
}

private Optional<Player> player() {
Expand Down Expand Up @@ -126,11 +122,10 @@ public void displayName(final @Nullable Component displayName) {
this.carbonPlayerCommon.displayName(displayName);

this.player().ifPresent(player -> {
// Update player's name in chat
player.displayName(displayName);

// Update player's name in the tab player list
player.playerListName(displayName);
((CarbonChatInternal<?>) CarbonChatProvider.carbonChat()).platformScheduler().scheduleForPlayer(this, () -> {
player.displayName(carbonPlayerCommon.displayName());
player.playerListName(carbonPlayerCommon.displayName());
});
});
}

Expand Down

0 comments on commit 9d6c646

Please sign in to comment.