Skip to content

Commit e7f9618

Browse files
committed
Support Folia
1 parent 9cb636a commit e7f9618

File tree

12 files changed

+209
-35
lines changed

12 files changed

+209
-35
lines changed

pom.xml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>me.rothes</groupId>
88
<artifactId>ProtocolStringReplacer</artifactId>
9-
<version>2.18.1</version>
9+
<version>2.18.2-DEV</version>
1010
<packaging>jar</packaging>
1111

1212
<repositories>
@@ -16,7 +16,7 @@
1616
</repository>
1717
<repository>
1818
<id>papermc</id>
19-
<url>https://papermc.io/repo/repository/maven-public/</url>
19+
<url>https://repo.papermc.io/repository/maven-public/</url>
2020
</repository>
2121
<repository>
2222
<id>dmulloy2-repo</id>
@@ -97,16 +97,22 @@
9797
<version>2.6</version>
9898
<scope>provided</scope>
9999
</dependency>
100+
<dependency>
101+
<groupId>dev.folia</groupId>
102+
<artifactId>folia-api</artifactId>
103+
<version>1.20.1-R0.1-SNAPSHOT</version>
104+
<scope>provided</scope>
105+
</dependency>
100106
<dependency>
101107
<groupId>org.spigotmc</groupId>
102108
<artifactId>spigot-api</artifactId>
103-
<version>1.20-R0.1-SNAPSHOT</version>
109+
<version>1.20.1-R0.1-SNAPSHOT</version>
104110
<scope>provided</scope>
105111
</dependency>
106112
<dependency>
107113
<groupId>io.papermc.paper</groupId>
108114
<artifactId>paper-api</artifactId>
109-
<version>1.20-R0.1-SNAPSHOT</version>
115+
<version>1.20.1-R0.1-SNAPSHOT</version>
110116
<scope>provided</scope>
111117
</dependency>
112118
<dependency>
@@ -130,7 +136,7 @@
130136
<dependency>
131137
<groupId>com.comphenix.protocol</groupId>
132138
<artifactId>ProtocolLib</artifactId>
133-
<version>5.0.0-SNAPSHOT</version>
139+
<version>5.0.0</version>
134140
<scope>provided</scope>
135141
</dependency>
136142
<dependency>
@@ -150,7 +156,7 @@
150156
<properties>
151157
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
152158
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
153-
<maven.compiler.source>16</maven.compiler.source>
159+
<maven.compiler.source>17</maven.compiler.source>
154160
<maven.compiler.target>8</maven.compiler.target>
155161
<maven.compiler.release>8</maven.compiler.release>
156162
<maven.javadoc.skip>true</maven.javadoc.skip>

src/main/java/com/sk89q/protocolstringreplacer/PsrDisguisePlugin.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sk89q.protocolstringreplacer;
22

3+
import io.papermc.paper.plugin.configuration.PluginMeta;
34
import me.rothes.protocolstringreplacer.ProtocolStringReplacer;
45
import org.apache.commons.lang.Validate;
56
import org.bukkit.Server;
@@ -49,6 +50,11 @@ public PluginDescriptionFile getDescription() {
4950
return plugin.getDescription();
5051
}
5152

53+
@Override
54+
public @NotNull PluginMeta getPluginMeta() {
55+
return null;
56+
}
57+
5258
@Override
5359
public FileConfiguration getConfig() {
5460
return null;

src/main/java/me/rothes/protocolstringreplacer/ProtocolStringReplacer.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import me.rothes.protocolstringreplacer.listeners.PlayerQuitListener;
1414
import me.rothes.protocolstringreplacer.packetlisteners.PacketListenerManager;
1515
import me.rothes.protocolstringreplacer.replacer.ReplacerManager;
16+
import me.rothes.protocolstringreplacer.scheduler.PsrScheduler;
1617
import me.rothes.protocolstringreplacer.upgrades.AbstractUpgradeHandler;
1718
import me.rothes.protocolstringreplacer.upgrades.UpgradeEnum;
1819
import me.rothes.protocolstringreplacer.utils.FileUtils;
@@ -57,6 +58,7 @@ public class ProtocolStringReplacer extends JavaPlugin {
5758
private byte serverMinorVersion;
5859
private boolean isSpigot;
5960
private boolean isPaper;
61+
private boolean isFolia;
6062
private boolean hasPaperComponent;
6163
private boolean hasStarted;
6264
private boolean reloading;
@@ -88,6 +90,12 @@ public ProtocolStringReplacer() {
8890
e.printStackTrace();
8991
}
9092
logger = this.getLogger();
93+
try {
94+
Class.forName("io.papermc.paper.threadedregions.RegionizedServer");
95+
isFolia = true;
96+
} catch (ClassNotFoundException e) {
97+
isFolia = false;
98+
}
9199

92100
// Start Console Replacer first to remove the Ansi in log files.
93101
String[] split = Bukkit.getServer().getBukkitVersion().split("-")[0].split("\\.");
@@ -199,7 +207,7 @@ public void onDisable() {
199207
if (replacerManager != null) {
200208
replacerManager.saveReplacerConfigs();
201209
}
202-
Bukkit.getScheduler().cancelTasks(instance);
210+
PsrScheduler.cancelTasks();
203211
}
204212

205213
public byte getServerMajorVersion() {
@@ -218,6 +226,10 @@ public boolean isPaper() {
218226
return isPaper;
219227
}
220228

229+
public boolean isFolia() {
230+
return isFolia;
231+
}
232+
221233
public boolean hasPaperComponent() {
222234
return hasPaperComponent;
223235
}
@@ -438,12 +450,12 @@ public void reload(@Nonnull PsrUser user) {
438450
reloading = true;
439451
Validate.notNull(user, "user cannot be null");
440452
PsrReloadEvent event = new PsrReloadEvent(PsrReloadEvent.ReloadState.BEFORE, user);
441-
Bukkit.getServer().getPluginManager().callEvent(event);
453+
PsrScheduler.runTask(() -> Bukkit.getServer().getPluginManager().callEvent(event));
442454
if (event.isCancelled()) {
443455
reloading = false;
444456
return;
445457
}
446-
Bukkit.getScheduler().runTaskAsynchronously(instance, () -> {
458+
PsrScheduler.runTaskAsynchronously(() -> {
447459
try {
448460
user.sendFilteredText(PsrLocalization.getPrefixedLocaledMessage("Sender.Commands.Reload.Async-Reloading"));
449461
loadConfigAndLocale();
@@ -460,7 +472,7 @@ public void reload(@Nonnull PsrUser user) {
460472
player.updateInventory();
461473
}
462474
user.sendFilteredText(PsrLocalization.getPrefixedLocaledMessage("Sender.Commands.Reload.Complete"));
463-
Bukkit.getScheduler().runTask(instance, () -> {
475+
PsrScheduler.runTask(() -> {
464476
// Don't need to check cancelled here
465477
Bukkit.getServer().getPluginManager().callEvent(new PsrReloadEvent(PsrReloadEvent.ReloadState.FINISH, user));
466478
});

src/main/java/me/rothes/protocolstringreplacer/Updater.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.google.gson.JsonParser;
77
import me.rothes.protocolstringreplacer.api.replacer.ReplacerConfig;
88
import me.rothes.protocolstringreplacer.replacer.ReplaceMode;
9+
import me.rothes.protocolstringreplacer.scheduler.PsrScheduler;
910
import org.bstats.bukkit.Metrics;
1011
import org.bstats.charts.DrilldownPie;
1112
import org.bukkit.Bukkit;
@@ -40,7 +41,7 @@ public class Updater implements Listener {
4041
public void start() {
4142
initMetrics();
4243
Bukkit.getPluginManager().registerEvents(this, plugin);
43-
Bukkit.getScheduler().runTaskTimerAsynchronously(plugin, () -> {
44+
PsrScheduler.runTaskTimerAsynchronously(() -> {
4445
try {
4546
String json = getJson();
4647
if (json == null) {
@@ -56,7 +57,7 @@ public void start() {
5657

5758
@EventHandler
5859
public void playerJoin(PlayerJoinEvent e) {
59-
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
60+
PsrScheduler.runTaskAsynchronously(() -> {
6061
if (e.getPlayer().hasPermission("protocolstringreplacer.updater.notify")) {
6162
for (String message : messages) {
6263
e.getPlayer().sendMessage(PsrLocalization.getLocaledMessage("Sender.Prefix") + message);

src/main/java/me/rothes/protocolstringreplacer/commands/subcommands/Capture.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package me.rothes.protocolstringreplacer.commands.subcommands;
22

3-
import me.rothes.protocolstringreplacer.PsrLocalization;
43
import me.rothes.protocolstringreplacer.ProtocolStringReplacer;
4+
import me.rothes.protocolstringreplacer.PsrLocalization;
55
import me.rothes.protocolstringreplacer.api.capture.CaptureInfo;
66
import me.rothes.protocolstringreplacer.api.user.PsrUser;
7-
import me.rothes.protocolstringreplacer.replacer.ListenType;
87
import me.rothes.protocolstringreplacer.commands.SubCommand;
8+
import me.rothes.protocolstringreplacer.replacer.ListenType;
9+
import me.rothes.protocolstringreplacer.scheduler.PsrScheduler;
910
import me.rothes.protocolstringreplacer.utils.MessageUtils;
1011
import org.apache.commons.lang.StringUtils;
11-
import org.bukkit.Bukkit;
1212
import org.jetbrains.annotations.NotNull;
1313

1414
import javax.annotation.Nonnull;
@@ -109,7 +109,7 @@ private void removeCommand(@Nonnull PsrUser user, @Nonnull String[] args) {
109109

110110
private void listCommand(@Nonnull PsrUser user, @Nonnull String[] args) {
111111
if (args.length == 3 || args.length == 4) {
112-
Bukkit.getScheduler().runTaskAsynchronously(ProtocolStringReplacer.getInstance(), () -> {
112+
PsrScheduler.runTaskAsynchronously(() -> {
113113
ListenType listenType = ListenType.getType(args[2]);
114114
if (listenType == null) {
115115
user.sendFilteredText(PsrLocalization.getPrefixedLocaledMessage(
@@ -157,7 +157,7 @@ private void listCommand(@Nonnull PsrUser user, @Nonnull String[] args) {
157157

158158
private void clipboardCommand(@Nonnull PsrUser user, @Nonnull String[] args) {
159159
if (args.length == 4) {
160-
Bukkit.getScheduler().runTaskAsynchronously(ProtocolStringReplacer.getInstance(), () -> {
160+
PsrScheduler.runTaskAsynchronously(() -> {
161161
ListenType listenType = ListenType.getType(args[2]);
162162
if (!user.isCapturing(listenType)) {
163163
user.sendFilteredText(PsrLocalization.getPrefixedLocaledMessage(

src/main/java/me/rothes/protocolstringreplacer/commands/subcommands/Parse.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import me.rothes.protocolstringreplacer.api.user.PsrUser;
77
import me.rothes.protocolstringreplacer.replacer.ListenType;
88
import me.rothes.protocolstringreplacer.replacer.ReplaceMode;
9+
import me.rothes.protocolstringreplacer.scheduler.PsrScheduler;
910
import me.rothes.protocolstringreplacer.utils.ColorUtils;
1011
import me.rothes.protocolstringreplacer.commands.SubCommand;
1112
import net.md_5.bungee.api.ChatColor;
@@ -67,7 +68,7 @@ public void onExecute(@NotNull PsrUser user, @NotNull String[] args) {
6768

6869
user.sendFilteredText(PsrLocalization.getPrefixedLocaledMessage("Sender.Commands.Parse.Start-Parse"));
6970
ReplaceMode finalReplaceMode = replaceMode;
70-
Bukkit.getScheduler().runTaskAsynchronously(ProtocolStringReplacer.getInstance(), () ->
71+
PsrScheduler.runTaskAsynchronously(() ->
7172
startParse(user, args[1], player, listenType, finalReplaceMode));
7273
return;
7374
}

src/main/java/me/rothes/protocolstringreplacer/console/PsrJndiLookup.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package me.rothes.protocolstringreplacer.console;
22

33
import me.rothes.protocolstringreplacer.ProtocolStringReplacer;
4+
import me.rothes.protocolstringreplacer.scheduler.PsrScheduler;
45
import org.apache.logging.log4j.core.LogEvent;
56
import org.apache.logging.log4j.core.config.plugins.Plugin;
67
import org.apache.logging.log4j.core.lookup.StrLookup;
7-
import org.bukkit.Bukkit;
88

99
@Plugin(name = "jndi", category = StrLookup.CATEGORY)
1010
public class PsrJndiLookup implements StrLookup {
@@ -22,8 +22,7 @@ public String lookup(LogEvent event, String key) {
2222
return null;
2323
}
2424
// runTaskLater to avoid errors.
25-
Bukkit.getScheduler().runTaskLater(ProtocolStringReplacer.getInstance()
26-
, () -> ProtocolStringReplacer.info("Blocked not whitelisted Jndi looking up [" + key + "]")
25+
PsrScheduler.runTaskLater(() -> ProtocolStringReplacer.info("Blocked not whitelisted Jndi looking up [" + key + "]")
2726
, 0L);
2827
return null;
2928

src/main/java/me/rothes/protocolstringreplacer/packetlisteners/client/CloseWindow.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
import com.comphenix.protocol.PacketType;
44
import com.comphenix.protocol.events.PacketEvent;
5-
import me.rothes.protocolstringreplacer.ProtocolStringReplacer;
65
import me.rothes.protocolstringreplacer.api.user.PsrUser;
76
import me.rothes.protocolstringreplacer.packetlisteners.client.itemstack.AbstractClientItemPacketListener;
8-
import org.bukkit.Bukkit;
7+
import me.rothes.protocolstringreplacer.scheduler.PsrScheduler;
98

109
public class CloseWindow extends AbstractClientItemPacketListener {
1110

@@ -20,7 +19,7 @@ protected void process(PacketEvent packetEvent) {
2019
if (user.isInMerchant()) {
2120
user.setInMerchant(false);
2221
// Must be called in other threads or the inventory won't update.
23-
Bukkit.getScheduler().runTaskAsynchronously(ProtocolStringReplacer.getInstance(), () -> user.getPlayer().updateInventory());
22+
PsrScheduler.runTaskAsynchronously(() -> user.getPlayer().updateInventory());
2423
}
2524
}
2625

src/main/java/me/rothes/protocolstringreplacer/replacer/ReplacerManager.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
package me.rothes.protocolstringreplacer.replacer;
22

33
import de.tr7zw.changeme.nbtapi.NBTItem;
4+
import me.clip.placeholderapi.PlaceholderAPIPlugin;
5+
import me.rothes.protocolstringreplacer.ProtocolStringReplacer;
46
import me.rothes.protocolstringreplacer.PsrLocalization;
57
import me.rothes.protocolstringreplacer.api.configuration.CommentYamlConfiguration;
68
import me.rothes.protocolstringreplacer.api.replacer.ReplacerConfig;
9+
import me.rothes.protocolstringreplacer.api.user.PsrUser;
710
import me.rothes.protocolstringreplacer.replacer.containers.Container;
8-
import me.rothes.protocolstringreplacer.ProtocolStringReplacer;
911
import me.rothes.protocolstringreplacer.replacer.containers.Replaceable;
10-
import me.rothes.protocolstringreplacer.api.user.PsrUser;
11-
import me.clip.placeholderapi.PlaceholderAPIPlugin;
12+
import me.rothes.protocolstringreplacer.scheduler.PsrScheduler;
13+
import me.rothes.protocolstringreplacer.scheduler.PsrTask;
1214
import me.rothes.protocolstringreplacer.utils.FileUtils;
1315
import org.apache.commons.lang.Validate;
14-
import org.bukkit.Bukkit;
1516
import org.bukkit.Material;
1617
import org.bukkit.inventory.meta.ItemMeta;
17-
import org.bukkit.scheduler.BukkitTask;
1818
import org.jetbrains.annotations.NotNull;
1919
import org.neosearch.stringsearcher.Emit;
2020

@@ -41,7 +41,7 @@ public class ReplacerManager {
4141
private char papiTail;
4242
private final List<ReplacerConfig> replacerConfigList = new ArrayList<>();
4343
private final EnumMap<Material, HashMap<ItemMeta, ItemMetaCache>> replacedItemCache = new EnumMap<>(Material.class);
44-
private BukkitTask cleanTask;
44+
private PsrTask cleanTask;
4545

4646
public static class ItemMetaCache {
4747

@@ -105,7 +105,7 @@ public static HashMap<File, CommentYamlConfiguration> loadReplacesFiles(@Nonnull
105105
return loaded;
106106
}
107107

108-
public BukkitTask getCleanTask() {
108+
public PsrTask getCleanTask() {
109109
return cleanTask;
110110
}
111111

@@ -119,7 +119,7 @@ public void registerTask() {
119119
ProtocolStringReplacer instance = ProtocolStringReplacer.getInstance();
120120
long cleanAccessInterval = instance.getConfigManager().cleanAccessInterval;
121121
long cleanTaskInterval = instance.getConfigManager().cleanTaskInterval;
122-
cleanTask = Bukkit.getScheduler().runTaskTimerAsynchronously(instance, () -> {
122+
cleanTask = PsrScheduler.runTaskTimerAsynchronously(() -> {
123123
long currentTime = System.currentTimeMillis();
124124
int purged = 0;
125125

@@ -141,9 +141,9 @@ public void registerTask() {
141141

142142
}
143143
if (purged != 0) {
144-
int finalPurged = purged;
145-
Bukkit.getScheduler().runTask(instance, () -> ProtocolStringReplacer.info(PsrLocalization.getLocaledMessage("Console-Sender.Messages.Schedule.Purging-Item-Cache",
146-
String.valueOf(finalPurged))));
144+
ProtocolStringReplacer.info(
145+
PsrLocalization.getLocaledMessage("Console-Sender.Messages.Schedule.Purging-Item-Cache",
146+
String.valueOf(purged)));
147147
}
148148
}, 0L, cleanTaskInterval);
149149
}

0 commit comments

Comments
 (0)