Update to java 21, 1.21 with cosmso

This commit is contained in:
2025-06-28 03:33:39 +02:00
parent ffd67eada8
commit ff4fb6c1ae
18 changed files with 294 additions and 200 deletions
@@ -49,7 +49,7 @@ public class CommandManager implements CommandExecutor, TabExecutor {
subCommand = getSubCommand(args[0]);
if (!commandSender.hasPermission(subCommand.getPermission())) {
commandSender.sendMiniMessage(MessagesConfig.NO_PERMISSION, null);
commandSender.sendRichMessage(MessagesConfig.NO_PERMISSION);
return true;
}
@@ -86,4 +86,4 @@ public class CommandManager implements CommandExecutor, TabExecutor {
.findFirst()
.orElse(null);
}
}
}
@@ -24,13 +24,13 @@ public class CommandCreateScruff extends SubCommand {
@Override
public boolean onCommand(CommandSender commandSender, String[] args) {
if (args.length != 7) {
commandSender.sendMiniMessage(getHelpMessage(), null);
commandSender.sendRichMessage(getHelpMessage());
return true;
}
World world = Bukkit.getServer().getWorld(args[6]);
if (world == null) {
commandSender.sendMiniMessage(getHelpMessage(), null);
commandSender.sendRichMessage(getHelpMessage());
return true;
}
Location location;
@@ -38,7 +38,7 @@ public class CommandCreateScruff extends SubCommand {
location = new Location(world, Double.parseDouble(args[1]), Double.parseDouble(args[2]), Double.parseDouble(args[3]),
Float.parseFloat(args[4]), Float.parseFloat(args[5]));
} catch (NumberFormatException exception) {
commandSender.sendMiniMessage("<red>Invalid arguments.</red>", null);
commandSender.sendRichMessage("<red>Invalid arguments.</red>");
return true;
}
Wolf wolf = (Wolf) world.spawnEntity(location, EntityType.WOLF, CreatureSpawnEvent.SpawnReason.CUSTOM);
@@ -55,7 +55,7 @@ public class CommandCreateScruff extends SubCommand {
UUID uuid = wolf.getUniqueId();
LocalConfig.setActiveNPC(uuid);
commandSender.sendMiniMessage("<green>Spawned Scruff</green>", null);
commandSender.sendRichMessage("<green>Spawned Scruff</green>");
return true;
}
@@ -21,34 +21,34 @@ public class CommandGetReward extends SubCommand {
if (args.length != 1)
return true;
if (!(commandSender instanceof Player player)) {
commandSender.sendMiniMessage(MessagesConfig.NO_CONSOLE, null);
commandSender.sendRichMessage(MessagesConfig.NO_CONSOLE);
return true;
}
Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId());
if (dailyQuest == null) {
player.sendMiniMessage("<red>You have no active quests?</red>", null);
player.sendRichMessage("<red>You have no active quests?</red>");
return true;
}
if (player.getNearbyEntities(5, 5, 5).stream()
.noneMatch(entity -> entity.getUniqueId().equals(LocalConfig.activeNPC))) {
player.sendMiniMessage(MessagesConfig.TOO_FAR_FROM_NPC, Placeholder.component("npc", MiniMessage.miniMessage().deserialize(Config.NPC_NAME)));
player.sendRichMessage(MessagesConfig.TOO_FAR_FROM_NPC, Placeholder.component("npc", MiniMessage.miniMessage().deserialize(Config.NPC_NAME)));
return true;
}
if (!dailyQuest.isDone()) {
player.sendMiniMessage(MessagesConfig.NOT_FINISHED_QUEST, null);
player.sendRichMessage(MessagesConfig.NOT_FINISHED_QUEST);
return true;
}
if (dailyQuest.isRewardReceived()) {
player.sendMiniMessage(MessagesConfig.REWARD_ALREADY_RECEIVED, null);
player.sendRichMessage(MessagesConfig.REWARD_ALREADY_RECEIVED);
return true;
}
for (String command : dailyQuest.getRewardCommand())
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), command.replaceAll("<player>", commandSender.getName()));
dailyQuest.setRewardReceived(true);
player.sendMiniMessage(MessagesConfig.REWARD_SENT, null);
player.sendRichMessage(MessagesConfig.REWARD_SENT);
return true;
}
@@ -20,12 +20,12 @@ public class CommandHelp extends SubCommand {
@Override
public boolean onCommand(CommandSender commandSender, String[] args) {
commandSender.sendMiniMessage(MessagesConfig.HELP_MESSAGE_WRAPPER.replaceAll("<commands>", commandManager
commandSender.sendRichMessage(MessagesConfig.HELP_MESSAGE_WRAPPER.replaceAll("<commands>", commandManager
.getSubCommands().stream()
.filter(SubCommand::shouldTabComplete)
.filter(subCommand -> commandSender.hasPermission(subCommand.getPermission()))
.map(SubCommand::getHelpMessage)
.collect(Collectors.joining("\n"))), null);
.collect(Collectors.joining("\n"))));
return true;
}
@@ -21,20 +21,20 @@ public class CommandProgress extends SubCommand {
@Override
public boolean onCommand(CommandSender commandSender, String[] args) {
if (!(commandSender instanceof Player player)) {
commandSender.sendMiniMessage(MessagesConfig.NO_CONSOLE, null);
commandSender.sendRichMessage(MessagesConfig.NO_CONSOLE);
return true;
}
if (!player.hasPlayedBefore()) {
commandSender.sendMiniMessage(getHelpMessage(), null);
commandSender.sendRichMessage(getHelpMessage());
return true;
}
Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId());
if (dailyQuest == null) {
player.sendMiniMessage("<red>You have no active quests.</red>", null);
player.sendRichMessage("<red>You have no active quests.</red>");
return true;
}
if (dailyQuest.isDone()) {
player.sendMiniMessage("<green>You already completed the daily quest.</green>", null);
player.sendRichMessage("<green>You already completed the daily quest.</green>");
return true;
}
final UUID uniqueId = player.getUniqueId();
@@ -14,26 +14,26 @@ public class CommandReRoll extends SubCommand {
@Override
public boolean onCommand(CommandSender commandSender, String[] args) {
if (!(commandSender instanceof Player player)) {
commandSender.sendMiniMessage(MessagesConfig.NO_CONSOLE, null);
commandSender.sendRichMessage(MessagesConfig.NO_CONSOLE);
return true;
}
if (player.hasPermission("aquest.reroll.on-cooldown")) {
commandSender.sendMiniMessage(MessagesConfig.NO_RE_ROLL_YET, null);
commandSender.sendRichMessage(MessagesConfig.NO_RE_ROLL_YET);
return true;
}
Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId());
if (dailyQuest == null) {
commandSender.sendMiniMessage(MessagesConfig.WAIT_FOR_QUEST, null);
commandSender.sendRichMessage(MessagesConfig.WAIT_FOR_QUEST);
return true;
}
if (dailyQuest.isDone()) {
commandSender.sendMiniMessage(MessagesConfig.QUEST_ALREADY_FINISHED, null);
commandSender.sendRichMessage(MessagesConfig.QUEST_ALREADY_FINISHED);
return true;
}
Quest.createDailyQuest(player);
commandSender.sendMiniMessage(MessagesConfig.QUEST_RE_ROLLED, null);
commandSender.sendRichMessage(MessagesConfig.QUEST_RE_ROLLED);
ConsoleCommandSender consoleSender = Bukkit.getConsoleSender();
Bukkit.dispatchCommand(consoleSender, String.format("lp user %s permission settemp aquest.reroll.on-cooldown true 7d", player.getName()));
return true;
@@ -19,7 +19,7 @@ public class CommandReload extends SubCommand {
@Override
public boolean onCommand(CommandSender commandSender, String[] args) {
plugin.reloadConfigs();
commandSender.sendMiniMessage("<green>Reloaded AltitudeQuests config.</green>", null);
commandSender.sendRichMessage("<green>Reloaded AltitudeQuests config.</green>");
return true;
}
@@ -21,22 +21,22 @@ public class CommandSetQuest extends SubCommand {
@Override
public boolean onCommand(CommandSender commandSender, String[] args) {
if (args.length != 4) {
commandSender.sendMiniMessage(getHelpMessage(), null);
commandSender.sendRichMessage(getHelpMessage());
return true;
}
Player player = Bukkit.getServer().getPlayer(args[1]);
if (player == null || !player.hasPlayedBefore()) {
commandSender.sendMiniMessage(getHelpMessage(), null);
commandSender.sendRichMessage(getHelpMessage());
return true;
}
new BukkitRunnable() {
@Override
public void run() {
if (!Quest.loadDailyQuest(args[2], args[3], 0, 0, player.getUniqueId(), -1, false))
commandSender.sendMiniMessage("<red>Unable to create quest <quest> of variant <variant>.</red>",
commandSender.sendRichMessage("<red>Unable to create quest <quest> of variant <variant>.</red>",
TagResolver.resolver(Placeholder.parsed("quest", args[2]),
Placeholder.parsed("variant", args[3])));
commandSender.sendMiniMessage("<green>Created quest <quest> of variant <variant>.</green>",
commandSender.sendRichMessage("<green>Created quest <quest> of variant <variant>.</green>",
TagResolver.resolver(Placeholder.parsed("quest", args[2]),
Placeholder.parsed("variant", args[3])));
}
@@ -20,22 +20,22 @@ public class CommandTurnIn extends SubCommand {
if (args.length != 1)
return true;
if (!(commandSender instanceof Player player)) {
commandSender.sendMiniMessage(MessagesConfig.NO_CONSOLE, null);
commandSender.sendRichMessage(MessagesConfig.NO_CONSOLE);
return true;
}
Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId());
if (dailyQuest == null || dailyQuest.isDone()) {
player.sendMiniMessage(MessagesConfig.DAILY_ALREADY_DONE, null);
player.sendRichMessage(MessagesConfig.DAILY_ALREADY_DONE);
return true;
}
if (player.getNearbyEntities(5, 5, 5).stream()
.noneMatch(entity -> entity.getUniqueId().equals(LocalConfig.activeNPC))) {
player.sendMiniMessage(MessagesConfig.TOO_FAR_FROM_NPC, Placeholder.component("npc", MiniMessage.miniMessage().deserialize(Config.NPC_NAME)));
player.sendRichMessage(MessagesConfig.TOO_FAR_FROM_NPC, Placeholder.component("npc", MiniMessage.miniMessage().deserialize(Config.NPC_NAME)));
return true;
}
dailyQuest.turnIn(player);
if (dailyQuest.isDone())
player.sendMiniMessage(MessagesConfig.FINISHED_QUEST, Placeholder.component("player", player.name()));
player.sendRichMessage(MessagesConfig.FINISHED_QUEST, Placeholder.component("player", player.name()));
BookOpener.openBook(player);
return true;
}
@@ -7,7 +7,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerFishEvent;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Item;
import org.bukkit.inventory.ItemStack;
@@ -15,8 +14,8 @@ public class ItemCaught implements Listener {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onItemCaught(PlayerFishEvent event) {
if (event.getCaught() == null || event.getCaught().getType() != EntityType.DROPPED_ITEM) {
return; //Only if an item was caught do further processing. Otherwise error might come up later
if (event.getCaught() == null) {
return;
}
Player player = event.getPlayer();
Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId());
@@ -1,13 +1,18 @@
package com.alttd.altitudequests.events;
import com.alttd.altitudequests.AQuest;
import com.alttd.altitudequests.config.Config;
import com.alttd.altitudequests.objects.Quest;
import com.alttd.altitudequests.util.Logger;
import com.alttd.datalock.DataLockAPI;
import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey;
import org.bukkit.boss.KeyedBossBar;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;
import javax.annotation.Nullable;
import java.util.UUID;
public class LogoutEvent implements Listener {
@@ -17,6 +22,20 @@ public class LogoutEvent implements Listener {
UUID uuid = event.getPlayer().getUniqueId();
if (Config.DEBUG)
Logger.info("Syncing %", event.getPlayer().getName());
removeBossBar(NamespacedKey.fromString(uuid + "-part-" + "1", AQuest.getInstance()));
removeBossBar(NamespacedKey.fromString(uuid + "-part-" + "2", AQuest.getInstance()));
Quest.unloadUser(uuid).thenAccept(result -> DataLockAPI.get().tryUnlock("aquest:player-data", uuid.toString()));
}
private void removeBossBar(@Nullable NamespacedKey namespacedKey) {
if (namespacedKey == null) {
return;
}
KeyedBossBar bossBar = Bukkit.getBossBar(namespacedKey);
if (bossBar == null) {
return;
}
Bukkit.removeBossBar(namespacedKey);
}
}
@@ -93,8 +93,8 @@ public abstract class Quest {
this.amount = variant.calculateAmount(loadQuestsDoneThisMonth(uuid));
else
this.amount = amount;
this.barProgressOne = new AutoHideBossBar(player, variant, "1", "Step One Progress", BarColor.GREEN);
this.barProgressTwo = new AutoHideBossBar(player, variant, "2", "Step Two Progress", BarColor.PURPLE);
this.barProgressOne = new AutoHideBossBar(player, "1", "Step One Progress", BarColor.GREEN);
this.barProgressTwo = new AutoHideBossBar(player, "2", "Step Two Progress", BarColor.PURPLE);
}
private int loadQuestsDoneThisMonth(UUID uuid) {
@@ -116,7 +116,7 @@ public abstract class Quest {
public static void createDailyQuest(Player player) {
if (possibleQuests.isEmpty()) {
player.sendMiniMessage("<red>Unable to create quest, no quests in config</red>", null);
player.sendRichMessage("<red>Unable to create quest, no quests in config</red>");
return;
}
@@ -126,11 +126,11 @@ public abstract class Quest {
putDailyQuest(player.getUniqueId(), constructor.newInstance(player));
} catch (InvocationTargetException | IllegalAccessException | InstantiationException |
NoSuchMethodException e) {
player.sendMiniMessage("<red>Unable to create quest, contact an admin</red>", null);
player.sendRichMessage("<red>Unable to create quest, contact an admin</red>");
Logger.throwing(Quest.class.getName(), "createDailyQuest", e);
Logger.severe("% does not have a constructor with a Player input or has improper access.", questClass.getName());
} catch (Exception e) {
player.sendMiniMessage("<red>Unable to create quest, contact an admin</red>", null);
player.sendRichMessage("<red>Unable to create quest, contact an admin</red>");
Logger.throwing(Quest.class.getName(), "createDailyQuest", e);
Logger.severe("% could not be created due to invalid namespace key or variant.", questClass.getName());
}
@@ -2,17 +2,18 @@ package com.alttd.altitudequests.util;
import com.alttd.altitudequests.AQuest;
import com.alttd.altitudequests.config.Config;
import com.alttd.altitudequests.objects.Variant;
import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey;
import org.bukkit.boss.BarColor;
import org.bukkit.boss.BarStyle;
import org.bukkit.boss.BossBar;
import org.bukkit.boss.KeyedBossBar;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.time.Instant;
import java.util.HashMap;
import java.util.Objects;
public class AutoHideBossBar {
@@ -20,17 +21,19 @@ public class AutoHideBossBar {
private final BossBar bossBar;
public AutoHideBossBar(Player player, Variant variant, String part, String title, BarColor barColor) throws Exception {
NamespacedKey namespacedKeyOne = NamespacedKey.fromString(player.getUniqueId() + variant.getInternalName().toLowerCase() + part, AQuest.getInstance());
public AutoHideBossBar(Player player, String part, String title, BarColor barColor) throws Exception {
NamespacedKey namespacedKeyOne = NamespacedKey.fromString(player.getUniqueId() + "-part-" + part, AQuest.getInstance());
if (namespacedKeyOne == null) {
Logger.warning("Unable to create nameSpacedKey with suffix % for quest for %", part, player.getName());
throw new Exception("Failed to create namespace key");
}
this.bossBar = Bukkit.createBossBar(
KeyedBossBar retrievedBossBar = Bukkit.getBossBar(namespacedKeyOne);
this.bossBar = Objects.requireNonNullElseGet(retrievedBossBar, () -> Bukkit.createBossBar(
namespacedKeyOne,
title,
barColor,
BarStyle.SOLID);
BarStyle.SOLID));
bossBar.setVisible(false);
bossBar.addPlayer(player);
}