Better compatibility with other fishing plugins

Fixes #4428
This commit is contained in:
nossr50
2021-03-05 15:13:14 -08:00
parent 31076e6ba9
commit 92efd59760
3 changed files with 55 additions and 2 deletions

View File

@ -0,0 +1,41 @@
package com.gmail.nossr50.events;
import org.bukkit.entity.Item;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
public class McMMOReplaceVanillaTreasureEvent extends Event {
private @NotNull ItemStack replacementItemStack;
private final @NotNull Item originalItem;
public McMMOReplaceVanillaTreasureEvent(@NotNull Item originalItem, @NotNull ItemStack replacementItemStack) {
this.originalItem = originalItem;
this.replacementItemStack = replacementItemStack;
}
/** Rest of file is required boilerplate for custom events **/
private static final @NotNull HandlerList handlers = new HandlerList();
@Override
public @NotNull HandlerList getHandlers() {
return handlers;
}
public static @NotNull HandlerList getHandlerList() {
return handlers;
}
public @NotNull ItemStack getReplacementItemStack() {
return replacementItemStack;
}
public void setReplacementItemStack(@NotNull ItemStack replacementItemStack) {
this.replacementItemStack = replacementItemStack;
}
public @NotNull Item getOriginalItem() {
return originalItem;
}
}

View File

@ -8,6 +8,7 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.datatypes.skills.subskills.taming.CallOfTheWildType;
import com.gmail.nossr50.events.McMMOReplaceVanillaTreasureEvent;
import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
@ -291,12 +292,20 @@ public class PlayerListener implements Listener {
if(event.getCaught() != null) {
Item fishingCatch = (Item) event.getCaught();
if (Config.getInstance(). getFishingOverrideTreasures() &&
if (Config.getInstance().getFishingOverrideTreasures() &&
fishingCatch.getItemStack().getType() != Material.SALMON &&
fishingCatch.getItemStack().getType() != Material.COD &&
fishingCatch.getItemStack().getType() != Material.TROPICAL_FISH &&
fishingCatch.getItemStack().getType() != Material.PUFFERFISH) {
fishingCatch.setItemStack(new ItemStack(Material.SALMON, 1));
ItemStack replacementCatch = new ItemStack(Material.AIR);
McMMOReplaceVanillaTreasureEvent replaceVanillaTreasureEvent = new McMMOReplaceVanillaTreasureEvent(fishingCatch, replacementCatch);
Bukkit.getPluginManager().callEvent(replaceVanillaTreasureEvent);
//Replace
replacementCatch = replaceVanillaTreasureEvent.getReplacementItemStack();
fishingCatch.setItemStack(replacementCatch);
}
if (Permissions.vanillaXpBoost(player, PrimarySkillType.FISHING)) {