Skip to content

Commit

Permalink
Refactor common code, add missing condition
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Nov 14, 2020
1 parent 43ff637 commit 7743763
Show file tree
Hide file tree
Showing 10 changed files with 29 additions and 72 deletions.
2 changes: 1 addition & 1 deletion main/src/main/java/net/citizensnpcs/EventListen.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
public class EventListen implements Listener {
private final Map<String, NPCRegistry> registries;
private final SkinUpdateTracker skinUpdateTracker;
private final ListMultimap<ChunkCoord, NPC> toRespawn = ArrayListMultimap.create();
private final ListMultimap<ChunkCoord, NPC> toRespawn = ArrayListMultimap.create(64, 4);

EventListen(Map<String, NPCRegistry> registries) {
this.registries = registries;
Expand Down
12 changes: 12 additions & 0 deletions main/src/main/java/net/citizensnpcs/util/Util.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
Expand Down Expand Up @@ -110,6 +112,16 @@ public static String getTeamName(UUID id) {
return "CIT-" + id.toString().replace("-", "").substring(0, 12);
}

public static boolean inBlock(Entity entity) {
// TODO: bounding box aware?
Location loc = entity.getLocation(AT_LOCATION);
if (!Util.isLoaded(loc)) {
return false;
}
Block in = loc.getBlock();
return in.getType().isSolid() && in.getRelative(BlockFace.UP).getType().isSolid();
}

public static boolean isAlwaysFlyable(EntityType type) {
if (type.name().toLowerCase().equals("vex") || type.name().toLowerCase().equals("parrot")
|| type.name().toLowerCase().equals("bee") || type.name().toLowerCase().equals("phantom"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -246,15 +244,10 @@ public SkinPacketTracker getSkinTracker() {

@Override
public boolean inBlock() {
if (npc == null || noclip) {
if (npc == null || noclip || isSleeping()) {
return super.inBlock();
}
Location loc = getBukkitEntity().getLocation(LOADED_LOCATION);
if (!Util.isLoaded(loc)) {
return false;
}
Block in = loc.getBlock();
return in.getType().isSolid() && in.getRelative(BlockFace.UP).getType().isSolid();
return Util.inBlock(getBukkitEntity());
}

private void initialise(MinecraftServer minecraftServer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_11_R1.CraftServer;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -277,15 +275,10 @@ public SkinPacketTracker getSkinTracker() {

@Override
public boolean inBlock() {
if (npc == null || noclip) {
if (npc == null || noclip || isSleeping()) {
return super.inBlock();
}
Location loc = getBukkitEntity().getLocation(LOADED_LOCATION);
if (!Util.isLoaded(loc)) {
return false;
}
Block in = loc.getBlock();
return in.getType().isSolid() && in.getRelative(BlockFace.UP).getType().isSolid();
return Util.inBlock(getBukkitEntity());
}

private void initialise(MinecraftServer minecraftServer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_12_R1.CraftServer;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -297,15 +295,10 @@ public SkinPacketTracker getSkinTracker() {

@Override
public boolean inBlock() {
if (npc == null || noclip) {
if (npc == null || noclip || isSleeping()) {
return super.inBlock();
}
Location loc = getBukkitEntity().getLocation(LOADED_LOCATION);
if (!Util.isLoaded(loc)) {
return false;
}
Block in = loc.getBlock();
return in.getType().isSolid() && in.getRelative(BlockFace.UP).getType().isSolid();
return Util.inBlock(getBukkitEntity());
}

private void initialise(MinecraftServer minecraftServer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_13_R2.CraftServer;
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -276,15 +274,10 @@ public SkinPacketTracker getSkinTracker() {

@Override
public boolean inBlock() {
if (npc == null || noclip) {
if (npc == null || noclip || isSleeping()) {
return super.inBlock();
}
Location loc = getBukkitEntity().getLocation(LOADED_LOCATION);
if (!Util.isLoaded(loc)) {
return false;
}
Block in = loc.getBlock();
return in.getType().isSolid() && in.getRelative(BlockFace.UP).getType().isSolid();
return Util.inBlock(getBukkitEntity());
}

private void initialise(MinecraftServer minecraftServer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_14_R1.CraftServer;
import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -267,15 +265,10 @@ public SkinPacketTracker getSkinTracker() {

@Override
public boolean inBlock() {
if (npc == null || noclip) {
if (npc == null || noclip || isSleeping()) {
return super.inBlock();
}
Location loc = getBukkitEntity().getLocation(LOADED_LOCATION);
if (!Util.isLoaded(loc)) {
return false;
}
Block in = loc.getBlock();
return in.getType().isSolid() && in.getRelative(BlockFace.UP).getType().isSolid();
return Util.inBlock(getBukkitEntity());
}

private void initialise(MinecraftServer minecraftServer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_15_R1.CraftServer;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -268,15 +266,10 @@ public void h(double x, double y, double z) {

@Override
public boolean inBlock() {
if (npc == null || noclip) {
if (npc == null || noclip || isSleeping()) {
return super.inBlock();
}
Location loc = getBukkitEntity().getLocation(LOADED_LOCATION);
if (!Util.isLoaded(loc)) {
return false;
}
Block in = loc.getBlock();
return in.getType().isSolid() && in.getRelative(BlockFace.UP).getType().isSolid();
return Util.inBlock(getBukkitEntity());
}

private void initialise(MinecraftServer minecraftServer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_16_R3.CraftServer;
import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -282,15 +280,10 @@ public void i(double x, double y, double z) {

@Override
public boolean inBlock() {
if (npc == null || noclip) {
if (npc == null || noclip || isSleeping()) {
return super.inBlock();
}
Location loc = getBukkitEntity().getLocation(LOADED_LOCATION);
if (!Util.isLoaded(loc)) {
return false;
}
Block in = loc.getBlock();
return in.getType().isSolid() && in.getRelative(BlockFace.UP).getType().isSolid();
return Util.inBlock(getBukkitEntity());
}

private void initialise(MinecraftServer minecraftServer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_8_R3.CraftServer;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -246,15 +245,10 @@ public SkinPacketTracker getSkinTracker() {

@Override
public boolean inBlock() {
if (npc == null || noclip) {
if (npc == null || noclip || isSleeping()) {
return super.inBlock();
}
Location loc = getBukkitEntity().getLocation(LOADED_LOCATION);
if (!Util.isLoaded(loc)) {
return false;
}
org.bukkit.block.Block in = loc.getBlock();
return in.getType().isSolid() && in.getRelative(BlockFace.UP).getType().isSolid();
return Util.inBlock(getBukkitEntity());
}

private void initialise(MinecraftServer minecraftServer) {
Expand Down

0 comments on commit 7743763

Please sign in to comment.