Fixed Herobrine's Graveyard getting generated above ground level in Minecraft 1.18 and newer.
This commit is contained in:
parent
c0db064b4f
commit
45ecd1aef9
@ -66,7 +66,7 @@ public class Graveyard extends Core {
|
|||||||
cachePreGraveyardPositionToDisk(loc, player);
|
cachePreGraveyardPositionToDisk(loc, player);
|
||||||
loc.setWorld(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName));
|
loc.setWorld(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName));
|
||||||
loc.setX(-2.49);
|
loc.setX(-2.49);
|
||||||
loc.setY(4);
|
loc.setY(Herobrine.getPluginCore().getConfigDB().graveyardYCoord);
|
||||||
loc.setZ(10.69);
|
loc.setZ(10.69);
|
||||||
loc.setYaw(-179.85f);
|
loc.setYaw(-179.85f);
|
||||||
loc.setPitch(0.44999f);
|
loc.setPitch(0.44999f);
|
||||||
@ -88,7 +88,8 @@ public class Graveyard extends Core {
|
|||||||
public void Start() {
|
public void Start() {
|
||||||
|
|
||||||
ticks = 0;
|
ticks = 0;
|
||||||
PluginCore.HerobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4, -4.12));
|
PluginCore.HerobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName),
|
||||||
|
-2.49, Herobrine.getPluginCore().getConfigDB().graveyardYCoord, -4.12));
|
||||||
HandlerInterval();
|
HandlerInterval();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -138,17 +139,21 @@ public class Graveyard extends Core {
|
|||||||
PluginCore.HerobrineNPC.lookAtPoint(ploc);
|
PluginCore.HerobrineNPC.lookAtPoint(ploc);
|
||||||
if (ticks == 1) {
|
if (ticks == 1) {
|
||||||
PluginCore.HerobrineNPC.moveTo(
|
PluginCore.HerobrineNPC.moveTo(
|
||||||
new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4, -4.12));
|
new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49,
|
||||||
|
Herobrine.getPluginCore().getConfigDB().graveyardYCoord, -4.12));
|
||||||
} else if (ticks == 40) {
|
} else if (ticks == 40) {
|
||||||
PluginCore.HerobrineNPC.moveTo(
|
PluginCore.HerobrineNPC.moveTo(
|
||||||
new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4, -0.5));
|
new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49,
|
||||||
|
Herobrine.getPluginCore().getConfigDB().graveyardYCoord, -0.5));
|
||||||
} else if (ticks == 60) {
|
} else if (ticks == 60) {
|
||||||
PluginCore.HerobrineNPC.moveTo(
|
PluginCore.HerobrineNPC.moveTo(
|
||||||
new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4, 5.1));
|
new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49,
|
||||||
|
Herobrine.getPluginCore().getConfigDB().graveyardYCoord, 5.1));
|
||||||
|
|
||||||
} else if (ticks == 84) {
|
} else if (ticks == 84) {
|
||||||
PluginCore.HerobrineNPC.moveTo(
|
PluginCore.HerobrineNPC.moveTo(
|
||||||
new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4, 7.5));
|
new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49,
|
||||||
|
Herobrine.getPluginCore().getConfigDB().graveyardYCoord, 7.5));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,18 +11,18 @@ public class GraveyardWorld {
|
|||||||
|
|
||||||
public static void Create() {
|
public static void Create() {
|
||||||
|
|
||||||
Location loc = new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), 0, 3, 0);
|
Location loc = new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), 0, -61, 0);
|
||||||
|
|
||||||
for (int x = -50; x <= 50; x++) {
|
for (int x = -50; x <= 50; x++) {
|
||||||
for (int z = -50; z <= 50; z++) {
|
for (int z = -50; z <= 50; z++) {
|
||||||
|
|
||||||
loc.getWorld().getBlockAt(x, 3, z).setType(Material.MYCELIUM);
|
loc.getWorld().getBlockAt(x, -61, z).setType(Material.MYCELIUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int MainX = -10;
|
int MainX = -10;
|
||||||
int MainY = 3;
|
int MainY = -61;
|
||||||
int MainZ = -10;
|
int MainZ = -10;
|
||||||
|
|
||||||
StructureLoader structLoader = new StructureLoader(Herobrine.getPluginCore().getInputStreamData("/res/graveyard_world.yml"));
|
StructureLoader structLoader = new StructureLoader(Herobrine.getPluginCore().getInputStreamData("/res/graveyard_world.yml"));
|
||||||
|
@ -89,6 +89,15 @@ public class ConfigDB {
|
|||||||
|
|
||||||
public boolean newVersionFound = false;
|
public boolean newVersionFound = false;
|
||||||
|
|
||||||
|
/* Starting with Minecraft 1.18, the Y coordinate used for the flat world generated for Herobrine's Graveyard is -61 instead of 3.
|
||||||
|
* This elevation change required graveyard generation as well as Herobrine and player location management to be shifted down to
|
||||||
|
* accommodate it. This change is only applied to graveyard worlds generated on 1.18 or newer, however, and would cause graveyards
|
||||||
|
* generated on older versions to not show Herobrine or the player in the right place. To work around this, we now use the
|
||||||
|
* "graveyardYCoord" variable to indicate the Y coordinate that should be used for Herobrine and the player when in the graveyard
|
||||||
|
* world. The default stored value is the one used for graveyard generated on 1.18 or newer. A conditional check will be used
|
||||||
|
* to change this value to 4 as part of the server launch process if doing so is appropriate. */
|
||||||
|
public double graveyardYCoord = -60;
|
||||||
|
|
||||||
private boolean isStartupDone = false;
|
private boolean isStartupDone = false;
|
||||||
|
|
||||||
final public String pluginVersionString = Bukkit.getServer().getPluginManager().getPlugin("Herobrine")
|
final public String pluginVersionString = Bukkit.getServer().getPluginManager().getPlugin("Herobrine")
|
||||||
|
@ -145,6 +145,16 @@ public class Herobrine extends JavaPlugin implements Listener {
|
|||||||
wc.createWorld();
|
wc.createWorld();
|
||||||
|
|
||||||
GraveyardWorld.Create();
|
GraveyardWorld.Create();
|
||||||
|
|
||||||
|
/* Starting with Minecraft 1.18, the Y coordinate used for the flat world generated for Herobrine's Graveyard is -61 instead of 3.
|
||||||
|
* This elevation change required graveyard generation as well as Herobrine and player location management to be shifted down to
|
||||||
|
* accommodate it. This change is only applied to graveyard worlds generated on 1.18 or newer, however, and would cause graveyards
|
||||||
|
* generated on older versions to not show Herobrine or the player in the right place. To work around this, we use this conditional
|
||||||
|
* to set a "graveyardYCoord" configuration variable. By default, the value is set for a graveyard generated by 1.18 or newer. This
|
||||||
|
* conditional will check the position of the graveyard to determine if the value should be set for a pre-1.18 graveyard. */
|
||||||
|
if (Bukkit.getServer().getWorld(configdb.HerobrineWorldName).getBlockAt(0, 3, 0).getType() == Material.MYCELIUM) {
|
||||||
|
configdb.graveyardYCoord = 4;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Spawn Herobrine
|
// Spawn Herobrine
|
||||||
|
@ -302,8 +302,8 @@ public class PlayerListener implements Listener {
|
|||||||
if (event.getPlayer().getEntityId() != PluginCore.HerobrineEntityID) {
|
if (event.getPlayer().getEntityId() != PluginCore.HerobrineEntityID) {
|
||||||
if (event.getPlayer().getWorld() == Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName)) {
|
if (event.getPlayer().getWorld() == Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName)) {
|
||||||
Player player = (Player) event.getPlayer();
|
Player player = (Player) event.getPlayer();
|
||||||
player.teleport(new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49f, 4.f,
|
player.teleport(new Location(Bukkit.getServer().getWorld(Herobrine.getPluginCore().getConfigDB().HerobrineWorldName), -2.49f,
|
||||||
10.69f, -179.85f, 0.44999f));
|
Herobrine.getPluginCore().getConfigDB().graveyardYCoord, 10.69f, -179.85f, 0.44999f));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user