mirror of
https://github.com/filoghost/HolographicDisplays.git
synced 2025-03-30 16:25:47 +02:00
Refactor hologram-related objects, move some to "core" module
This commit is contained in:
parent
f42ad75ca3
commit
dbfabc0e83
core/src/main/java/me/filoghost/holographicdisplays/core
nms
v1_10_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_10_R1
v1_11_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_11_R1
v1_12_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_12_R1
v1_13_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_13_R1
v1_13_r2/src/main/java/me/filoghost/holographicdisplays/nms/v1_13_R2
v1_14_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_14_R1
v1_15_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_15_R1
v1_16_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_16_R1
v1_16_r2/src/main/java/me/filoghost/holographicdisplays/nms/v1_16_R2
v1_16_r3/src/main/java/me/filoghost/holographicdisplays/nms/v1_16_R3
v1_8_r2/src/main/java/me/filoghost/holographicdisplays/nms/v1_8_R2
v1_8_r3/src/main/java/me/filoghost/holographicdisplays/nms/v1_8_R3
v1_9_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_9_R1
v1_9_r2/src/main/java/me/filoghost/holographicdisplays/nms/v1_9_R2
plugin/src/main/java/me/filoghost/holographicdisplays
@ -6,7 +6,7 @@
|
||||
package me.filoghost.holographicdisplays.core;
|
||||
|
||||
import me.filoghost.fcommons.logging.Log;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
|
||||
public class DebugLogger {
|
||||
|
||||
@ -47,8 +47,8 @@ public class DebugLogger {
|
||||
}
|
||||
}
|
||||
|
||||
public static void handleSpawnFail(HologramLine parentPiece) {
|
||||
warning("Couldn't spawn entity for this hologram: " + parentPiece.getParent().toString());
|
||||
public static void handleSpawnFail(BaseHologramLine parentPiece) {
|
||||
warning("Couldn't spawn entity for this hologram: " + parentPiece.getBaseParent().toString());
|
||||
}
|
||||
|
||||
public static void cannotSetPassenger(Throwable t) {
|
||||
|
@ -1,15 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) filoghost and contributors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.core.nms;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public interface ItemPickupManager {
|
||||
|
||||
void handleItemLinePickup(Player player, ItemLine itemLine);
|
||||
|
||||
}
|
@ -5,12 +5,12 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.core.nms;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public interface NMSManager {
|
||||
@ -18,11 +18,11 @@ public interface NMSManager {
|
||||
// A method to register all the custom entities of the plugin, it may fail.
|
||||
void setup() throws Exception;
|
||||
|
||||
NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece);
|
||||
NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece);
|
||||
|
||||
NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack);
|
||||
NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack);
|
||||
|
||||
NMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece);
|
||||
NMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z,BaseHologramLine parentPiece);
|
||||
|
||||
boolean isNMSEntityBase(org.bukkit.entity.Entity bukkitEntity);
|
||||
|
||||
|
@ -5,15 +5,15 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.core.nms.entity;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
|
||||
/**
|
||||
* An interface to represent a custom NMS entity being part of a hologram.
|
||||
*/
|
||||
public interface NMSEntityBase {
|
||||
|
||||
// Returns the linked CraftHologramLine, all the entities are part of a piece. Should never be null.
|
||||
HologramLine getHologramLine();
|
||||
// Returns the linked line, all the entities are part of a piece. Should never be null.
|
||||
BaseHologramLine getHologramLine();
|
||||
|
||||
// Sets the location through NMS.
|
||||
void setLocationNMS(double x, double y, double z);
|
||||
|
@ -3,41 +3,41 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.base;
|
||||
package me.filoghost.holographicdisplays.core.object.base;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.holographicdisplays.api.Hologram;
|
||||
import me.filoghost.holographicdisplays.api.VisibilityManager;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.disk.Configuration;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.object.HologramComponent;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public abstract class BaseHologram extends HologramComponent implements Hologram {
|
||||
public abstract class BaseHologram extends HologramComponent {
|
||||
|
||||
private final NMSManager nmsManager;
|
||||
private final VisibilityManager visibilityManager;
|
||||
private final long creationTimestamp;
|
||||
|
||||
private boolean allowPlaceholders;
|
||||
|
||||
private boolean deleted;
|
||||
|
||||
public BaseHologram(Location location, NMSManager nmsManager) {
|
||||
Preconditions.notNull(location, "location");
|
||||
this.setLocation(location);
|
||||
this.nmsManager = nmsManager;
|
||||
this.visibilityManager = new DefaultVisibilityManager(this);
|
||||
this.creationTimestamp = System.currentTimeMillis();
|
||||
this.allowPlaceholders = false;
|
||||
}
|
||||
|
||||
public abstract Plugin getOwner();
|
||||
|
||||
public abstract List<? extends SpawnableHologramLine> getLinesUnsafe();
|
||||
|
||||
@Override
|
||||
public abstract boolean isAllowPlaceholders();
|
||||
|
||||
public abstract boolean isVisibleTo(Player player);
|
||||
|
||||
protected abstract double getSpaceBetweenLines();
|
||||
|
||||
public abstract String toFormattedString();
|
||||
|
||||
public boolean isDeleted() {
|
||||
return deleted;
|
||||
}
|
||||
@ -49,36 +49,10 @@ public abstract class BaseHologram extends HologramComponent implements Hologram
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getCreationTimestamp() {
|
||||
return creationTimestamp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAllowPlaceholders(boolean allowPlaceholders) {
|
||||
if (this.allowPlaceholders == allowPlaceholders) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.allowPlaceholders = allowPlaceholders;
|
||||
refresh(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAllowPlaceholders() {
|
||||
return allowPlaceholders;
|
||||
}
|
||||
|
||||
public NMSManager getNMSManager() {
|
||||
return nmsManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getLine(int index) {
|
||||
return getLinesUnsafe().get(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void removeLine(int index) {
|
||||
checkState();
|
||||
|
||||
@ -86,15 +60,14 @@ public abstract class BaseHologram extends HologramComponent implements Hologram
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void removeLine(SpawnableHologramLine line) {
|
||||
public void removeLine(BaseHologramLine line) {
|
||||
checkState();
|
||||
|
||||
getLinesUnsafe().remove(line);
|
||||
line.despawn();
|
||||
refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void clearLines() {
|
||||
for (SpawnableHologramLine line : getLinesUnsafe()) {
|
||||
line.despawn();
|
||||
@ -102,19 +75,16 @@ public abstract class BaseHologram extends HologramComponent implements Hologram
|
||||
|
||||
getLinesUnsafe().clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public int size() {
|
||||
return getLinesUnsafe().size();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void teleport(Location location) {
|
||||
Preconditions.notNull(location, "location");
|
||||
teleport(location.getWorld(), location.getX(), location.getY(), location.getZ());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void teleport(World world, double x, double y, double z) {
|
||||
checkState();
|
||||
Preconditions.notNull(world, "world");
|
||||
@ -141,22 +111,6 @@ public abstract class BaseHologram extends HologramComponent implements Hologram
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getHeight() {
|
||||
if (getLinesUnsafe().isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
double height = 0.0;
|
||||
|
||||
for (SpawnableHologramLine line : getLinesUnsafe()) {
|
||||
height += line.getHeight();
|
||||
}
|
||||
|
||||
height += Configuration.spaceBetweenLines * (getLinesUnsafe().size() - 1);
|
||||
return height;
|
||||
}
|
||||
|
||||
/*
|
||||
* When spawning at a location, the top part of the first line should be exactly on that location.
|
||||
* The second line is below the first, and so on.
|
||||
@ -169,7 +123,7 @@ public abstract class BaseHologram extends HologramComponent implements Hologram
|
||||
|
||||
currentLineY -= line.getHeight();
|
||||
if (i > 0) {
|
||||
currentLineY -= Configuration.spaceBetweenLines;
|
||||
currentLineY -= getSpaceBetweenLines();
|
||||
}
|
||||
|
||||
if (forceRespawn) {
|
||||
@ -185,11 +139,6 @@ public abstract class BaseHologram extends HologramComponent implements Hologram
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public VisibilityManager getVisibilityManager() {
|
||||
return visibilityManager;
|
||||
}
|
||||
|
||||
protected void checkState() {
|
||||
Preconditions.checkState(!deleted, "hologram already deleted");
|
||||
}
|
@ -3,11 +3,10 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.base;
|
||||
package me.filoghost.holographicdisplays.core.object.base;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.object.HologramComponent;
|
||||
import org.bukkit.World;
|
||||
|
||||
public abstract class BaseHologramLine extends HologramComponent implements SpawnableHologramLine {
|
||||
@ -21,15 +20,14 @@ public abstract class BaseHologramLine extends HologramComponent implements Spaw
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
public final BaseHologram getParent() {
|
||||
public final BaseHologram getBaseParent() {
|
||||
return parent;
|
||||
}
|
||||
|
||||
protected final NMSManager getNMSManager() {
|
||||
return parent.getNMSManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public final void removeLine() {
|
||||
parent.removeLine(this);
|
||||
}
|
@ -3,37 +3,57 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.base;
|
||||
package me.filoghost.holographicdisplays.core.object.base;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.logging.Log;
|
||||
import me.filoghost.holographicdisplays.api.handler.PickupHandler;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public class BaseItemLine extends BaseTouchableLine implements ItemLine {
|
||||
public abstract class BaseItemLine extends BaseTouchableLine {
|
||||
|
||||
private ItemStack itemStack;
|
||||
private PickupHandler pickupHandler;
|
||||
|
||||
|
||||
private NMSItem itemEntity;
|
||||
private NMSArmorStand vehicleEntity;
|
||||
|
||||
private PickupHandler pickupHandler;
|
||||
|
||||
public BaseItemLine(BaseHologram parent, ItemStack itemStack) {
|
||||
super(parent);
|
||||
setItemStack(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPickup(Player player) {
|
||||
if (pickupHandler == null || !getBaseParent().isVisibleTo(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
pickupHandler.onPickup(player);
|
||||
} catch (Throwable t) {
|
||||
Log.warning("The plugin " + getBaseParent().getOwner().getName() + " generated an exception"
|
||||
+ " when the player " + player.getName() + " picked up an item from a hologram.", t);
|
||||
}
|
||||
}
|
||||
|
||||
public PickupHandler getPickupHandler() {
|
||||
return pickupHandler;
|
||||
}
|
||||
|
||||
public void setPickupHandler(PickupHandler pickupHandler) {
|
||||
this.pickupHandler = pickupHandler;
|
||||
}
|
||||
|
||||
public ItemStack getItemStack() {
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void setItemStack(ItemStack itemStack) {
|
||||
Preconditions.notNull(itemStack, "itemStack");
|
||||
Preconditions.checkArgument(0 < itemStack.getAmount() && itemStack.getAmount() <= 64, "Item must have amount between 1 and 64");
|
||||
@ -44,16 +64,6 @@ public class BaseItemLine extends BaseTouchableLine implements ItemLine {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public PickupHandler getPickupHandler() {
|
||||
return pickupHandler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPickupHandler(PickupHandler pickupHandler) {
|
||||
this.pickupHandler = pickupHandler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spawnEntities(World world, double x, double y, double z) {
|
||||
super.spawnEntities(world, x, y, z);
|
||||
@ -124,7 +134,7 @@ public class BaseItemLine extends BaseTouchableLine implements ItemLine {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ItemLine [itemStack=" + itemStack + ", pickupHandler=" + pickupHandler + "]";
|
||||
return "ItemLine [itemStack=" + itemStack + "]";
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -3,34 +3,52 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.base;
|
||||
package me.filoghost.holographicdisplays.core.object.base;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.handler.TouchHandler;
|
||||
import me.filoghost.holographicdisplays.api.line.TouchableLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
/**
|
||||
* Useful class that implements TouchablePiece. The downside is that subclasses must extend this, and cannot extend other classes.
|
||||
* But all the current items are touchable.
|
||||
*/
|
||||
public abstract class BaseTouchableLine extends BaseHologramLine implements TouchableLine {
|
||||
public abstract class BaseTouchableLine extends BaseHologramLine {
|
||||
|
||||
private static final double SLIME_HEIGHT = 0.5;
|
||||
|
||||
private static final Map<Player, Long> anticlickSpam = new WeakHashMap<>();
|
||||
|
||||
private TouchHandler touchHandler;
|
||||
|
||||
private NMSSlime slimeEntity;
|
||||
private NMSArmorStand vehicleEntity;
|
||||
|
||||
|
||||
protected BaseTouchableLine(BaseHologram parent) {
|
||||
super(parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void onTouch(Player player) {
|
||||
if (touchHandler == null || !getBaseParent().isVisibleTo(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Long lastClick = anticlickSpam.get(player);
|
||||
if (lastClick != null && System.currentTimeMillis() - lastClick < 100) {
|
||||
return;
|
||||
}
|
||||
|
||||
anticlickSpam.put(player, System.currentTimeMillis());
|
||||
touchHandler.onTouch(player);
|
||||
}
|
||||
|
||||
public void setTouchHandler(TouchHandler touchHandler) {
|
||||
this.touchHandler = touchHandler;
|
||||
|
||||
@ -43,12 +61,11 @@ public abstract class BaseTouchableLine extends BaseHologramLine implements Touc
|
||||
despawnSlime();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public TouchHandler getTouchHandler() {
|
||||
return this.touchHandler;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void spawnEntities(World world, double x, double y, double z) {
|
||||
if (touchHandler != null) {
|
||||
@ -97,7 +114,7 @@ public abstract class BaseTouchableLine extends BaseHologramLine implements Touc
|
||||
private double getSlimeSpawnY(double y) {
|
||||
return y + ((getHeight() - SLIME_HEIGHT) / 2) + getSlimeSpawnOffset();
|
||||
}
|
||||
|
||||
|
||||
private double getSlimeSpawnOffset() {
|
||||
return 0;
|
||||
}
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object;
|
||||
package me.filoghost.holographicdisplays.core.object.base;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
@ -3,14 +3,13 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.base;
|
||||
package me.filoghost.holographicdisplays.core.object.base;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import org.bukkit.World;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public interface SpawnableHologramLine extends HologramLine {
|
||||
public interface SpawnableHologramLine {
|
||||
|
||||
void respawn(World world, double x, double y, double z);
|
||||
|
@ -5,10 +5,10 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_10_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import net.minecraft.server.v1_10_R1.AxisAlignedBB;
|
||||
import net.minecraft.server.v1_10_R1.DamageSource;
|
||||
import net.minecraft.server.v1_10_R1.EntityArmorStand;
|
||||
@ -27,11 +27,11 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -225,7 +225,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,14 +5,14 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_10_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_10_R1.Blocks;
|
||||
import net.minecraft.server.v1_10_R1.DamageSource;
|
||||
import net.minecraft.server.v1_10_R1.Entity;
|
||||
@ -27,22 +27,19 @@ import net.minecraft.server.v1_10_R1.PacketPlayOutMount;
|
||||
import net.minecraft.server.v1_10_R1.World;
|
||||
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "au");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
|
||||
private int resendMountPacketTicks;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(world);
|
||||
super.pickupDelay = Integer.MAX_VALUE;
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -90,8 +87,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -209,7 +206,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,12 +5,12 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_10_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import net.minecraft.server.v1_10_R1.AxisAlignedBB;
|
||||
import net.minecraft.server.v1_10_R1.DamageSource;
|
||||
import net.minecraft.server.v1_10_R1.Entity;
|
||||
@ -29,11 +29,11 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "au");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
|
||||
private int resendMountPacketTicks;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -198,7 +198,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,16 +9,15 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_10_R1.Entity;
|
||||
import net.minecraft.server.v1_10_R1.EntityTypes;
|
||||
import net.minecraft.server.v1_10_R1.MathHelper;
|
||||
@ -38,11 +37,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
|
||||
private static final ReflectMethod<?> VALIDATE_ENTITY_METHOD = ReflectMethod.lookup(Object.class, World.class, "b", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -59,9 +56,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -71,7 +68,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -82,7 +79,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_11_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
@ -27,11 +27,11 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -225,7 +225,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_11_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_11_R1.Blocks;
|
||||
import net.minecraft.server.v1_11_R1.DamageSource;
|
||||
import net.minecraft.server.v1_11_R1.Entity;
|
||||
@ -25,20 +25,17 @@ import net.minecraft.server.v1_11_R1.NBTTagString;
|
||||
import net.minecraft.server.v1_11_R1.World;
|
||||
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "au");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(world);
|
||||
super.pickupDelay = 32767; // Lock the item pickup delay, also prevents entities from picking up the item
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -65,8 +62,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -183,7 +180,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_11_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -27,9 +27,9 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "au");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -173,7 +173,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,16 +9,15 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_11_R1.Entity;
|
||||
import net.minecraft.server.v1_11_R1.EntityTypes;
|
||||
import net.minecraft.server.v1_11_R1.MathHelper;
|
||||
@ -38,11 +37,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
|
||||
private static final ReflectMethod<?> VALIDATE_ENTITY_METHOD = ReflectMethod.lookup(Object.class, World.class, "b", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -67,9 +64,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -79,7 +76,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -90,7 +87,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,10 +5,10 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_12_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import net.minecraft.server.v1_12_R1.AxisAlignedBB;
|
||||
import net.minecraft.server.v1_12_R1.DamageSource;
|
||||
import net.minecraft.server.v1_12_R1.EntityArmorStand;
|
||||
@ -27,11 +27,11 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -225,7 +225,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_12_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_12_R1.Blocks;
|
||||
import net.minecraft.server.v1_12_R1.DamageSource;
|
||||
import net.minecraft.server.v1_12_R1.Entity;
|
||||
@ -25,20 +25,17 @@ import net.minecraft.server.v1_12_R1.NBTTagString;
|
||||
import net.minecraft.server.v1_12_R1.World;
|
||||
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "au");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(world);
|
||||
super.pickupDelay = 32767; // Lock the item pickup delay, also prevents entities from picking up the item
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -65,8 +62,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -183,7 +180,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_12_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -27,9 +27,9 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "au");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -173,7 +173,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,16 +9,15 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_12_R1.Entity;
|
||||
import net.minecraft.server.v1_12_R1.EntityTypes;
|
||||
import net.minecraft.server.v1_12_R1.MathHelper;
|
||||
@ -38,11 +37,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
|
||||
private static final ReflectMethod<?> VALIDATE_ENTITY_METHOD = ReflectMethod.lookup(Object.class, World.class, "b", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -67,9 +64,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -79,7 +76,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -90,7 +87,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_13_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
@ -29,11 +29,11 @@ import org.bukkit.craftbukkit.v1_13_R1.util.CraftChatMessage;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -227,7 +227,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_13_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_13_R1.Blocks;
|
||||
import net.minecraft.server.v1_13_R1.DamageSource;
|
||||
import net.minecraft.server.v1_13_R1.Entity;
|
||||
@ -25,20 +25,17 @@ import net.minecraft.server.v1_13_R1.NBTTagString;
|
||||
import net.minecraft.server.v1_13_R1.World;
|
||||
import org.bukkit.craftbukkit.v1_13_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_13_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "ax");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(world);
|
||||
super.pickupDelay = 32767; // Lock the item pickup delay, also prevents entities from picking up the item
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -65,8 +62,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -183,7 +180,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_13_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -28,9 +28,9 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "ax");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -174,7 +174,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,18 +9,17 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.ChatComponentAdapter;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_13_R1.ChatComponentText;
|
||||
import net.minecraft.server.v1_13_R1.Entity;
|
||||
import net.minecraft.server.v1_13_R1.EntityTypes;
|
||||
@ -45,11 +44,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
|
||||
private static final ReflectMethod<?> VALIDATE_ENTITY_METHOD = ReflectMethod.lookup(Object.class, World.class, "b", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -74,9 +71,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -86,7 +83,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -97,7 +94,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,10 +5,10 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_13_R2;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import net.minecraft.server.v1_13_R2.AxisAlignedBB;
|
||||
import net.minecraft.server.v1_13_R2.DamageSource;
|
||||
import net.minecraft.server.v1_13_R2.EntityArmorStand;
|
||||
@ -29,11 +29,11 @@ import org.bukkit.craftbukkit.v1_13_R2.util.CraftChatMessage;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -227,7 +227,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_13_R2;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_13_R2.Blocks;
|
||||
import net.minecraft.server.v1_13_R2.DamageSource;
|
||||
import net.minecraft.server.v1_13_R2.Entity;
|
||||
@ -25,20 +25,17 @@ import net.minecraft.server.v1_13_R2.NBTTagString;
|
||||
import net.minecraft.server.v1_13_R2.World;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(world);
|
||||
super.pickupDelay = 32767; // Lock the item pickup delay, also prevents entities from picking up the item
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -65,8 +62,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -183,7 +180,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_13_R2;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -28,9 +28,9 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -174,7 +174,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,18 +9,17 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.ChatComponentAdapter;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_13_R2.ChatComponentText;
|
||||
import net.minecraft.server.v1_13_R2.Entity;
|
||||
import net.minecraft.server.v1_13_R2.EntityTypes;
|
||||
@ -46,11 +45,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
|
||||
private static final ReflectMethod<?> VALIDATE_ENTITY_METHOD = ReflectMethod.lookup(Object.class, World.class, "b", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -75,9 +72,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -87,7 +84,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -98,7 +95,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_14_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
@ -30,12 +30,12 @@ import org.bukkit.craftbukkit.v1_14_R1.util.CraftChatMessage;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private CraftEntity customBukkitEntity;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(EntityTypes.ARMOR_STAND, world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -229,7 +229,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_14_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_14_R1.Blocks;
|
||||
import net.minecraft.server.v1_14_R1.DamageSource;
|
||||
import net.minecraft.server.v1_14_R1.Entity;
|
||||
@ -26,21 +26,18 @@ import net.minecraft.server.v1_14_R1.NBTTagString;
|
||||
import net.minecraft.server.v1_14_R1.World;
|
||||
import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(EntityTypes.ITEM, world);
|
||||
super.pickupDelay = 32767; // Lock the item pickup delay, also prevents entities from picking up the item
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -67,8 +64,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -185,7 +182,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_14_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -29,10 +29,10 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(EntityTypes.SLIME, world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -176,7 +176,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,17 +9,16 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.ChatComponentAdapter;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_14_R1.ChatBaseComponent;
|
||||
import net.minecraft.server.v1_14_R1.ChatComponentText;
|
||||
import net.minecraft.server.v1_14_R1.Entity;
|
||||
@ -45,11 +44,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
private static final ReflectField<Object[]> ID_TO_CLASS_MAP_FIELD = ReflectField.lookup(Object[].class, RegistryID.class, "d");
|
||||
private static final ReflectMethod<Void> REGISTER_ENTITY_METHOD = ReflectMethod.lookup(void.class, WorldServer.class, "registerEntity", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -74,9 +71,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -86,7 +83,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -97,7 +94,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_15_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
@ -30,12 +30,12 @@ import org.bukkit.craftbukkit.v1_15_R1.util.CraftChatMessage;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private CraftEntity customBukkitEntity;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(EntityTypes.ARMOR_STAND, world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -229,7 +229,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_15_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_15_R1.Blocks;
|
||||
import net.minecraft.server.v1_15_R1.DamageSource;
|
||||
import net.minecraft.server.v1_15_R1.Entity;
|
||||
@ -26,21 +26,18 @@ import net.minecraft.server.v1_15_R1.NBTTagString;
|
||||
import net.minecraft.server.v1_15_R1.World;
|
||||
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(EntityTypes.ITEM, world);
|
||||
super.pickupDelay = 32767; // Lock the item pickup delay, also prevents entities from picking up the item
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -67,8 +64,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -185,7 +182,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_15_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -29,10 +29,10 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(EntityTypes.SLIME, world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -176,7 +176,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,17 +9,16 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.ChatComponentAdapter;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_15_R1.ChatComponentText;
|
||||
import net.minecraft.server.v1_15_R1.Entity;
|
||||
import net.minecraft.server.v1_15_R1.EntityTypes;
|
||||
@ -44,11 +43,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
private static final ReflectField<Object[]> ID_TO_CLASS_MAP_FIELD = ReflectField.lookup(Object[].class, RegistryID.class, "d");
|
||||
private static final ReflectMethod<Void> REGISTER_ENTITY_METHOD = ReflectMethod.lookup(void.class, WorldServer.class, "registerEntity", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -73,9 +70,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -85,7 +82,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -96,7 +93,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_16_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
@ -30,12 +30,12 @@ import org.bukkit.craftbukkit.v1_16_R1.util.CraftChatMessage;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private CraftEntity customBukkitEntity;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(EntityTypes.ARMOR_STAND, world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -229,7 +229,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_16_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_16_R1.Blocks;
|
||||
import net.minecraft.server.v1_16_R1.DamageSource;
|
||||
import net.minecraft.server.v1_16_R1.Entity;
|
||||
@ -26,21 +26,18 @@ import net.minecraft.server.v1_16_R1.NBTTagString;
|
||||
import net.minecraft.server.v1_16_R1.World;
|
||||
import org.bukkit.craftbukkit.v1_16_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_16_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(EntityTypes.ITEM, world);
|
||||
super.pickupDelay = 32767; // Lock the item pickup delay, also prevents entities from picking up the item
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -67,8 +64,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -185,7 +182,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_16_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -29,10 +29,10 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(EntityTypes.SLIME, world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -176,7 +176,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,17 +9,16 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.ChatComponentAdapter;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_16_R1.ChatComponentText;
|
||||
import net.minecraft.server.v1_16_R1.Entity;
|
||||
import net.minecraft.server.v1_16_R1.EntityTypes;
|
||||
@ -44,11 +43,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
private static final ReflectField<Object[]> ID_TO_CLASS_MAP_FIELD = ReflectField.lookup(Object[].class, RegistryID.class, "d");
|
||||
private static final ReflectMethod<Void> REGISTER_ENTITY_METHOD = ReflectMethod.lookup(void.class, WorldServer.class, "registerEntity", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -73,9 +70,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -85,7 +82,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -96,7 +93,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_16_R2;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
@ -30,12 +30,12 @@ import org.bukkit.craftbukkit.v1_16_R2.util.CraftChatMessage;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private CraftEntity customBukkitEntity;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(EntityTypes.ARMOR_STAND, world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -229,7 +229,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_16_R2;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_16_R2.Blocks;
|
||||
import net.minecraft.server.v1_16_R2.DamageSource;
|
||||
import net.minecraft.server.v1_16_R2.Entity;
|
||||
@ -26,21 +26,18 @@ import net.minecraft.server.v1_16_R2.NBTTagString;
|
||||
import net.minecraft.server.v1_16_R2.World;
|
||||
import org.bukkit.craftbukkit.v1_16_R2.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_16_R2.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(EntityTypes.ITEM, world);
|
||||
super.pickupDelay = 32767; // Lock the item pickup delay, also prevents entities from picking up the item
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -67,8 +64,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -185,7 +182,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_16_R2;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -29,10 +29,10 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(EntityTypes.SLIME, world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -176,7 +176,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,17 +9,16 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.ChatComponentAdapter;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_16_R2.ChatComponentText;
|
||||
import net.minecraft.server.v1_16_R2.Entity;
|
||||
import net.minecraft.server.v1_16_R2.EntityTypes;
|
||||
@ -43,11 +42,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
private static final ReflectField<Map<EntityTypes<?>, Integer>> REGISTRY_TO_ID_FIELD = ReflectField.lookup(new ClassToken<Map<EntityTypes<?>, Integer>>(){}, RegistryMaterials.class, "bg");
|
||||
private static final ReflectMethod<Void> REGISTER_ENTITY_METHOD = ReflectMethod.lookup(void.class, WorldServer.class, "registerEntity", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -64,9 +61,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -76,7 +73,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -87,7 +84,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,10 +5,10 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_16_R3;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import net.minecraft.server.v1_16_R3.AxisAlignedBB;
|
||||
import net.minecraft.server.v1_16_R3.DamageSource;
|
||||
import net.minecraft.server.v1_16_R3.EntityArmorStand;
|
||||
@ -30,12 +30,12 @@ import org.bukkit.craftbukkit.v1_16_R3.util.CraftChatMessage;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private CraftEntity customBukkitEntity;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(EntityTypes.ARMOR_STAND, world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -229,7 +229,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_16_R3;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_16_R3.Blocks;
|
||||
import net.minecraft.server.v1_16_R3.DamageSource;
|
||||
import net.minecraft.server.v1_16_R3.Entity;
|
||||
@ -26,21 +26,18 @@ import net.minecraft.server.v1_16_R3.NBTTagString;
|
||||
import net.minecraft.server.v1_16_R3.World;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(EntityTypes.ITEM, world);
|
||||
super.pickupDelay = 32767; // Lock the item pickup delay, also prevents entities from picking up the item
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -67,8 +64,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -185,7 +182,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,11 +5,11 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_16_R3;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import net.minecraft.server.v1_16_R3.AxisAlignedBB;
|
||||
import net.minecraft.server.v1_16_R3.DamageSource;
|
||||
import net.minecraft.server.v1_16_R3.Entity;
|
||||
@ -29,10 +29,10 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "vehicle");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private CraftEntity customBukkitEntity;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(EntityTypes.SLIME, world);
|
||||
super.persistent = true;
|
||||
super.collides = false;
|
||||
@ -176,7 +176,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,17 +9,16 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.ChatComponentAdapter;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_16_R3.ChatComponentText;
|
||||
import net.minecraft.server.v1_16_R3.Entity;
|
||||
import net.minecraft.server.v1_16_R3.EntityTypes;
|
||||
@ -43,11 +42,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
private static final ReflectField<Map<EntityTypes<?>, Integer>> REGISTRY_TO_ID_FIELD = ReflectField.lookup(new ClassToken<Map<EntityTypes<?>, Integer>>(){}, RegistryMaterials.class, "bg");
|
||||
private static final ReflectMethod<Void> REGISTER_ENTITY_METHOD = ReflectMethod.lookup(void.class, WorldServer.class, "registerEntity", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -64,9 +61,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -76,7 +73,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -87,7 +84,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -7,11 +7,11 @@ package me.filoghost.holographicdisplays.nms.v1_8_R2;
|
||||
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import net.minecraft.server.v1_8_R2.AxisAlignedBB;
|
||||
import net.minecraft.server.v1_8_R2.DamageSource;
|
||||
import net.minecraft.server.v1_8_R2.EntityArmorStand;
|
||||
@ -29,11 +29,11 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
private static final ReflectField<Integer> DISABLED_SLOTS_FIELD = ReflectField.lookup(int.class, EntityArmorStand.class, "bi");
|
||||
private static final ReflectMethod<Void> SET_MARKER_METHOD = ReflectMethod.lookup(void.class, EntityArmorStand.class, "n", boolean.class);
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -221,7 +221,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -6,12 +6,12 @@
|
||||
package me.filoghost.holographicdisplays.nms.v1_8_R2;
|
||||
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_8_R2.Blocks;
|
||||
import net.minecraft.server.v1_8_R2.DamageSource;
|
||||
import net.minecraft.server.v1_8_R2.Entity;
|
||||
@ -25,21 +25,18 @@ import net.minecraft.server.v1_8_R2.NBTTagString;
|
||||
import net.minecraft.server.v1_8_R2.World;
|
||||
import org.bukkit.craftbukkit.v1_8_R2.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Double> RIDER_PITCH_DELTA = ReflectField.lookup(double.class, Entity.class, "ar");
|
||||
private static final ReflectField<Double> RIDER_YAW_DELTA = ReflectField.lookup(double.class, Entity.class, "as");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(world);
|
||||
super.pickupDelay = Integer.MAX_VALUE;
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -66,8 +63,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -169,7 +166,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
package me.filoghost.holographicdisplays.nms.v1_8_R2;
|
||||
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
@ -27,9 +27,9 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
private static final ReflectField<Double> RIDER_PITCH_DELTA = ReflectField.lookup(double.class, Entity.class, "ar");
|
||||
private static final ReflectField<Double> RIDER_YAW_DELTA = ReflectField.lookup(double.class, Entity.class, "as");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(world);
|
||||
super.persistent = true;
|
||||
a(0.0F, 0.0F);
|
||||
@ -161,7 +161,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,16 +9,15 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_8_R2.Entity;
|
||||
import net.minecraft.server.v1_8_R2.EntityTypes;
|
||||
import net.minecraft.server.v1_8_R2.MathHelper;
|
||||
@ -39,11 +38,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
|
||||
private static final ReflectMethod<?> VALIDATE_ENTITY_METHOD = ReflectMethod.lookup(Object.class, World.class, "a", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -60,9 +57,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -72,7 +69,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -83,7 +80,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -7,11 +7,11 @@ package me.filoghost.holographicdisplays.nms.v1_8_R3;
|
||||
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import net.minecraft.server.v1_8_R3.AxisAlignedBB;
|
||||
import net.minecraft.server.v1_8_R3.DamageSource;
|
||||
import net.minecraft.server.v1_8_R3.EntityArmorStand;
|
||||
@ -29,11 +29,11 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
private static final ReflectField<Integer> DISABLED_SLOTS_FIELD = ReflectField.lookup(int.class, EntityArmorStand.class, "bi");
|
||||
private static final ReflectMethod<Void> SET_MARKER_METHOD = ReflectMethod.lookup(void.class, EntityArmorStand.class, "n", boolean.class);
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -221,7 +221,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_8_R3;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_8_R3.Blocks;
|
||||
import net.minecraft.server.v1_8_R3.DamageSource;
|
||||
import net.minecraft.server.v1_8_R3.Entity;
|
||||
@ -25,21 +25,18 @@ import net.minecraft.server.v1_8_R3.NBTTagString;
|
||||
import net.minecraft.server.v1_8_R3.World;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Double> RIDER_PITCH_DELTA = ReflectField.lookup(double.class, Entity.class, "ar");
|
||||
private static final ReflectField<Double> RIDER_YAW_DELTA = ReflectField.lookup(double.class, Entity.class, "as");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(world);
|
||||
super.pickupDelay = Integer.MAX_VALUE;
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -66,8 +63,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -169,7 +166,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_8_R3;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -27,9 +27,9 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
private static final ReflectField<Double> RIDER_PITCH_DELTA = ReflectField.lookup(double.class, Entity.class, "ar");
|
||||
private static final ReflectField<Double> RIDER_YAW_DELTA = ReflectField.lookup(double.class, Entity.class, "as");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(world);
|
||||
super.persistent = true;
|
||||
a(0.0F, 0.0F);
|
||||
@ -161,7 +161,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,16 +9,15 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_8_R3.Entity;
|
||||
import net.minecraft.server.v1_8_R3.EntityTypes;
|
||||
import net.minecraft.server.v1_8_R3.MathHelper;
|
||||
@ -39,11 +38,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
|
||||
private static final ReflectMethod<?> VALIDATE_ENTITY_METHOD = ReflectMethod.lookup(Object.class, World.class, "a", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -60,9 +57,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -72,7 +69,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -83,7 +80,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -6,7 +6,7 @@
|
||||
package me.filoghost.holographicdisplays.nms.v1_9_R1;
|
||||
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
@ -30,12 +30,12 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
|
||||
private static final ReflectField<Integer> DISABLED_SLOTS_FIELD = ReflectField.lookup(int.class, EntityArmorStand.class, "bz");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -233,7 +233,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,14 +5,14 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_9_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_9_R1.Blocks;
|
||||
import net.minecraft.server.v1_9_R1.DamageSource;
|
||||
import net.minecraft.server.v1_9_R1.Entity;
|
||||
@ -27,22 +27,19 @@ import net.minecraft.server.v1_9_R1.PacketPlayOutMount;
|
||||
import net.minecraft.server.v1_9_R1.World;
|
||||
import org.bukkit.craftbukkit.v1_9_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "as");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
|
||||
private int resendMountPacketTicks;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(world);
|
||||
super.pickupDelay = Integer.MAX_VALUE;
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -89,8 +86,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -207,7 +204,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_9_R1;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -29,11 +29,11 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "as");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
|
||||
private int resendMountPacketTicks;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(world);
|
||||
super.persistent = true;
|
||||
a(0.0F, 0.0F);
|
||||
@ -195,7 +195,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,16 +9,15 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_9_R1.Entity;
|
||||
import net.minecraft.server.v1_9_R1.EntityTypes;
|
||||
import net.minecraft.server.v1_9_R1.MathHelper;
|
||||
@ -38,11 +37,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
|
||||
private static final ReflectMethod<?> VALIDATE_ENTITY_METHOD = ReflectMethod.lookup(Object.class, World.class, "b", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -59,9 +56,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -71,7 +68,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -82,7 +79,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_9_R2;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
@ -27,11 +27,11 @@ import org.bukkit.craftbukkit.v1_9_R2.entity.CraftEntity;
|
||||
|
||||
public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorStand {
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
private final PacketController packetController;
|
||||
private String customName;
|
||||
|
||||
public EntityNMSArmorStand(World world, HologramLine parentPiece, PacketController packetController) {
|
||||
public EntityNMSArmorStand(World world, BaseHologramLine parentPiece, PacketController packetController) {
|
||||
super(world);
|
||||
super.setInvisible(true);
|
||||
super.setSmall(true);
|
||||
@ -225,7 +225,7 @@ public class EntityNMSArmorStand extends EntityArmorStand implements NMSArmorSta
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,14 +5,14 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_9_R2;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSCommons;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_9_R2.Blocks;
|
||||
import net.minecraft.server.v1_9_R2.DamageSource;
|
||||
import net.minecraft.server.v1_9_R2.Entity;
|
||||
@ -27,22 +27,19 @@ import net.minecraft.server.v1_9_R2.PacketPlayOutMount;
|
||||
import net.minecraft.server.v1_9_R2.World;
|
||||
import org.bukkit.craftbukkit.v1_9_R2.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_9_R2.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "at");
|
||||
|
||||
private final ItemLine parentPiece;
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final BaseItemLine parentPiece;
|
||||
|
||||
private int resendMountPacketTicks;
|
||||
|
||||
public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) {
|
||||
public EntityNMSItem(World world, BaseItemLine piece) {
|
||||
super(world);
|
||||
super.pickupDelay = Integer.MAX_VALUE;
|
||||
this.parentPiece = piece;
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -90,8 +87,8 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) {
|
||||
itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece);
|
||||
if (human instanceof EntityPlayer) {
|
||||
parentPiece.onPickup(((EntityPlayer) human).getBukkitEntity());
|
||||
// It is never added to the inventory.
|
||||
}
|
||||
}
|
||||
@ -209,7 +206,7 @@ public class EntityNMSItem extends EntityItem implements NMSItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.nms.v1_9_R2;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
@ -29,11 +29,11 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
|
||||
private static final ReflectField<Entity> VEHICLE_FIELD = ReflectField.lookup(Entity.class, Entity.class, "at");
|
||||
|
||||
private final HologramLine parentPiece;
|
||||
private final BaseHologramLine parentPiece;
|
||||
|
||||
private int resendMountPacketTicks;
|
||||
|
||||
public EntityNMSSlime(World world, HologramLine parentPiece) {
|
||||
public EntityNMSSlime(World world, BaseHologramLine parentPiece) {
|
||||
super(world);
|
||||
super.persistent = true;
|
||||
a(0.0F, 0.0F);
|
||||
@ -197,7 +197,7 @@ public class EntityNMSSlime extends EntitySlime implements NMSSlime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getHologramLine() {
|
||||
public BaseHologramLine getHologramLine() {
|
||||
return parentPiece;
|
||||
}
|
||||
|
||||
|
@ -9,16 +9,15 @@ import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.reflection.ClassToken;
|
||||
import me.filoghost.fcommons.reflection.ReflectField;
|
||||
import me.filoghost.fcommons.reflection.ReflectMethod;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.DebugLogger;
|
||||
import me.filoghost.holographicdisplays.core.nms.CustomNameHelper;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import net.minecraft.server.v1_9_R2.Entity;
|
||||
import net.minecraft.server.v1_9_R2.EntityTypes;
|
||||
import net.minecraft.server.v1_9_R2.MathHelper;
|
||||
@ -38,11 +37,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
|
||||
private static final ReflectMethod<?> VALIDATE_ENTITY_METHOD = ReflectMethod.lookup(Object.class, World.class, "b", Entity.class);
|
||||
|
||||
private final ItemPickupManager itemPickupManager;
|
||||
private final PacketController packetController;
|
||||
|
||||
public VersionNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
this.itemPickupManager = itemPickupManager;
|
||||
public VersionNMSManager(PacketController packetController) {
|
||||
this.packetController = packetController;
|
||||
}
|
||||
|
||||
@ -59,9 +56,9 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack) {
|
||||
public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, BaseItemLine parentPiece, ItemStack stack) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager);
|
||||
EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece);
|
||||
customItem.setLocationNMS(x, y, z);
|
||||
customItem.setItemStackNMS(stack);
|
||||
if (!addEntityToWorld(nmsWorld, customItem)) {
|
||||
@ -71,7 +68,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) {
|
||||
public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle();
|
||||
EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece);
|
||||
touchSlime.setLocationNMS(x, y, z);
|
||||
@ -82,7 +79,7 @@ public class VersionNMSManager implements NMSManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) {
|
||||
public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, BaseHologramLine parentPiece) {
|
||||
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
|
||||
EntityNMSArmorStand invisibleArmorStand = new EntityNMSArmorStand(nmsWorld, parentPiece, packetController);
|
||||
invisibleArmorStand.setLocationNMS(x, y, z);
|
||||
|
@ -9,14 +9,15 @@ import me.filoghost.fcommons.FCommonsPlugin;
|
||||
import me.filoghost.fcommons.FeatureSupport;
|
||||
import me.filoghost.fcommons.config.exception.ConfigException;
|
||||
import me.filoghost.fcommons.logging.Log;
|
||||
import me.filoghost.holographicdisplays.api.Hologram;
|
||||
import me.filoghost.holographicdisplays.api.internal.BackendAPI;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.bridge.bungeecord.BungeeServerTracker;
|
||||
import me.filoghost.holographicdisplays.bridge.protocollib.ProtocolLibHook;
|
||||
import me.filoghost.holographicdisplays.commands.HologramCommandManager;
|
||||
import me.filoghost.holographicdisplays.commands.Messages;
|
||||
import me.filoghost.holographicdisplays.core.Utils;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.disk.ConfigManager;
|
||||
import me.filoghost.holographicdisplays.disk.Configuration;
|
||||
import me.filoghost.holographicdisplays.disk.HologramConfig;
|
||||
@ -26,12 +27,8 @@ import me.filoghost.holographicdisplays.listener.ChunkListener;
|
||||
import me.filoghost.holographicdisplays.listener.MainListener;
|
||||
import me.filoghost.holographicdisplays.listener.SpawnListener;
|
||||
import me.filoghost.holographicdisplays.listener.UpdateNotificationListener;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import me.filoghost.holographicdisplays.object.api.APIHologram;
|
||||
import me.filoghost.holographicdisplays.object.api.APIHologramManager;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.object.internal.InternalHologram;
|
||||
import me.filoghost.holographicdisplays.object.internal.InternalHologramManager;
|
||||
import me.filoghost.holographicdisplays.placeholder.AnimationsRegister;
|
||||
@ -43,10 +40,8 @@ import org.bstats.bukkit.MetricsLite;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class HolographicDisplays extends FCommonsPlugin implements PacketController, ItemPickupManager {
|
||||
public class HolographicDisplays extends FCommonsPlugin implements PacketController {
|
||||
|
||||
private static HolographicDisplays instance;
|
||||
|
||||
@ -88,7 +83,7 @@ public class HolographicDisplays extends FCommonsPlugin implements PacketControl
|
||||
|
||||
NMSManager nmsManager;
|
||||
try {
|
||||
nmsManager = NMSVersion.createNMSManager(this, this);
|
||||
nmsManager = NMSVersion.createNMSManager(this);
|
||||
nmsManager.setup();
|
||||
} catch (Exception e) {
|
||||
throw new PluginEnableException(e, "Couldn't initialize the NMS manager.");
|
||||
@ -196,20 +191,7 @@ public class HolographicDisplays extends FCommonsPlugin implements PacketControl
|
||||
public static HolographicDisplays getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleItemLinePickup(Player player, ItemLine itemLine) {
|
||||
Hologram hologram = itemLine.getParent();
|
||||
try {
|
||||
if (hologram.getVisibilityManager().isVisibleTo(player)) {
|
||||
itemLine.getPickupHandler().onPickup(player);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
Plugin plugin = hologram instanceof APIHologram ? ((APIHologram) hologram).getOwner() : HolographicDisplays.getInstance();
|
||||
Log.warning("The plugin " + plugin.getName() + " generated an exception when the player " + player.getName() + " picked up an item from a hologram.", t);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean shouldBroadcastLocationPacket() {
|
||||
return ProtocolLibHook.isEnabled();
|
||||
|
@ -20,7 +20,7 @@ import me.filoghost.holographicdisplays.bridge.protocollib.packet.WrapperPlaySer
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseTextLine;
|
||||
import me.filoghost.holographicdisplays.placeholder.RelativePlaceholder;
|
||||
import me.filoghost.holographicdisplays.util.NMSVersion;
|
||||
@ -73,7 +73,7 @@ class PacketListener extends PacketAdapter {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hologramLine.getParent().getVisibilityManager().isVisibleTo(player)) {
|
||||
if (!hologramLine.getBaseParent().isVisibleTo(player)) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -88,7 +88,7 @@ class PacketListener extends PacketAdapter {
|
||||
}
|
||||
BaseTextLine textLine = (BaseTextLine) hologramLine;
|
||||
|
||||
if (!hologramLine.getParent().isAllowPlaceholders() || !textLine.hasRelativePlaceholders()) {
|
||||
if (!hologramLine.getBaseParent().isAllowPlaceholders() || !textLine.hasRelativePlaceholders()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -110,7 +110,7 @@ class PacketListener extends PacketAdapter {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hologramLine.getParent().getVisibilityManager().isVisibleTo(player)) {
|
||||
if (!hologramLine.getBaseParent().isVisibleTo(player)) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -123,7 +123,7 @@ class PacketListener extends PacketAdapter {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hologramLine.getParent().getVisibilityManager().isVisibleTo(player)) {
|
||||
if (!hologramLine.getBaseParent().isVisibleTo(player)) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -133,7 +133,7 @@ class PacketListener extends PacketAdapter {
|
||||
}
|
||||
BaseTextLine textLine = (BaseTextLine) hologramLine;
|
||||
|
||||
if (!hologramLine.getParent().isAllowPlaceholders() || !textLine.hasRelativePlaceholders()) {
|
||||
if (!hologramLine.getBaseParent().isAllowPlaceholders() || !textLine.hasRelativePlaceholders()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -197,7 +197,7 @@ class PacketListener extends PacketAdapter {
|
||||
return null; // Entity not existing or not related to holograms.
|
||||
}
|
||||
|
||||
return (BaseHologramLine) nmsEntity.getHologramLine();
|
||||
return nmsEntity.getHologramLine();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -18,11 +18,11 @@ import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSItem;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSSlime;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseItemLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseTouchableLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.SpawnableHologramLine;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseTextLine;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseTouchableLine;
|
||||
import me.filoghost.holographicdisplays.object.base.SpawnableHologramLine;
|
||||
import me.filoghost.holographicdisplays.util.NMSVersion;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
@ -8,7 +8,7 @@ package me.filoghost.holographicdisplays.bridge.protocollib;
|
||||
import com.google.common.base.Preconditions;
|
||||
import me.filoghost.fcommons.logging.Log;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.util.VersionUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
|
@ -16,6 +16,8 @@ import me.filoghost.holographicdisplays.disk.ConfigManager;
|
||||
import me.filoghost.holographicdisplays.object.internal.InternalHologram;
|
||||
import me.filoghost.holographicdisplays.object.internal.InternalHologramLine;
|
||||
import me.filoghost.holographicdisplays.object.internal.InternalHologramManager;
|
||||
import me.filoghost.holographicdisplays.object.internal.InternalTextLine;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -58,18 +60,21 @@ public class CreateCommand extends HologramSubCommand {
|
||||
}
|
||||
|
||||
InternalHologram hologram = internalHologramManager.createHologram(spawnLoc, hologramName);
|
||||
InternalHologramLine line;
|
||||
|
||||
if (args.length > 1) {
|
||||
String text = Utils.join(args, " ", 1, args.length);
|
||||
CommandValidate.check(!text.equalsIgnoreCase("{empty}"), "The first line should not be empty.");
|
||||
|
||||
InternalHologramLine line = HologramCommandValidate.parseHologramLine(hologram, text, true);
|
||||
hologram.getLinesUnsafe().add(line);
|
||||
line = HologramCommandValidate.parseHologramLine(hologram, text, true);
|
||||
player.sendMessage(Colors.SECONDARY_SHADOW + "(Change the lines with /" + context.getRootLabel() + " edit " + hologram.getName() + ")");
|
||||
} else {
|
||||
hologram.appendTextLine("Default hologram. Change it with " + Colors.PRIMARY + "/" + context.getRootLabel() + " edit " + hologram.getName());
|
||||
String defaultText = "Default hologram. Change it with "
|
||||
+ Colors.PRIMARY + "/" + context.getRootLabel() + " edit " + hologram.getName();
|
||||
line = new InternalTextLine(hologram, defaultText, defaultText.replace(ChatColor.COLOR_CHAR, '&'));
|
||||
}
|
||||
|
||||
|
||||
hologram.getLinesUnsafe().add(line);
|
||||
hologram.refresh();
|
||||
|
||||
configManager.getHologramDatabase().addOrUpdate(hologram);
|
||||
|
@ -7,12 +7,10 @@ package me.filoghost.holographicdisplays.commands.subs;
|
||||
|
||||
import me.filoghost.fcommons.command.sub.SubCommandContext;
|
||||
import me.filoghost.holographicdisplays.Colors;
|
||||
import me.filoghost.holographicdisplays.api.Hologram;
|
||||
import me.filoghost.holographicdisplays.commands.HologramSubCommand;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.object.api.APIHologram;
|
||||
import me.filoghost.holographicdisplays.object.internal.InternalHologram;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.World;
|
||||
@ -38,21 +36,21 @@ public class DebugCommand extends HologramSubCommand {
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args, SubCommandContext context) {
|
||||
boolean foundAnyHologram = false;
|
||||
|
||||
|
||||
for (World world : Bukkit.getWorlds()) {
|
||||
Map<Hologram, HologramDebugInfo> hologramsDebugInfo = new HashMap<>();
|
||||
|
||||
Map<BaseHologram, HologramDebugInfo> hologramsDebugInfo = new HashMap<>();
|
||||
|
||||
for (Chunk chunk : world.getLoadedChunks()) {
|
||||
for (Entity entity : chunk.getEntities()) {
|
||||
NMSEntityBase nmsEntity = nmsManager.getNMSEntityBase(entity);
|
||||
|
||||
|
||||
if (nmsEntity == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Hologram ownerHologram = nmsEntity.getHologramLine().getParent();
|
||||
|
||||
BaseHologram ownerHologram = nmsEntity.getHologramLine().getBaseParent();
|
||||
HologramDebugInfo hologramDebugInfo = hologramsDebugInfo.computeIfAbsent(ownerHologram, mapKey -> new HologramDebugInfo());
|
||||
|
||||
|
||||
if (nmsEntity.isDeadNMS()) {
|
||||
hologramDebugInfo.deadEntities++;
|
||||
} else {
|
||||
@ -60,35 +58,23 @@ public class DebugCommand extends HologramSubCommand {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!hologramsDebugInfo.isEmpty()) {
|
||||
foundAnyHologram = true;
|
||||
sender.sendMessage(Colors.PRIMARY + "Holograms in world '" + world.getName() + "':");
|
||||
|
||||
for (Entry<Hologram, HologramDebugInfo> entry : hologramsDebugInfo.entrySet()) {
|
||||
Hologram hologram = entry.getKey();
|
||||
String displayName = getHologramDisplayName(hologram);
|
||||
|
||||
for (Entry<BaseHologram, HologramDebugInfo> entry : hologramsDebugInfo.entrySet()) {
|
||||
BaseHologram hologram = entry.getKey();
|
||||
HologramDebugInfo debugInfo = entry.getValue();
|
||||
sender.sendMessage(Colors.PRIMARY_SHADOW + "- '" + displayName + "': " + hologram.size() + " lines, "
|
||||
sender.sendMessage(Colors.PRIMARY_SHADOW + "- '" + hologram.toFormattedString() + "': " + hologram.size() + " lines, "
|
||||
+ debugInfo.getTotalEntities() + " entities (" + debugInfo.aliveEntities + " alive, " + debugInfo.deadEntities + " dead)");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!foundAnyHologram) {
|
||||
sender.sendMessage(Colors.ERROR + "Couldn't find any loaded hologram (holograms may be in unloaded chunks).");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private String getHologramDisplayName(Hologram hologram) {
|
||||
if (hologram instanceof InternalHologram) {
|
||||
return ((InternalHologram) hologram).getName();
|
||||
} else if (hologram instanceof APIHologram) {
|
||||
return ((APIHologram) hologram).getOwner().getName() + "@" + Integer.toHexString(hologram.hashCode());
|
||||
} else {
|
||||
return hologram.toString();
|
||||
}
|
||||
}
|
||||
|
||||
private static class HologramDebugInfo {
|
||||
|
@ -3,7 +3,6 @@ package me.filoghost.holographicdisplays.listener;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.object.api.APIHologramManager;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.object.internal.InternalHologramManager;
|
||||
import me.filoghost.holographicdisplays.util.SchedulerUtils;
|
||||
import org.bukkit.Chunk;
|
||||
@ -33,7 +32,7 @@ public class ChunkListener implements Listener {
|
||||
NMSEntityBase entityBase = nmsManager.getNMSEntityBase(entity);
|
||||
|
||||
if (entityBase != null) {
|
||||
((BaseHologram) entityBase.getHologramLine().getParent()).despawnEntities();
|
||||
entityBase.getHologramLine().getBaseParent().despawnEntities();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,8 +9,8 @@ import me.filoghost.fcommons.logging.Log;
|
||||
import me.filoghost.holographicdisplays.HolographicDisplays;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSEntityBase;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseTouchableLine;
|
||||
import me.filoghost.holographicdisplays.object.api.APIHologram;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseTouchableLine;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -18,18 +18,12 @@ import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class MainListener implements Listener {
|
||||
|
||||
private final NMSManager nmsManager;
|
||||
|
||||
private final Map<Player, Long> anticlickSpam = new HashMap<>();
|
||||
|
||||
public MainListener(NMSManager nmsManager) {
|
||||
this.nmsManager = nmsManager;
|
||||
}
|
||||
@ -51,28 +45,13 @@ public class MainListener implements Listener {
|
||||
}
|
||||
|
||||
BaseTouchableLine touchableLine = (BaseTouchableLine) entityBase.getHologramLine();
|
||||
if (touchableLine.getTouchHandler() == null || !touchableLine.getParent().getVisibilityManager().isVisibleTo(clicker)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Long lastClick = anticlickSpam.get(clicker);
|
||||
if (lastClick != null && System.currentTimeMillis() - lastClick < 100) {
|
||||
return;
|
||||
}
|
||||
|
||||
anticlickSpam.put(event.getPlayer(), System.currentTimeMillis());
|
||||
|
||||
try {
|
||||
touchableLine.getTouchHandler().onTouch(event.getPlayer());
|
||||
touchableLine.onTouch(event.getPlayer());
|
||||
} catch (Throwable t) {
|
||||
Plugin plugin = touchableLine.getParent() instanceof APIHologram ? ((APIHologram) touchableLine.getParent()).getOwner() : HolographicDisplays.getInstance();
|
||||
Plugin plugin = touchableLine.getBaseParent() instanceof APIHologram ? ((APIHologram) touchableLine.getBaseParent()).getOwner() : HolographicDisplays.getInstance();
|
||||
Log.warning("The plugin " + plugin.getName() + " generated an exception when the player " + event.getPlayer().getName() + " touched a hologram.", t);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onQuit(PlayerQuitEvent event) {
|
||||
anticlickSpam.remove(event.getPlayer());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -7,14 +7,17 @@ package me.filoghost.holographicdisplays.object.api;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.holographicdisplays.api.Hologram;
|
||||
import me.filoghost.holographicdisplays.api.VisibilityManager;
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.api.line.TextLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseItemLine;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseTextLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologramLine;
|
||||
import me.filoghost.holographicdisplays.disk.Configuration;
|
||||
import me.filoghost.holographicdisplays.object.base.DefaultVisibilityManager;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
@ -25,23 +28,30 @@ public class APIHologram extends BaseHologram implements Hologram {
|
||||
|
||||
private final Plugin plugin;
|
||||
private final APIHologramManager apiHologramManager;
|
||||
private final List<BaseHologramLine> lines;
|
||||
private final VisibilityManager visibilityManager;
|
||||
private final long creationTimestamp;
|
||||
private final List<APIHologramLine> lines;
|
||||
|
||||
private boolean allowPlaceholders;
|
||||
|
||||
protected APIHologram(Location source, Plugin plugin, NMSManager nmsManager, APIHologramManager apiHologramManager) {
|
||||
super(source, nmsManager);
|
||||
Preconditions.notNull(plugin, "plugin");
|
||||
this.plugin = plugin;
|
||||
this.apiHologramManager = apiHologramManager;
|
||||
this.visibilityManager = new DefaultVisibilityManager(this);
|
||||
this.creationTimestamp = System.currentTimeMillis();
|
||||
this.lines = new ArrayList<>();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Plugin getOwner() {
|
||||
return plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BaseHologramLine> getLinesUnsafe() {
|
||||
public List<APIHologramLine> getLinesUnsafe() {
|
||||
return lines;
|
||||
}
|
||||
|
||||
@ -49,7 +59,7 @@ public class APIHologram extends BaseHologram implements Hologram {
|
||||
public TextLine appendTextLine(String text) {
|
||||
checkState();
|
||||
|
||||
BaseTextLine line = new BaseTextLine(this, text);
|
||||
APITextLine line = new APITextLine(this, text);
|
||||
lines.add(line);
|
||||
refresh();
|
||||
return line;
|
||||
@ -60,7 +70,7 @@ public class APIHologram extends BaseHologram implements Hologram {
|
||||
checkState();
|
||||
Preconditions.notNull(itemStack, "itemStack");
|
||||
|
||||
BaseItemLine line = new BaseItemLine(this, itemStack);
|
||||
APIItemLine line = new APIItemLine(this, itemStack);
|
||||
lines.add(line);
|
||||
refresh();
|
||||
return line;
|
||||
@ -70,7 +80,7 @@ public class APIHologram extends BaseHologram implements Hologram {
|
||||
public TextLine insertTextLine(int index, String text) {
|
||||
checkState();
|
||||
|
||||
BaseTextLine line = new BaseTextLine(this, text);
|
||||
APITextLine line = new APITextLine(this, text);
|
||||
lines.add(index, line);
|
||||
refresh();
|
||||
return line;
|
||||
@ -81,15 +91,76 @@ public class APIHologram extends BaseHologram implements Hologram {
|
||||
checkState();
|
||||
Preconditions.notNull(itemStack, "itemStack");
|
||||
|
||||
BaseItemLine line = new BaseItemLine(this, itemStack);
|
||||
APIItemLine line = new APIItemLine(this, itemStack);
|
||||
lines.add(index, line);
|
||||
refresh();
|
||||
return line;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HologramLine getLine(int index) {
|
||||
return lines.get(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAllowPlaceholders(boolean allowPlaceholders) {
|
||||
if (this.allowPlaceholders == allowPlaceholders) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.allowPlaceholders = allowPlaceholders;
|
||||
refresh(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAllowPlaceholders() {
|
||||
return allowPlaceholders;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisibleTo(Player player) {
|
||||
return visibilityManager.isVisibleTo(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double getSpaceBetweenLines() {
|
||||
return Configuration.spaceBetweenLines;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getHeight() {
|
||||
if (lines.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
double height = 0.0;
|
||||
|
||||
for (APIHologramLine line : lines) {
|
||||
height += line.getHeight();
|
||||
}
|
||||
|
||||
height += Configuration.spaceBetweenLines * (lines.size() - 1);
|
||||
return height;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getCreationTimestamp() {
|
||||
return creationTimestamp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VisibilityManager getVisibilityManager() {
|
||||
return visibilityManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete() {
|
||||
apiHologramManager.deleteHologram(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toFormattedString() {
|
||||
return plugin.getName() + "@" + Integer.toHexString(hashCode());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
/*
|
||||
* Copyright (C) filoghost and contributors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.api;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.HologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.SpawnableHologramLine;
|
||||
|
||||
public interface APIHologramLine extends HologramLine, SpawnableHologramLine {
|
||||
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package me.filoghost.holographicdisplays.object.api;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.Hologram;
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class APIItemLine extends BaseItemLine implements ItemLine, APIHologramLine {
|
||||
|
||||
private final APIHologram parent;
|
||||
|
||||
public APIItemLine(APIHologram parent, ItemStack itemStack) {
|
||||
super(parent, itemStack);
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Hologram getParent() {
|
||||
return parent;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package me.filoghost.holographicdisplays.object.api;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.Hologram;
|
||||
import me.filoghost.holographicdisplays.api.line.TextLine;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseTextLine;
|
||||
|
||||
public class APITextLine extends BaseTextLine implements TextLine, APIHologramLine {
|
||||
|
||||
private final APIHologram parent;
|
||||
|
||||
public APITextLine(APIHologram parent, String text) {
|
||||
super(parent, text);
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Hologram getParent() {
|
||||
return parent;
|
||||
}
|
||||
|
||||
}
|
@ -6,6 +6,7 @@
|
||||
package me.filoghost.holographicdisplays.object.base;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import org.bukkit.Chunk;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -5,8 +5,9 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.base;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.TextLine;
|
||||
import me.filoghost.holographicdisplays.core.nms.entity.NMSArmorStand;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseTouchableLine;
|
||||
import me.filoghost.holographicdisplays.placeholder.PlaceholdersManager;
|
||||
import me.filoghost.holographicdisplays.placeholder.RelativePlaceholder;
|
||||
import org.bukkit.World;
|
||||
@ -15,7 +16,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class BaseTextLine extends BaseTouchableLine implements TextLine {
|
||||
public abstract class BaseTextLine extends BaseTouchableLine {
|
||||
|
||||
private String text;
|
||||
private List<RelativePlaceholder> relativePlaceholders;
|
||||
@ -37,12 +38,12 @@ public class BaseTextLine extends BaseTouchableLine implements TextLine {
|
||||
if (nameableEntity != null) {
|
||||
if (text != null && !text.isEmpty()) {
|
||||
nameableEntity.setCustomNameNMS(text);
|
||||
if (getParent().isAllowPlaceholders()) {
|
||||
if (getBaseParent().isAllowPlaceholders()) {
|
||||
PlaceholdersManager.trackIfNecessary(this);
|
||||
}
|
||||
} else {
|
||||
nameableEntity.setCustomNameNMS(""); // It will not appear
|
||||
if (getParent().isAllowPlaceholders()) {
|
||||
if (getBaseParent().isAllowPlaceholders()) {
|
||||
PlaceholdersManager.untrack(this);
|
||||
}
|
||||
}
|
||||
@ -75,7 +76,7 @@ public class BaseTextLine extends BaseTouchableLine implements TextLine {
|
||||
nameableEntity.setCustomNameNMS(text);
|
||||
}
|
||||
|
||||
if (getParent().isAllowPlaceholders()) {
|
||||
if (getBaseParent().isAllowPlaceholders()) {
|
||||
PlaceholdersManager.trackIfNecessary(this);
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ package me.filoghost.holographicdisplays.object.base;
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.holographicdisplays.api.VisibilityManager;
|
||||
import me.filoghost.holographicdisplays.bridge.protocollib.ProtocolLibHook;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
@ -5,12 +5,13 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.internal;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.line.ItemLine;
|
||||
import me.filoghost.holographicdisplays.api.line.TextLine;
|
||||
import me.filoghost.holographicdisplays.HolographicDisplays;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.disk.Configuration;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -22,7 +23,6 @@ public class InternalHologram extends BaseHologram {
|
||||
|
||||
protected InternalHologram(Location source, String name, NMSManager nmsManager) {
|
||||
super(source, nmsManager);
|
||||
super.setAllowPlaceholders(true);
|
||||
this.name = name;
|
||||
this.lines = new ArrayList<>();
|
||||
}
|
||||
@ -30,40 +30,40 @@ public class InternalHologram extends BaseHologram {
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Plugin getOwner() {
|
||||
return HolographicDisplays.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<InternalHologramLine> getLinesUnsafe() {
|
||||
return lines;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isAllowPlaceholders() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisibleTo(Player player) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double getSpaceBetweenLines() {
|
||||
return Configuration.spaceBetweenLines;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toFormattedString() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "InternalHologram [name=" + name + ", super=" + super.toString() + "]";
|
||||
}
|
||||
|
||||
@Override
|
||||
public TextLine appendTextLine(String text) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine appendItemLine(ItemStack itemStack) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TextLine insertTextLine(int index, String text) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemLine insertItemLine(int index, ItemStack itemStack) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.internal;
|
||||
|
||||
import me.filoghost.holographicdisplays.object.base.SpawnableHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.SpawnableHologramLine;
|
||||
|
||||
public interface InternalHologramLine extends SpawnableHologramLine {
|
||||
|
||||
|
@ -5,8 +5,8 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.internal;
|
||||
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseItemLine;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseItemLine;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class InternalItemLine extends BaseItemLine implements InternalHologramLine {
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.object.internal;
|
||||
|
||||
import me.filoghost.holographicdisplays.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.core.object.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.object.base.BaseTextLine;
|
||||
|
||||
public class InternalTextLine extends BaseTextLine implements InternalHologramLine {
|
||||
|
@ -6,7 +6,6 @@
|
||||
package me.filoghost.holographicdisplays.util;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.holographicdisplays.core.nms.ItemPickupManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.NMSManager;
|
||||
import me.filoghost.holographicdisplays.core.nms.PacketController;
|
||||
import org.bukkit.Bukkit;
|
||||
@ -42,8 +41,8 @@ public enum NMSVersion {
|
||||
this.nmsManagerConstructor = nmsManagerConstructor;
|
||||
}
|
||||
|
||||
public static NMSManager createNMSManager(ItemPickupManager itemPickupManager, PacketController packetController) {
|
||||
return getValid().nmsManagerConstructor.create(itemPickupManager, packetController);
|
||||
public static NMSManager createNMSManager(PacketController packetController) {
|
||||
return getValid().nmsManagerConstructor.create(packetController);
|
||||
}
|
||||
|
||||
private static NMSVersion extractCurrentVersion() {
|
||||
@ -76,7 +75,7 @@ public enum NMSVersion {
|
||||
|
||||
private interface NMSManagerConstructor {
|
||||
|
||||
NMSManager create(ItemPickupManager itemPickupManager, PacketController packetController);
|
||||
NMSManager create(PacketController packetController);
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user