Remove CollectableHologramLine

This commit is contained in:
filoghost 2021-09-26 14:30:43 +02:00
parent 2b062f35bf
commit ce437d21d3
4 changed files with 35 additions and 67 deletions

View File

@ -1,33 +0,0 @@
/*
* Copyright (C) filoghost and contributors
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package me.filoghost.holographicdisplays.api.hologram.line;
import org.jetbrains.annotations.Nullable;
/**
* A hologram line that can be "picked up" by a nearby player.
*
* @since 1
*/
public interface CollectableHologramLine extends HologramLine {
/**
* Sets the pickup listener.
*
* @param pickupListener the new pickup listener, null to unset
* @since 1
*/
void setPickupListener(@Nullable PickupListener pickupListener);
/**
* Returns the current pickup listener.
*
* @return the current pickup listener, null if not present
* @since 1
*/
@Nullable PickupListener getPickupListener();
}

View File

@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable;
/**
* @since 1
*/
public interface ItemHologramLine extends CollectableHologramLine, ClickableHologramLine {
public interface ItemHologramLine extends ClickableHologramLine {
/**
* Returns the ItemStack of this ItemLine.
@ -29,4 +29,20 @@ public interface ItemHologramLine extends CollectableHologramLine, ClickableHolo
*/
void setItemStack(@Nullable ItemStack itemStack);
/**
* Sets the pickup listener.
*
* @param pickupListener the new pickup listener, null to unset
* @since 1
*/
void setPickupListener(@Nullable PickupListener pickupListener);
/**
* Returns the current pickup listener.
*
* @return the current pickup listener, null if not present
* @since 1
*/
@Nullable PickupListener getPickupListener();
}

View File

@ -1,32 +0,0 @@
/*
* Copyright (C) filoghost and contributors
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package me.filoghost.holographicdisplays.plugin.api.current;
import me.filoghost.holographicdisplays.api.hologram.line.CollectableHologramLine;
import me.filoghost.holographicdisplays.api.hologram.line.PickupListener;
import me.filoghost.holographicdisplays.plugin.hologram.base.PickupCallbackProvider;
import org.bukkit.entity.Player;
interface APICollectableHologramLine extends CollectableHologramLine, APIHologramLine, PickupCallbackProvider {
@Override
default boolean hasPickupCallback() {
return getPickupListener() != null;
}
@Override
default void invokePickupCallback(Player player) {
try {
PickupListener pickupListener = getPickupListener();
if (pickupListener != null) {
pickupListener.onPickup(new SimpleHologramLinePickupEvent(player));
}
} catch (Throwable t) {
logPickupCallbackException(getCreatorPlugin(), player, t);
}
}
}

View File

@ -9,10 +9,11 @@ import me.filoghost.holographicdisplays.api.hologram.line.ClickListener;
import me.filoghost.holographicdisplays.api.hologram.line.ItemHologramLine;
import me.filoghost.holographicdisplays.api.hologram.line.PickupListener;
import me.filoghost.holographicdisplays.plugin.hologram.base.BaseItemHologramLine;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.Nullable;
class APIItemHologramLine extends BaseItemHologramLine implements ItemHologramLine, APIClickableHologramLine, APICollectableHologramLine {
class APIItemHologramLine extends BaseItemHologramLine implements ItemHologramLine, APIClickableHologramLine {
private PickupListener pickupListener;
private ClickListener clickListener;
@ -45,4 +46,20 @@ class APIItemHologramLine extends BaseItemHologramLine implements ItemHologramLi
return clickListener;
}
@Override
public boolean hasPickupCallback() {
return pickupListener != null;
}
@Override
public void invokePickupCallback(Player player) {
try {
if (pickupListener != null) {
pickupListener.onPickup(new SimpleHologramLinePickupEvent(player));
}
} catch (Throwable t) {
logPickupCallbackException(getCreatorPlugin(), player, t);
}
}
}