Added useExactLoginLocation(). Closes BUKKIT-145
useExactLoginLocation() looks for settings.use-exact-login-location within bukkit.yml. If true, we will bypass Vanilla's behaviour of checking for collisions and moving the player if needed when they login. If false, we will continue to follow Vanilla's behaviour and move players that 'collide' with objects when they login.
Dieser Commit ist enthalten in:
Ursprung
c5a4bfd291
Commit
f1a35effb0
@ -120,11 +120,15 @@ public class ServerConfigurationManager {
|
|||||||
|
|
||||||
worldserver.chunkProviderServer.getChunkAt((int) entityplayer.locX >> 4, (int) entityplayer.locZ >> 4);
|
worldserver.chunkProviderServer.getChunkAt((int) entityplayer.locX >> 4, (int) entityplayer.locZ >> 4);
|
||||||
|
|
||||||
|
// CraftBukkit start
|
||||||
|
if (!cserver.useExactLoginLocation()) {
|
||||||
while (worldserver.a(entityplayer, entityplayer.boundingBox).size() != 0) {
|
while (worldserver.a(entityplayer, entityplayer.boundingBox).size() != 0) {
|
||||||
entityplayer.setPosition(entityplayer.locX, entityplayer.locY + 1.0D, entityplayer.locZ);
|
entityplayer.setPosition(entityplayer.locX, entityplayer.locY + 1.0D, entityplayer.locZ);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
entityplayer.setPosition(entityplayer.locX, entityplayer.locY + entityplayer.getBukkitEntity().getEyeHeight(), entityplayer.locZ);
|
||||||
|
}
|
||||||
|
|
||||||
// CraftBukkit start
|
|
||||||
PlayerJoinEvent playerJoinEvent = new PlayerJoinEvent(this.cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.name + " joined the game.");
|
PlayerJoinEvent playerJoinEvent = new PlayerJoinEvent(this.cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.name + " joined the game.");
|
||||||
this.cserver.getPluginManager().callEvent(playerJoinEvent);
|
this.cserver.getPluginManager().callEvent(playerJoinEvent);
|
||||||
|
|
||||||
|
@ -771,6 +771,10 @@ public final class CraftServer implements Server {
|
|||||||
return this.console.allowFlight;
|
return this.console.allowFlight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean useExactLoginLocation() {
|
||||||
|
return configuration.getBoolean("settings.use-exact-login-location");
|
||||||
|
}
|
||||||
|
|
||||||
public ChunkGenerator getGenerator(String world) {
|
public ChunkGenerator getGenerator(String world) {
|
||||||
ConfigurationSection section = configuration.getConfigurationSection("worlds");
|
ConfigurationSection section = configuration.getConfigurationSection("worlds");
|
||||||
ChunkGenerator result = null;
|
ChunkGenerator result = null;
|
||||||
|
@ -20,6 +20,7 @@ settings:
|
|||||||
permissions-file: permissions.yml
|
permissions-file: permissions.yml
|
||||||
update-folder: update
|
update-folder: update
|
||||||
ping-packet-limit: 100
|
ping-packet-limit: 100
|
||||||
|
use-exact-login-location: false
|
||||||
aliases:
|
aliases:
|
||||||
icanhasbukkit:
|
icanhasbukkit:
|
||||||
- version
|
- version
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren