9
0
mirror of https://github.com/Xiao-MoMi/Custom-Fishing.git synced 2025-12-19 15:09:24 +00:00

Added Beauty Quest Integration

This commit is contained in:
XiaoMoMi
2025-02-24 19:54:42 +08:00
parent 761d19862a
commit d2c99c1c12
3 changed files with 87 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
package net.momirealms.customfishing.bukkit.integration.quest;
import fr.skytasul.quests.api.QuestsAPI;
import fr.skytasul.quests.api.comparison.ItemComparisonMap;
import fr.skytasul.quests.api.localization.Lang;
import fr.skytasul.quests.api.stages.StageController;
import fr.skytasul.quests.api.stages.StageDescriptionPlaceholdersContext;
import fr.skytasul.quests.api.stages.StageType;
import fr.skytasul.quests.api.stages.StageTypeRegistry;
import fr.skytasul.quests.api.stages.creation.StageCreationContext;
import fr.skytasul.quests.api.stages.types.AbstractItemStage;
import fr.skytasul.quests.api.utils.CountableObject;
import fr.skytasul.quests.api.utils.XMaterial;
import net.momirealms.customfishing.api.event.FishingLootSpawnEvent;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import static fr.skytasul.quests.api.gui.ItemUtils.item;
public class BeautyFishingQuest {
public static void register() {
StageTypeRegistry stages = QuestsAPI.getAPI().getStages();
stages.register(new StageType<>("CUSTOMFISHING", CustomFishingStage.class, "CustomFishing",
CustomFishingStage::deserialize, item(XMaterial.TROPICAL_FISH, "§bCustomFishing"), CustomFishingStage.Creator::new));
}
public static class CustomFishingStage extends AbstractItemStage implements Listener {
protected CustomFishingStage(@NotNull StageController controller, @NotNull List<@NotNull CountableObject<ItemStack>> objects, ItemComparisonMap comparisons) {
super(controller, objects, comparisons);
}
public CustomFishingStage(StageController controller, ConfigurationSection section) {
super(controller, section);
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onFish(FishingLootSpawnEvent e) {
if (e.getEntity() instanceof Item item) {
Player p = e.getPlayer();
event(p, item.getItemStack(), item.getItemStack().getAmount());
}
}
@Override
public @NotNull String getDefaultDescription(@NotNull StageDescriptionPlaceholdersContext context) {
return "CustomFishing Loots";
}
public static CustomFishingStage deserialize(ConfigurationSection section, StageController controller) {
return new CustomFishingStage(controller, section);
}
public static class Creator extends AbstractItemStage.Creator<CustomFishingStage> {
private static final ItemStack editFishesItem = item(XMaterial.FISHING_ROD, Lang.editFishes.toString());
public Creator(@NotNull StageCreationContext<CustomFishingStage> context) {
super(context);
}
@Override
protected @NotNull ItemStack getEditItem() {
return editFishesItem;
}
@Override
protected CustomFishingStage finishStage(@NotNull StageController controller, @NotNull List<CountableObject<ItemStack>> items, @NotNull ItemComparisonMap comparisons) {
return new CustomFishingStage(controller, items, comparisons);
}
}
}
}

View File

@@ -33,6 +33,7 @@ import net.momirealms.customfishing.bukkit.integration.papi.CompetitionPapi;
import net.momirealms.customfishing.bukkit.integration.papi.CustomFishingPapi; import net.momirealms.customfishing.bukkit.integration.papi.CustomFishingPapi;
import net.momirealms.customfishing.bukkit.integration.papi.StatisticsPapi; import net.momirealms.customfishing.bukkit.integration.papi.StatisticsPapi;
import net.momirealms.customfishing.bukkit.integration.quest.BattlePassQuest; import net.momirealms.customfishing.bukkit.integration.quest.BattlePassQuest;
import net.momirealms.customfishing.bukkit.integration.quest.BeautyFishingQuest;
import net.momirealms.customfishing.bukkit.integration.quest.BetonQuestQuest; import net.momirealms.customfishing.bukkit.integration.quest.BetonQuestQuest;
import net.momirealms.customfishing.bukkit.integration.quest.ClueScrollsQuest; import net.momirealms.customfishing.bukkit.integration.quest.ClueScrollsQuest;
import net.momirealms.customfishing.bukkit.integration.region.WorldGuardRegion; import net.momirealms.customfishing.bukkit.integration.region.WorldGuardRegion;
@@ -211,6 +212,9 @@ public class BukkitIntegrationManager implements IntegrationManager {
if (isHooked("ShopGUIPlus")) { if (isHooked("ShopGUIPlus")) {
ShopGUIHook.register(); ShopGUIHook.register();
} }
if (isHooked("BeautyQuests")) {
BeautyFishingQuest.register();
}
if (Bukkit.getPluginManager().getPlugin("Geyser-Spigot") != null) { if (Bukkit.getPluginManager().getPlugin("Geyser-Spigot") != null) {
this.hasGeyser = true; this.hasGeyser = true;
} }

View File

@@ -235,6 +235,9 @@ public class BukkitRequirementManager implements RequirementManager<Player> {
return true; return true;
} }
} }
if (!BukkitIntegrationManager.instance().hasFloodGate() && !BukkitIntegrationManager.instance().hasGeyser() && !arg) {
return true;
}
if (runActions) ActionManager.trigger(context, actions); if (runActions) ActionManager.trigger(context, actions);
return false; return false;
}), "is-bedrock-player"); }), "is-bedrock-player");