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:
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
Reference in New Issue
Block a user