Tracer-entity #147
@ -1,19 +1,26 @@
|
|||||||
package de.steamwar.bausystem.tracer;
|
package de.steamwar.bausystem.tracer;
|
||||||
|
|
||||||
import net.minecraft.server.v1_12_R1.*;
|
import net.minecraft.server.v1_12_R1.Blocks;
|
||||||
|
import net.minecraft.server.v1_12_R1.EntityFallingBlock;
|
||||||
|
import net.minecraft.server.v1_12_R1.EnumMoveType;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.craftbukkit.v1_12_R1.CraftWorld;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class TNTEntity_12 extends EntityFallingBlock {
|
public class TNTEntity_12 extends EntityFallingBlock implements AbstractTNTEntity {
|
||||||
|
|
||||||
private TNTPosition position;
|
private TNTPosition position;
|
||||||
|
|
||||||
public TNTEntity_12(World world, TNTPosition position) {
|
public TNTEntity_12(World world, TNTPosition position, Player player) {
|
||||||
super(world, position.getLocation().getX(), position.getLocation().getY(), position.getLocation().getZ(), Blocks.TNT.getBlockData());
|
super(((CraftWorld) world).getHandle(), position.getLocation().getX(), position.getLocation().getY(), position.getLocation().getZ(), Blocks.TNT.getBlockData());
|
||||||
this.position = position;
|
this.position = position;
|
||||||
|
|
||||||
this.setNoGravity(true);
|
this.setNoGravity(true);
|
||||||
this.ticksLived = -12000;
|
this.ticksLived = -12000;
|
||||||
this.dropItem = false;
|
this.dropItem = false;
|
||||||
this.setCustomNameVisible(true);
|
this.setCustomNameVisible(true);
|
||||||
|
|
||||||
|
display(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -21,4 +28,18 @@ public class TNTEntity_12 extends EntityFallingBlock {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AbstractTNTEntity display(Player player) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AbstractTNTEntity hide(Player player) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove() {
|
||||||
|
killEntity();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,27 @@
|
|||||||
package de.steamwar.bausystem.tracer;
|
package de.steamwar.bausystem.tracer;
|
||||||
|
|
||||||
import net.minecraft.server.v1_15_R1.*;
|
import net.minecraft.server.v1_15_R1.Blocks;
|
||||||
|
import net.minecraft.server.v1_15_R1.EntityFallingBlock;
|
||||||
|
import net.minecraft.server.v1_15_R1.EnumMoveType;
|
||||||
|
import net.minecraft.server.v1_15_R1.Vec3D;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.craftbukkit.v1_15_R1.CraftWorld;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class TNTEntity_15 extends EntityFallingBlock {
|
public class TNTEntity_15 extends EntityFallingBlock implements AbstractTNTEntity {
|
||||||
|
|
||||||
private TNTPosition position;
|
private TNTPosition position;
|
||||||
|
|
||||||
public TNTEntity_15(World world, TNTPosition position) {
|
public TNTEntity_15(World world, TNTPosition position, Player player) {
|
||||||
super(world, position.getLocation().getX(), position.getLocation().getY(), position.getLocation().getZ(), Blocks.TNT.getBlockData());
|
super(((CraftWorld) world).getHandle(), position.getLocation().getX(), position.getLocation().getY(), position.getLocation().getZ(), Blocks.TNT.getBlockData());
|
||||||
this.position = position;
|
this.position = position;
|
||||||
|
|
||||||
this.setNoGravity(true);
|
this.setNoGravity(true);
|
||||||
this.ticksLived = -12000;
|
this.ticksLived = -12000;
|
||||||
this.dropItem = false;
|
this.dropItem = false;
|
||||||
this.setCustomNameVisible(true);
|
this.setCustomNameVisible(true);
|
||||||
|
|
||||||
|
display(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -21,4 +29,18 @@ public class TNTEntity_15 extends EntityFallingBlock {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AbstractTNTEntity display(Player player) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AbstractTNTEntity hide(Player player) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove() {
|
||||||
|
killEntity();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
package de.steamwar.bausystem.tracer;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public interface AbstractTNTEntity {
|
||||||
|
|
||||||
|
AbstractTNTEntity display(Player player);
|
||||||
|
|
||||||
|
AbstractTNTEntity hide(Player player);
|
||||||
|
|
||||||
|
void remove();
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package de.steamwar.bausystem.tracer.show.mode;
|
||||||
|
|
||||||
|
import de.steamwar.bausystem.tracer.AbstractTNTEntity;
|
||||||
|
import de.steamwar.bausystem.tracer.TNTEntity_12;
|
||||||
|
import de.steamwar.bausystem.tracer.TNTEntity_15;
|
||||||
|
import de.steamwar.bausystem.tracer.TNTPosition;
|
||||||
|
import de.steamwar.bausystem.tracer.show.ShowMode;
|
||||||
|
import de.steamwar.core.Core;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class BasicShowMode implements ShowMode {
|
||||||
|
|
||||||
|
private final Player player;
|
||||||
|
|
||||||
|
private Set<AbstractTNTEntity> tntEntitySet = new HashSet<>();
|
||||||
|
|
||||||
|
public BasicShowMode(Player player) {
|
||||||
|
this.player = player;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void show(TNTPosition position) {
|
||||||
|
switch (Core.getVersion()) {
|
||||||
|
case 12:
|
||||||
|
tntEntitySet.add(new TNTEntity_12(player.getWorld(), position, player));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
tntEntitySet.add(new TNTEntity_15(player.getWorld(), position, player));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void hide() {
|
||||||
|
tntEntitySet.forEach(abstractTNTEntity -> abstractTNTEntity.hide(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
In neuem Issue referenzieren
Einen Benutzer sperren