Adapt LoChat for Minecraft 1.20.1 Paper

- Changed dependency from Folia API 1.21.4 to Paper API 1.20.1
- Updated plugin.yml: api-version to 1.20, folia-supported to false
- Replaced Folia-specific scheduler calls with FoliaUtil for compatibility
- Updated version to 1.5.5-1.20.1
- Fixed enum switch warning in ChatListener
- Removed unused imports
- All tests pass successfully
This commit is contained in:
loki5512344 2026-01-23 21:46:26 +01:00
parent 67b8b9e47c
commit 4f7b792633
7 changed files with 23 additions and 18 deletions

View file

@ -1,6 +1,7 @@
package com.loki.lochat.listeners;
import com.loki.lochat.LoChat;
import com.loki.lochat.gradient.util.FoliaUtil;
import com.loki.lochat.managers.AntiSpamManager;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.text.Component;
@ -30,10 +31,10 @@ public class ChatListener implements Listener {
Component originalMessage = event.message();
String plainMessage = PLAIN.serialize(originalMessage);
// Folia-safe
player.getScheduler().run(plugin, task -> {
// Paper/Folia-safe
FoliaUtil.runEntityTask(plugin, player, () -> {
processChat(player, originalMessage, plainMessage);
}, null);
});
}
private void processChat(Player player, Component message, String plainMessage) {
@ -125,6 +126,9 @@ public class ChatListener implements Listener {
);
return;
}
case ALLOWED -> {
// Сообщение прошло проверку, продолжаем
}
}
}

View file

@ -2,12 +2,12 @@ package com.loki.lochat.managers;
import com.loki.lochat.LoChat;
import com.loki.lochat.utils.ChatFormatter;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.scheduler.BukkitTask;
import java.io.File;
import java.util.*;
@ -18,7 +18,7 @@ public class AutoMessageManager {
private final LoChat plugin;
private final Random random = new Random();
private final AtomicInteger currentIndex = new AtomicInteger(0);
private ScheduledTask task;
private BukkitTask task;
private Map<String, List<String>> messages;
private List<String> messageOrder;
@ -108,9 +108,10 @@ public class AutoMessageManager {
int intervalSeconds = plugin.getConfigManager().getAutoMessagesInterval();
long intervalTicks = intervalSeconds * 20L;
task = plugin.getServer().getGlobalRegionScheduler().runAtFixedRate(
// Используем FoliaUtil для совместимости с Paper и Folia
task = Bukkit.getScheduler().runTaskTimer(
plugin,
scheduledTask -> broadcastNextMessage(),
this::broadcastNextMessage,
intervalTicks,
intervalTicks
);