Added the ability to get the holograms using the API

This commit is contained in:
OmerBenGera 2020-10-08 09:54:11 +03:00
parent 42e7c93822
commit f7633b3759
35 changed files with 409 additions and 52 deletions

View File

@ -0,0 +1,24 @@
package com.bgsoftware.wildloaders.api.holograms;
import org.bukkit.entity.Entity;
public interface Hologram {
/**
* Get the armor-stand associated with the hologram.
*/
Entity getEntity();
/**
* Set the hologram's name.
* Using the setCustomName method of the entity will not work.
* @param name The new name of the hologram.
*/
void setHologramName(String name);
/**
* Remove the hologram.
*/
void removeHologram();
}

View File

@ -1,11 +1,13 @@
package com.bgsoftware.wildloaders.api.loaders;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import org.bukkit.Chunk;
import org.bukkit.Location;
import org.bukkit.OfflinePlayer;
import org.bukkit.inventory.ItemStack;
import java.util.Collection;
import java.util.Optional;
public interface ChunkLoader {
@ -50,4 +52,9 @@ public interface ChunkLoader {
*/
ItemStack getLoaderItem();
/**
* Get the holograms of the chunk loader.
*/
Collection<Hologram> getHolograms();
}

View File

@ -0,0 +1,11 @@
package com.bgsoftware.wildloaders.loaders;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import java.util.Collection;
public interface ITileEntityChunkLoader {
Collection<Hologram> getHolograms();
}

View File

@ -1,6 +1,7 @@
package com.bgsoftware.wildloaders.loaders;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.loaders.LoaderData;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
@ -14,6 +15,7 @@ import org.bukkit.OfflinePlayer;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@ -26,6 +28,7 @@ public final class WChunkLoader implements ChunkLoader {
private final Location location;
private final Chunk[] loadedChunks;
private final String loaderName;
private final ITileEntityChunkLoader tileEntityChunkLoader;
private boolean active = true;
private long timeLeft;
@ -36,7 +39,7 @@ public final class WChunkLoader implements ChunkLoader {
this.location = location.clone();
this.loadedChunks = calculateChunks(loaderData, whoPlaced, this.location);
this.timeLeft = timeLeft;
plugin.getNMSAdapter().createLoader(this);
this.tileEntityChunkLoader = plugin.getNMSAdapter().createLoader(this);
}
@Override
@ -78,10 +81,6 @@ public final class WChunkLoader implements ChunkLoader {
return timeLeft == Integer.MIN_VALUE;
}
public List<String> getHologramLines(){
return isInfinite() ? plugin.getSettings().infiniteHologramLines : plugin.getSettings().hologramLines;
}
@Override
public Location getLocation() {
return location.clone();
@ -116,6 +115,15 @@ public final class WChunkLoader implements ChunkLoader {
return plugin.getNMSAdapter().setTag(itemStack, "loader-time", getTimeLeft());
}
@Override
public Collection<Hologram> getHolograms() {
return tileEntityChunkLoader.getHolograms();
}
public List<String> getHologramLines(){
return isInfinite() ? plugin.getSettings().infiniteHologramLines : plugin.getSettings().hologramLines;
}
private static Chunk[] calculateChunks(LoaderData loaderData, UUID whoPlaced, Location original){
List<Chunk> chunkList = new ArrayList<>();

View File

@ -2,6 +2,7 @@ package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import org.bukkit.Location;
import org.bukkit.inventory.ItemStack;
@ -21,7 +22,7 @@ public interface NMSAdapter {
ChunkLoaderNPC createNPC(Location location, UUID uuid);
void createLoader(ChunkLoader chunkLoader);
ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader);
void removeLoader(ChunkLoader chunkLoader, boolean spawnParticle);

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_10_R1.AxisAlignedBB;
import net.minecraft.server.v1_10_R1.DamageSource;
import net.minecraft.server.v1_10_R1.EntityArmorStand;
@ -14,9 +15,10 @@ import net.minecraft.server.v1_10_R1.Vec3D;
import net.minecraft.server.v1_10_R1.World;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Entity;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_10_R1 extends EntityArmorStand {
public final class EntityHolograms_v1_10_R1 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_10_R1(World world, double x, double y, double z){
super(world, x, y, z);
@ -31,14 +33,21 @@ public final class EntityHolograms_v1_10_R1 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(name);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void m() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_10_R1.Block;
import net.minecraft.server.v1_10_R1.BlockPosition;
@ -23,6 +25,8 @@ import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_10_R1.util.LongHash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -112,7 +116,7 @@ public final class NMSAdapter_v1_10_R1 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -129,6 +133,8 @@ public final class NMSAdapter_v1_10_R1 implements NMSAdapter {
tileEntity.a(nbtTagCompound);
});
}
return tileEntityChunkLoader;
}
@Override
@ -172,7 +178,7 @@ public final class NMSAdapter_v1_10_R1 implements NMSAdapter {
mobSpawner.a(nbtTagCompound);
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -260,6 +266,11 @@ public final class NMSAdapter_v1_10_R1 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_10_R1 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_11_R1.AxisAlignedBB;
import net.minecraft.server.v1_11_R1.DamageSource;
import net.minecraft.server.v1_11_R1.EntityArmorStand;
@ -14,9 +15,10 @@ import net.minecraft.server.v1_11_R1.Vec3D;
import net.minecraft.server.v1_11_R1.World;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.Entity;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_11_R1 extends EntityArmorStand {
public final class EntityHolograms_v1_11_R1 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_11_R1(World world, double x, double y, double z){
super(world, x, y, z);
@ -31,14 +33,21 @@ public final class EntityHolograms_v1_11_R1 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(name);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void A_() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_11_R1.Block;
import net.minecraft.server.v1_11_R1.BlockPosition;
@ -23,6 +25,8 @@ import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_11_R1.util.LongHash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -112,7 +116,7 @@ public final class NMSAdapter_v1_11_R1 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -129,6 +133,8 @@ public final class NMSAdapter_v1_11_R1 implements NMSAdapter {
tileEntity.a(nbtTagCompound);
});
}
return tileEntityChunkLoader;
}
@Override
@ -172,7 +178,7 @@ public final class NMSAdapter_v1_11_R1 implements NMSAdapter {
mobSpawner.a(nbtTagCompound);
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -260,6 +266,11 @@ public final class NMSAdapter_v1_11_R1 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_11_R1 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_12_R1.AxisAlignedBB;
import net.minecraft.server.v1_12_R1.DamageSource;
import net.minecraft.server.v1_12_R1.EntityArmorStand;
@ -14,9 +15,10 @@ import net.minecraft.server.v1_12_R1.Vec3D;
import net.minecraft.server.v1_12_R1.World;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity;
import org.bukkit.entity.Entity;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_12_R1 extends EntityArmorStand {
public final class EntityHolograms_v1_12_R1 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_12_R1(World world, double x, double y, double z){
super(world, x, y, z);
@ -31,14 +33,21 @@ public final class EntityHolograms_v1_12_R1 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(name);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void B_() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_12_R1.Block;
import net.minecraft.server.v1_12_R1.BlockPosition;
@ -24,6 +26,8 @@ import org.bukkit.craftbukkit.v1_12_R1.util.LongHash;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -121,7 +125,7 @@ public final class NMSAdapter_v1_12_R1 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -143,6 +147,8 @@ public final class NMSAdapter_v1_12_R1 implements NMSAdapter {
}
});
}
return tileEntityChunkLoader;
}
@Override
@ -195,7 +201,7 @@ public final class NMSAdapter_v1_12_R1 implements NMSAdapter {
}
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -283,6 +289,11 @@ public final class NMSAdapter_v1_12_R1 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_12_R1 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_13_R1.AxisAlignedBB;
import net.minecraft.server.v1_13_R1.DamageSource;
import net.minecraft.server.v1_13_R1.EntityArmorStand;
@ -16,11 +17,12 @@ import net.minecraft.server.v1_13_R1.World;
import org.bukkit.craftbukkit.v1_13_R1.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_13_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_13_R1.util.CraftChatMessage;
import org.bukkit.entity.Entity;
import javax.annotation.Nullable;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_13_R1 extends EntityArmorStand {
public final class EntityHolograms_v1_13_R1 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_13_R1(World world, double x, double y, double z){
super(world, x, y, z);
@ -35,14 +37,21 @@ public final class EntityHolograms_v1_13_R1 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(CraftChatMessage.fromString(name)[0]);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void tick() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_13_R1.Block;
import net.minecraft.server.v1_13_R1.BlockPosition;
@ -24,6 +26,8 @@ import org.bukkit.craftbukkit.v1_13_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_13_R1.util.LongHash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -113,7 +117,7 @@ public final class NMSAdapter_v1_13_R1 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -126,6 +130,8 @@ public final class NMSAdapter_v1_13_R1 implements NMSAdapter {
chunk.tileEntities.values().stream().filter(tileEntity -> tileEntity instanceof TileEntityMobSpawner)
.forEach(tileEntity -> ((TileEntityMobSpawner) tileEntity).getSpawner().requiredPlayerRange = -1);
}
return tileEntityChunkLoader;
}
@Override
@ -165,7 +171,7 @@ public final class NMSAdapter_v1_13_R1 implements NMSAdapter {
mobSpawner.getSpawner().requiredPlayerRange = reset ? 16 : -1;
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -255,6 +261,11 @@ public final class NMSAdapter_v1_13_R1 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_13_R1 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_13_R2.AxisAlignedBB;
import net.minecraft.server.v1_13_R2.DamageSource;
import net.minecraft.server.v1_13_R2.EntityArmorStand;
@ -16,11 +17,12 @@ import net.minecraft.server.v1_13_R2.World;
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_13_R2.util.CraftChatMessage;
import org.bukkit.entity.Entity;
import javax.annotation.Nullable;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_13_R2 extends EntityArmorStand {
public final class EntityHolograms_v1_13_R2 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_13_R2(World world, double x, double y, double z){
super(world, x, y, z);
@ -35,14 +37,21 @@ public final class EntityHolograms_v1_13_R2 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(CraftChatMessage.fromString(name)[0]);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void tick() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_13_R2.Block;
import net.minecraft.server.v1_13_R2.BlockPosition;
@ -24,6 +26,8 @@ import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_13_R2.util.LongHash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -113,7 +117,7 @@ public final class NMSAdapter_v1_13_R2 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -126,6 +130,8 @@ public final class NMSAdapter_v1_13_R2 implements NMSAdapter {
chunk.tileEntities.values().stream().filter(tileEntity -> tileEntity instanceof TileEntityMobSpawner)
.forEach(tileEntity -> ((TileEntityMobSpawner) tileEntity).getSpawner().requiredPlayerRange = -1);
}
return tileEntityChunkLoader;
}
@Override
@ -165,7 +171,7 @@ public final class NMSAdapter_v1_13_R2 implements NMSAdapter {
mobSpawner.getSpawner().requiredPlayerRange = reset ? 16 : -1;
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -255,6 +261,11 @@ public final class NMSAdapter_v1_13_R2 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_13_R2 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_14_R1.AxisAlignedBB;
import net.minecraft.server.v1_14_R1.DamageSource;
import net.minecraft.server.v1_14_R1.EntityArmorStand;
@ -16,11 +17,12 @@ import net.minecraft.server.v1_14_R1.World;
import org.bukkit.craftbukkit.v1_14_R1.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_14_R1.util.CraftChatMessage;
import org.bukkit.entity.Entity;
import javax.annotation.Nullable;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_14_R1 extends EntityArmorStand {
public final class EntityHolograms_v1_14_R1 extends EntityArmorStand implements Hologram {
private CraftEntity bukkitEntity;
@ -37,14 +39,21 @@ public final class EntityHolograms_v1_14_R1 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(CraftChatMessage.fromString(name)[0]);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void tick() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_14_R1.Block;
import net.minecraft.server.v1_14_R1.BlockPosition;
@ -25,6 +27,8 @@ import org.bukkit.craftbukkit.v1_14_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -114,7 +118,7 @@ public final class NMSAdapter_v1_14_R1 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
assert loaderLoc.getWorld() != null;
WorldServer world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
@ -130,6 +134,8 @@ public final class NMSAdapter_v1_14_R1 implements NMSAdapter {
world.setForceLoaded(chunk.getPos().x, chunk.getPos().z, true);
}
return tileEntityChunkLoader;
}
@Override
@ -173,7 +179,7 @@ public final class NMSAdapter_v1_14_R1 implements NMSAdapter {
mobSpawner.getSpawner().requiredPlayerRange = reset ? 16 : -1;
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -268,6 +274,11 @@ public final class NMSAdapter_v1_14_R1 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_14_R1 hologram, String line){
assert chunkLoader.getWhoPlaced().getName() != null;
hologram.setHologramName(line

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_15_R1.AxisAlignedBB;
import net.minecraft.server.v1_15_R1.DamageSource;
import net.minecraft.server.v1_15_R1.EntityArmorStand;
@ -16,11 +17,12 @@ import net.minecraft.server.v1_15_R1.World;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_15_R1.util.CraftChatMessage;
import org.bukkit.entity.Entity;
import javax.annotation.Nullable;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_15_R1 extends EntityArmorStand {
public final class EntityHolograms_v1_15_R1 extends EntityArmorStand implements Hologram {
private CraftEntity bukkitEntity;
@ -37,14 +39,21 @@ public final class EntityHolograms_v1_15_R1 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(CraftChatMessage.fromString(name)[0]);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void tick() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_15_R1.Block;
import net.minecraft.server.v1_15_R1.BlockPosition;
@ -25,6 +27,8 @@ import org.bukkit.craftbukkit.v1_15_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -114,7 +118,7 @@ public final class NMSAdapter_v1_15_R1 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
assert loaderLoc.getWorld() != null;
WorldServer world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
@ -130,6 +134,8 @@ public final class NMSAdapter_v1_15_R1 implements NMSAdapter {
world.setForceLoaded(chunk.getPos().x, chunk.getPos().z, true);
}
return tileEntityChunkLoader;
}
@Override
@ -173,7 +179,7 @@ public final class NMSAdapter_v1_15_R1 implements NMSAdapter {
mobSpawner.getSpawner().requiredPlayerRange = reset ? 16 : -1;
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -267,6 +273,11 @@ public final class NMSAdapter_v1_15_R1 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_15_R1 hologram, String line){
assert chunkLoader.getWhoPlaced().getName() != null;
hologram.setHologramName(line

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_16_R1.AxisAlignedBB;
import net.minecraft.server.v1_16_R1.DamageSource;
import net.minecraft.server.v1_16_R1.EntityArmorStand;
@ -16,11 +17,12 @@ import net.minecraft.server.v1_16_R1.World;
import org.bukkit.craftbukkit.v1_16_R1.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_16_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_16_R1.util.CraftChatMessage;
import org.bukkit.entity.Entity;
import javax.annotation.Nullable;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_16_R1 extends EntityArmorStand {
public final class EntityHolograms_v1_16_R1 extends EntityArmorStand implements Hologram {
private CraftEntity bukkitEntity;
@ -37,14 +39,21 @@ public final class EntityHolograms_v1_16_R1 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(CraftChatMessage.fromString(name)[0]);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void tick() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_16_R1.Block;
import net.minecraft.server.v1_16_R1.BlockPosition;
@ -26,6 +28,8 @@ import org.bukkit.craftbukkit.v1_16_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_16_R1.inventory.CraftItemStack;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -115,7 +119,7 @@ public final class NMSAdapter_v1_16_R1 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
assert loaderLoc.getWorld() != null;
WorldServer world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
@ -131,6 +135,8 @@ public final class NMSAdapter_v1_16_R1 implements NMSAdapter {
world.setForceLoaded(chunk.getPos().x, chunk.getPos().z, true);
}
return tileEntityChunkLoader;
}
@Override
@ -175,7 +181,7 @@ public final class NMSAdapter_v1_16_R1 implements NMSAdapter {
mobSpawner.getSpawner().requiredPlayerRange = reset ? 16 : -1;
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -269,6 +275,11 @@ public final class NMSAdapter_v1_16_R1 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_16_R1 hologram, String line){
assert chunkLoader.getWhoPlaced().getName() != null;
hologram.setHologramName(line

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_16_R2.AxisAlignedBB;
import net.minecraft.server.v1_16_R2.DamageSource;
import net.minecraft.server.v1_16_R2.EntityArmorStand;
@ -16,11 +17,12 @@ import net.minecraft.server.v1_16_R2.World;
import org.bukkit.craftbukkit.v1_16_R2.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_16_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_16_R2.util.CraftChatMessage;
import org.bukkit.entity.Entity;
import javax.annotation.Nullable;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_16_R2 extends EntityArmorStand {
public final class EntityHolograms_v1_16_R2 extends EntityArmorStand implements Hologram {
private CraftEntity bukkitEntity;
@ -37,14 +39,21 @@ public final class EntityHolograms_v1_16_R2 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(CraftChatMessage.fromString(name)[0]);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void tick() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_16_R2.Block;
import net.minecraft.server.v1_16_R2.BlockPosition;
@ -26,6 +28,8 @@ import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
import org.bukkit.craftbukkit.v1_16_R2.inventory.CraftItemStack;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -115,7 +119,7 @@ public final class NMSAdapter_v1_16_R2 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
assert loaderLoc.getWorld() != null;
WorldServer world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
@ -131,6 +135,8 @@ public final class NMSAdapter_v1_16_R2 implements NMSAdapter {
world.setForceLoaded(chunk.getPos().x, chunk.getPos().z, true);
}
return tileEntityChunkLoader;
}
@Override
@ -175,7 +181,7 @@ public final class NMSAdapter_v1_16_R2 implements NMSAdapter {
mobSpawner.getSpawner().requiredPlayerRange = reset ? 16 : -1;
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -269,6 +275,11 @@ public final class NMSAdapter_v1_16_R2 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_16_R2 hologram, String line){
assert chunkLoader.getWhoPlaced().getName() != null;
hologram.setHologramName(line

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_7_R3.Block;
import net.minecraft.server.v1_7_R3.Chunk;
@ -21,6 +23,8 @@ import org.bukkit.craftbukkit.v1_7_R3.CraftWorld;
import org.bukkit.craftbukkit.v1_7_R3.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_7_R3.util.LongHash;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@ -109,7 +113,7 @@ public final class NMSAdapter_v1_7_R3 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
int x = loaderLoc.getBlockX(), y = loaderLoc.getBlockY(), z = loaderLoc.getBlockZ();
@ -128,6 +132,8 @@ public final class NMSAdapter_v1_7_R3 implements NMSAdapter {
((TileEntity) tileEntity).a(nbtTagCompound);
});
}
return tileEntityChunkLoader;
}
@Override
@ -171,7 +177,9 @@ public final class NMSAdapter_v1_7_R3 implements NMSAdapter {
mobSpawner.a(nbtTagCompound);
}
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox {
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox, ITileEntityChunkLoader {
private static final Collection<Hologram> EMPTY_CONTAINER = Collections.emptyList();
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -206,6 +214,11 @@ public final class NMSAdapter_v1_7_R3 implements NMSAdapter {
((WChunkLoader) chunkLoader).tick();
}
@Override
public Collection<Hologram> getHolograms() {
return EMPTY_CONTAINER;
}
}
}

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_7_R4.Block;
import net.minecraft.server.v1_7_R4.Chunk;
@ -21,6 +23,8 @@ import org.bukkit.craftbukkit.v1_7_R4.CraftWorld;
import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_7_R4.util.LongHash;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@ -109,7 +113,7 @@ public final class NMSAdapter_v1_7_R4 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
int x = loaderLoc.getBlockX(), y = loaderLoc.getBlockY(), z = loaderLoc.getBlockZ();
@ -128,6 +132,8 @@ public final class NMSAdapter_v1_7_R4 implements NMSAdapter {
((TileEntity) tileEntity).a(nbtTagCompound);
});
}
return tileEntityChunkLoader;
}
@Override
@ -171,7 +177,9 @@ public final class NMSAdapter_v1_7_R4 implements NMSAdapter {
mobSpawner.a(nbtTagCompound);
}
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox {
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox, ITileEntityChunkLoader {
private static final Collection<Hologram> EMPTY_CONTAINER = Collections.emptyList();
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -206,6 +214,11 @@ public final class NMSAdapter_v1_7_R4 implements NMSAdapter {
((WChunkLoader) chunkLoader).tick();
}
@Override
public Collection<Hologram> getHolograms() {
return EMPTY_CONTAINER;
}
}
}

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_8_R1.AxisAlignedBB;
import net.minecraft.server.v1_8_R1.DamageSource;
import net.minecraft.server.v1_8_R1.EntityArmorStand;
@ -10,9 +11,10 @@ import net.minecraft.server.v1_8_R1.Vec3D;
import net.minecraft.server.v1_8_R1.World;
import org.bukkit.craftbukkit.v1_8_R1.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_8_R1.entity.CraftEntity;
import org.bukkit.entity.Entity;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_8_R1 extends EntityArmorStand {
public final class EntityHolograms_v1_8_R1 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_8_R1(World world, double x, double y, double z){
super(world, x, y, z);
@ -25,14 +27,21 @@ public final class EntityHolograms_v1_8_R1 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(name);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void s_() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_8_R1.Block;
import net.minecraft.server.v1_8_R1.BlockPosition;
@ -23,6 +25,8 @@ import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_8_R1.util.LongHash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -112,7 +116,7 @@ public final class NMSAdapter_v1_8_R1 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -131,6 +135,8 @@ public final class NMSAdapter_v1_8_R1 implements NMSAdapter {
((TileEntity) tileEntity).a(nbtTagCompound);
});
}
return tileEntityChunkLoader;
}
@Override
@ -175,7 +181,7 @@ public final class NMSAdapter_v1_8_R1 implements NMSAdapter {
mobSpawner.a(nbtTagCompound);
}
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox {
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -263,6 +269,11 @@ public final class NMSAdapter_v1_8_R1 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_8_R1 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_8_R2.AxisAlignedBB;
import net.minecraft.server.v1_8_R2.DamageSource;
import net.minecraft.server.v1_8_R2.EntityArmorStand;
@ -10,9 +11,10 @@ import net.minecraft.server.v1_8_R2.Vec3D;
import net.minecraft.server.v1_8_R2.World;
import org.bukkit.craftbukkit.v1_8_R2.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_8_R2.entity.CraftEntity;
import org.bukkit.entity.Entity;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_8_R2 extends EntityArmorStand {
public final class EntityHolograms_v1_8_R2 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_8_R2(World world, double x, double y, double z){
super(world, x, y, z);
@ -26,14 +28,21 @@ public final class EntityHolograms_v1_8_R2 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(name);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void t_() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_8_R2.Block;
import net.minecraft.server.v1_8_R2.BlockPosition;
@ -23,6 +25,8 @@ import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_8_R2.util.LongHash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -112,7 +116,7 @@ public final class NMSAdapter_v1_8_R2 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -129,6 +133,8 @@ public final class NMSAdapter_v1_8_R2 implements NMSAdapter {
tileEntity.a(nbtTagCompound);
});
}
return tileEntityChunkLoader;
}
@Override
@ -172,7 +178,7 @@ public final class NMSAdapter_v1_8_R2 implements NMSAdapter {
mobSpawner.a(nbtTagCompound);
}
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox {
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -260,6 +266,11 @@ public final class NMSAdapter_v1_8_R2 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_8_R2 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_8_R3.AxisAlignedBB;
import net.minecraft.server.v1_8_R3.DamageSource;
import net.minecraft.server.v1_8_R3.EntityArmorStand;
@ -10,9 +11,10 @@ import net.minecraft.server.v1_8_R3.Vec3D;
import net.minecraft.server.v1_8_R3.World;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
import org.bukkit.entity.Entity;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_8_R3 extends EntityArmorStand {
public final class EntityHolograms_v1_8_R3 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_8_R3(World world, double x, double y, double z){
super(world, x, y, z);
@ -27,14 +29,21 @@ public final class EntityHolograms_v1_8_R3 extends EntityArmorStand {
this.onGround = true; // Workaround to force EntityTrackerEntry to send a teleport packet.
}
@Override
public void setHologramName(String name) {
super.setCustomName(name);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void t_() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_8_R3.Block;
import net.minecraft.server.v1_8_R3.BlockPosition;
@ -23,6 +25,8 @@ import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_8_R3.util.LongHash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -112,7 +116,7 @@ public final class NMSAdapter_v1_8_R3 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -129,6 +133,8 @@ public final class NMSAdapter_v1_8_R3 implements NMSAdapter {
tileEntity.a(nbtTagCompound);
});
}
return tileEntityChunkLoader;
}
@Override
@ -172,7 +178,7 @@ public final class NMSAdapter_v1_8_R3 implements NMSAdapter {
mobSpawner.a(nbtTagCompound);
}
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox {
private static final class TileEntityChunkLoader extends TileEntity implements IUpdatePlayerListBox, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -260,6 +266,11 @@ public final class NMSAdapter_v1_8_R3 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_8_R3 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_9_R1.AxisAlignedBB;
import net.minecraft.server.v1_9_R1.DamageSource;
import net.minecraft.server.v1_9_R1.EntityArmorStand;
@ -14,9 +15,10 @@ import net.minecraft.server.v1_9_R1.Vec3D;
import net.minecraft.server.v1_9_R1.World;
import org.bukkit.craftbukkit.v1_9_R1.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_9_R1.entity.CraftEntity;
import org.bukkit.entity.Entity;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_9_R1 extends EntityArmorStand {
public final class EntityHolograms_v1_9_R1 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_9_R1(World world, double x, double y, double z){
super(world, x, y, z);
@ -31,14 +33,21 @@ public final class EntityHolograms_v1_9_R1 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(name);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void m() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_9_R1.Block;
import net.minecraft.server.v1_9_R1.BlockPosition;
@ -23,6 +25,8 @@ import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_9_R1.util.LongHash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -112,7 +116,7 @@ public final class NMSAdapter_v1_9_R1 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -129,6 +133,8 @@ public final class NMSAdapter_v1_9_R1 implements NMSAdapter {
tileEntity.a(nbtTagCompound);
});
}
return tileEntityChunkLoader;
}
@Override
@ -172,7 +178,7 @@ public final class NMSAdapter_v1_9_R1 implements NMSAdapter {
mobSpawner.a(nbtTagCompound);
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -260,6 +266,11 @@ public final class NMSAdapter_v1_9_R1 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_9_R1 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())

View File

@ -1,5 +1,6 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import net.minecraft.server.v1_9_R2.AxisAlignedBB;
import net.minecraft.server.v1_9_R2.DamageSource;
import net.minecraft.server.v1_9_R2.EntityArmorStand;
@ -14,9 +15,10 @@ import net.minecraft.server.v1_9_R2.Vec3D;
import net.minecraft.server.v1_9_R2.World;
import org.bukkit.craftbukkit.v1_9_R2.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_9_R2.entity.CraftEntity;
import org.bukkit.entity.Entity;
@SuppressWarnings("unused")
public final class EntityHolograms_v1_9_R2 extends EntityArmorStand {
public final class EntityHolograms_v1_9_R2 extends EntityArmorStand implements Hologram {
EntityHolograms_v1_9_R2(World world, double x, double y, double z){
super(world, x, y, z);
@ -31,14 +33,21 @@ public final class EntityHolograms_v1_9_R2 extends EntityArmorStand {
super.a(new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D));
}
@Override
public void setHologramName(String name) {
super.setCustomName(name);
}
@Override
public void removeHologram() {
super.die();
}
@Override
public Entity getEntity() {
return getBukkitEntity();
}
@Override
public void m() {
// Disable normal ticking for this entity.

View File

@ -1,8 +1,10 @@
package com.bgsoftware.wildloaders.nms;
import com.bgsoftware.wildloaders.WildLoadersPlugin;
import com.bgsoftware.wildloaders.api.holograms.Hologram;
import com.bgsoftware.wildloaders.api.loaders.ChunkLoader;
import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC;
import com.bgsoftware.wildloaders.loaders.ITileEntityChunkLoader;
import com.bgsoftware.wildloaders.loaders.WChunkLoader;
import net.minecraft.server.v1_9_R2.Block;
import net.minecraft.server.v1_9_R2.BlockPosition;
@ -23,6 +25,8 @@ import org.bukkit.craftbukkit.v1_9_R2.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_9_R2.util.LongHash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -112,7 +116,7 @@ public final class NMSAdapter_v1_9_R2 implements NMSAdapter {
}
@Override
public void createLoader(ChunkLoader chunkLoader) {
public ITileEntityChunkLoader createLoader(ChunkLoader chunkLoader) {
Location loaderLoc = chunkLoader.getLocation();
World world = ((CraftWorld) loaderLoc.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(loaderLoc.getX(), loaderLoc.getY(), loaderLoc.getZ());
@ -129,6 +133,8 @@ public final class NMSAdapter_v1_9_R2 implements NMSAdapter {
tileEntity.a(nbtTagCompound);
});
}
return tileEntityChunkLoader;
}
@Override
@ -172,7 +178,7 @@ public final class NMSAdapter_v1_9_R2 implements NMSAdapter {
mobSpawner.a(nbtTagCompound);
}
private static final class TileEntityChunkLoader extends TileEntity implements ITickable {
private static final class TileEntityChunkLoader extends TileEntity implements ITickable, ITileEntityChunkLoader {
private static final Map<Long, TileEntityChunkLoader> tileEntityChunkLoaderMap = new HashMap<>();
@ -260,6 +266,11 @@ public final class NMSAdapter_v1_9_R2 implements NMSAdapter {
}
}
@Override
public Collection<Hologram> getHolograms() {
return Collections.unmodifiableList(holograms);
}
private void updateName(EntityHolograms_v1_9_R2 hologram, String line){
hologram.setHologramName(line
.replace("{0}", chunkLoader.getWhoPlaced().getName())