Untitled
Anonymous
plain_text
04/04/2026 10:14 PM
5.5 KB
17
Indexable
package pl.chunklock.core.command.impl;
import java.util.Optional;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import pl.chunklock.core.CorePlugin;
import pl.chunklock.core.command.VirtualExecutorServiceProvider;
import pl.chunklock.core.command.impl.admin.ChunkLockAdminCommand;
import pl.chunklock.core.command.impl.player.ChunkLockAchievementsCommand;
import pl.chunklock.core.command.impl.player.ChunkLockCreateCommand;
import pl.chunklock.core.command.impl.player.ChunkLockDeleteWarpCommand;
import pl.chunklock.core.command.impl.player.ChunkLockDepositCommand;
import pl.chunklock.core.command.impl.player.ChunkLockFriendCommand;
import pl.chunklock.core.command.impl.player.ChunkLockHelpCommand;
import pl.chunklock.core.command.impl.player.ChunkLockInfoCommand;
import pl.chunklock.core.command.impl.player.ChunkLockListCommand;
import pl.chunklock.core.command.impl.player.ChunkLockPointsCommand;
import pl.chunklock.core.command.impl.player.ChunkLockQuestsCommand;
import pl.chunklock.core.command.impl.player.ChunkLockReviewCommand;
import pl.chunklock.core.command.impl.player.ChunkLockSetSpawnCommand;
import pl.chunklock.core.command.impl.player.ChunkLockSetWarpCommand;
import pl.chunklock.core.command.impl.player.ChunkLockSpawnCommand;
import pl.chunklock.core.command.impl.player.ChunkLockTopCommand;
import pl.chunklock.core.command.impl.player.ChunkLockVisitCommand;
import pl.chunklock.core.command.impl.player.ChunkLockWarpCommand;
import pl.chunklock.core.database.entity.impl.Island;
import pl.chunklock.core.database.entity.impl.IslandMember;
import pl.chunklock.core.gui.chunk.ChunkPanelGui;
import pl.chunklock.core.island.IslandContextResolver;
import pl.chunklock.core.island.IslandManager;
import studio.mevera.imperat.BukkitCommandSource;
import studio.mevera.imperat.annotations.types.Async;
import studio.mevera.imperat.annotations.types.Dependency;
import studio.mevera.imperat.annotations.types.Execute;
import studio.mevera.imperat.annotations.types.ExternalSubCommand;
import studio.mevera.imperat.annotations.types.Permission;
import studio.mevera.imperat.annotations.types.RootCommand;
@RootCommand({"chunklock", "chunk", "cl"})
@ExternalSubCommand({ChunkLockAchievementsCommand.class, ChunkLockCreateCommand.class,
ChunkLockDepositCommand.class, ChunkLockDeleteWarpCommand.class, ChunkLockFriendCommand.class,
ChunkLockHelpCommand.class, ChunkLockInfoCommand.class, ChunkLockListCommand.class,
ChunkLockPointsCommand.class, ChunkLockQuestsCommand.class,
ChunkLockReviewCommand.class, ChunkLockSetSpawnCommand.class, ChunkLockSetWarpCommand.class,
ChunkLockSpawnCommand.class, ChunkLockTopCommand.class, ChunkLockVisitCommand.class,
ChunkLockWarpCommand.class, ChunkLockAdminCommand.class})
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
public final class ChunkLockCommand {
CorePlugin plugin;
ChunkPanelGui chunkPanelGui;
public ChunkLockCommand(CorePlugin plugin) {
this.plugin = plugin;
this.chunkPanelGui = new ChunkPanelGui(this.plugin);
}
@Async(value = VirtualExecutorServiceProvider.class)
@Execute
@Permission("chunklock.command.default")
public void defaultUsage(final BukkitCommandSource source) {
if (source.isConsole()) {
return;
}
final Player player = source.asPlayer();
final IslandManager islandManager = this.plugin.getIslandManager();
final Optional<Island> islandOpt = IslandContextResolver.resolve(islandManager, player);
if (islandOpt.isEmpty()) {
source.reply("&cNie posiadasz swojego chunka i nie stoisz na żadnym!");
return;
}
final Island island = islandOpt.get();
final Optional<IslandMember> islandMemberOpt = IslandContextResolver.resolveMember(
islandManager, player, island);
if (islandMemberOpt.isEmpty()) {
source.reply("&cNie jesteś członkiem tego chunka i nie masz do niego dostępu!");
return;
}
this.chunkPanelGui.open(player, islandMemberOpt.get(), island);
}
}Editor is loading...
Leave a Comment