Skip to content

Commit 3b083ed

Browse files
authored
GH-594 Add Folia Support (#955)
* Unrelated changes * Support folia * Fix hasRequest performance issue
1 parent 9deba5e commit 3b083ed

33 files changed

+140
-81
lines changed

buildSrc/src/main/kotlin/Versions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ object Versions {
2222
const val ORMLITE = "6.1"
2323
const val HIKARI_CP = "6.3.0"
2424

25-
const val LITE_COMMANDS = "3.9.7"
25+
const val LITE_COMMANDS = "3.10.2"
2626
const val LITE_SKULL_API = "1.3.0"
2727

2828
const val GUAVA = "33.4.8-jre"

eternalcore-core/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ eternalShadow {
5252
// EternalCode Commons & GitCheck
5353
library("com.eternalcode:eternalcode-commons-bukkit:${Versions.ETERNALCODE_COMMONS}")
5454
library("com.eternalcode:eternalcode-commons-adventure:${Versions.ETERNALCODE_COMMONS}")
55+
library("com.eternalcode:eternalcode-commons-folia:${Versions.ETERNALCODE_COMMONS}")
5556
library("com.eternalcode:gitcheck:${Versions.GIT_CHECK}")
5657
libraryRelocate(
5758
"com.eternalcode.commons",
@@ -76,6 +77,7 @@ eternalShadow {
7677
// command framework & skull library
7778
library("dev.rollczi:liteskullapi:${Versions.LITE_SKULL_API}")
7879
library("dev.rollczi:litecommands-bukkit:${Versions.LITE_COMMANDS}")
80+
library("dev.rollczi:litecommands-folia:${Versions.LITE_COMMANDS}")
7981
library("dev.rollczi:litecommands-adventure-platform:${Versions.LITE_COMMANDS}")
8082
libraryRelocate(
8183
"dev.rollczi.litecommands",

eternalcore-core/src/main/java/com/eternalcode/core/EternalCore.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,10 @@
3636

3737
class EternalCore {
3838

39-
private final EternalCoreEnvironment eternalCoreEnvironment;
4039
private final Publisher publisher;
4140

4241
public EternalCore(Plugin plugin) {
43-
this.eternalCoreEnvironment = new EternalCoreEnvironment(plugin.getLogger());
42+
EternalCoreEnvironment environment = new EternalCoreEnvironment(plugin.getLogger());
4443

4544
CompatibilityService compatibilityService = new CompatibilityService();
4645
BeanProcessor beanProcessor = BeanProcessorFactory.defaultProcessors(plugin);
@@ -87,7 +86,7 @@ public EternalCore(Plugin plugin) {
8786
this.publisher = beanFactory.getDependency(Publisher.class);
8887

8988
EternalCoreApiProvider.initialize(new EternalCoreApiImpl(beanFactory));
90-
this.eternalCoreEnvironment.initialize();
89+
environment.initialize();
9190
this.publisher.publish(new EternalInitializeEvent());
9291
}
9392

eternalcore-core/src/main/java/com/eternalcode/core/bridge/litecommand/LiteCommandsSetup.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import dev.rollczi.litecommands.annotations.LiteCommandsAnnotations;
1414
import dev.rollczi.litecommands.bukkit.LiteBukkitFactory;
1515
import dev.rollczi.litecommands.bukkit.LiteBukkitMessages;
16+
import dev.rollczi.litecommands.folia.FoliaExtension;
1617
import net.kyori.adventure.platform.AudienceProvider;
1718
import net.kyori.adventure.text.minimessage.MiniMessage;
1819
import org.bukkit.Server;
@@ -32,6 +33,7 @@ class LiteCommandsSetup {
3233
LiteCommandsAnnotations<CommandSender> liteCommandsAnnotations
3334
) {
3435
return LiteBukkitFactory.builder("eternalcore", plugin, server)
36+
.extension(new FoliaExtension(plugin))
3537
.commands(liteCommandsAnnotations)
3638
.message(LiteBukkitMessages.WORLD_NOT_EXIST, (invocation, world) -> noticeService.create()
3739
.sender(invocation.sender())

eternalcore-core/src/main/java/com/eternalcode/core/bridge/litecommand/configurator/CommandConfigurator.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
import dev.rollczi.litecommands.command.builder.CommandBuilder;
1010
import dev.rollczi.litecommands.editor.Editor;
1111
import dev.rollczi.litecommands.meta.Meta;
12+
import dev.rollczi.litecommands.permission.PermissionSet;
13+
import java.util.List;
14+
import java.util.function.UnaryOperator;
1215
import org.bukkit.command.CommandSender;
1316

1417
@LiteCommandEditor
@@ -34,16 +37,23 @@ public CommandBuilder<CommandSender> edit(CommandBuilder<CommandSender> context)
3437

3538
context = context.editChild(child, editor -> editor.name(subCommand.name())
3639
.aliases(subCommand.aliases())
37-
.applyMeta(meta -> meta.list(Meta.PERMISSIONS, permissions -> permissions.addAll(command.permissions())))
40+
.applyMeta(editPermissions(command.permissions()))
3841
.enabled(subCommand.isEnabled())
3942
);
4043
}
4144

4245
return context
4346
.name(command.name())
4447
.aliases(command.aliases())
45-
.applyMeta(meta -> meta.list(Meta.PERMISSIONS, permissions -> permissions.addAll(command.permissions())))
48+
.applyMeta(editPermissions(command.permissions()))
4649
.enabled(command.isEnabled());
4750
}
4851

52+
private static UnaryOperator<Meta> editPermissions(List<String> permissions) {
53+
return meta -> meta.listEditor(Meta.PERMISSIONS)
54+
.clear()
55+
.add(new PermissionSet(permissions))
56+
.apply();
57+
}
58+
4959
}

eternalcore-core/src/main/java/com/eternalcode/core/bridge/litecommand/handler/InvalidUsageHandlerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
import org.bukkit.command.CommandSender;
1515

1616
@LiteHandler(InvalidUsage.class)
17-
public class InvalidUsageHandlerImpl implements InvalidUsageHandler<CommandSender> {
17+
class InvalidUsageHandlerImpl implements InvalidUsageHandler<CommandSender> {
1818

1919
private static final Placeholders<String> SCHEME = Placeholders.of("{USAGE}", scheme -> scheme);
2020

2121
private final ViewerService viewerService;
2222
private final NoticeService noticeService;
2323

2424
@Inject
25-
public InvalidUsageHandlerImpl(ViewerService viewerService, NoticeService noticeService) {
25+
InvalidUsageHandlerImpl(ViewerService viewerService, NoticeService noticeService) {
2626
this.viewerService = viewerService;
2727
this.noticeService = noticeService;
2828
}

eternalcore-core/src/main/java/com/eternalcode/core/bridge/litecommand/handler/NoticeBroadcastHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import org.bukkit.command.CommandSender;
99

1010
@LiteHandler(NoticeBroadcast.class)
11-
public class NoticeBroadcastHandler implements ResultHandler<CommandSender, NoticeBroadcast> {
11+
class NoticeBroadcastHandler implements ResultHandler<CommandSender, NoticeBroadcast> {
1212

1313
@Override
1414
public void handle(Invocation<CommandSender> invocation, NoticeBroadcast result, ResultHandlerChain<CommandSender> chain) {

eternalcore-core/src/main/java/com/eternalcode/core/bridge/litecommand/handler/NoticeHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.bukkit.command.CommandSender;
1313

1414
@LiteHandler(Notice.class)
15-
public class NoticeHandler implements ResultHandler<CommandSender, Notice> {
15+
class NoticeHandler implements ResultHandler<CommandSender, Notice> {
1616

1717
private final ViewerService viewerService;
1818
private final NoticeService noticeService;

eternalcore-core/src/main/java/com/eternalcode/core/bridge/litecommand/handler/PermissionMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.bukkit.command.CommandSender;
1313

1414
@LiteHandler(MissingPermissions.class)
15-
public class PermissionMessage implements MissingPermissionsHandler<CommandSender> {
15+
class PermissionMessage implements MissingPermissionsHandler<CommandSender> {
1616

1717
private final ViewerService viewerService;
1818
private final NoticeService noticeService;

eternalcore-core/src/main/java/com/eternalcode/core/feature/catboy/CatboyServiceImpl.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.eternalcode.core.feature.catboy;
22

3+
import com.eternalcode.commons.bukkit.scheduler.MinecraftScheduler;
34
import com.eternalcode.core.event.EventCaller;
45
import com.eternalcode.core.feature.catboy.event.CatboyChangeTypeEvent;
56
import com.eternalcode.core.feature.catboy.event.CatboySwitchEvent;
@@ -23,16 +24,19 @@ class CatboyServiceImpl implements CatboyService {
2324

2425
private final CatBoyEntityService catBoyEntityService;
2526
private final CatBoySettings catBoySettings;
27+
private final MinecraftScheduler scheduler;
2628

2729
@Inject
2830
CatboyServiceImpl(
2931
EventCaller eventCaller,
3032
CatBoyEntityService catBoyEntityService,
31-
CatBoySettings catBoySettings
33+
CatBoySettings catBoySettings,
34+
MinecraftScheduler scheduler
3235
) {
3336
this.eventCaller = eventCaller;
3437
this.catBoyEntityService = catBoyEntityService;
3538
this.catBoySettings = catBoySettings;
39+
this.scheduler = scheduler;
3640
}
3741

3842
@Override
@@ -43,17 +47,16 @@ public void markAsCatboy(Player player, Cat.Type type) {
4347
Cat cat = this.catBoyEntityService.createCatboyEntity(player, type);
4448
player.addPassenger(cat);
4549
player.setWalkSpeed(this.catBoySettings.getCatboyWalkSpeed());
46-
4750
this.eventCaller.callEvent(new CatboySwitchEvent(player, true));
4851
}
4952

5053
@Override
5154
public void unmarkAsCatboy(Player player) {
5255
this.catboys.remove(player.getUniqueId());
56+
5357
player.getPassengers().forEach(entity -> entity.remove());
5458
player.getPassengers().clear();
5559
player.setWalkSpeed(DEFAULT_WALK_SPEED);
56-
5760
this.eventCaller.callEvent(new CatboySwitchEvent(player, false));
5861
}
5962

0 commit comments

Comments
 (0)