SteamWar/BauSystem
Archiviert
13
0

Start BasicShowMode

Dieser Commit ist enthalten in:
jojo 2020-12-19 14:42:50 +01:00
Ursprung ba7888eb56
Commit 33584589a5
4 geänderte Dateien mit 105 neuen und 8 gelöschten Zeilen

Datei anzeigen

@ -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();
}
} }

Datei anzeigen

@ -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();
}
} }

Datei anzeigen

@ -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();
}

Datei anzeigen

@ -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));
}
}