3
0
Mirror von https://github.com/GeyserMC/Geyser.git synchronisiert 2024-12-25 15:50:14 +01:00

Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.17

Dieser Commit ist enthalten in:
Camotoy 2021-06-06 11:42:59 -04:00
Commit 19f8e2dfac
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 7EEFB66FE798081F
7 geänderte Dateien mit 56 neuen und 18 gelöschten Zeilen

Datei anzeigen

@ -9,3 +9,22 @@ commands:
geyser: geyser:
description: The main command for Geyser. description: The main command for Geyser.
usage: /geyser help usage: /geyser help
permissions:
geyser.command.help:
description: Shows help for all registered commands.
geyser.command.advancement:
description: Shows the advancements of the player on the server.
geyser.command.dump:
description: Dumps Geyser debug information for bug reports.
geyser.command.list:
description: List all players connected through Geyser.
geyser.command.offhand:
description: Puts an items in your offhand.
geyser.command.reload:
description: Reloads the Geyser configurations. Kicks all players when used!
geyser.command.shutdown:
description: Shuts down Geyser.
geyser.command.statistics:
description: Shows the statistics of the player on the server.
geyser.command.version:
description: Shows the current Geyser version and checks for updates.

Datei anzeigen

@ -106,6 +106,12 @@ public class GeyserConnector {
private static GeyserConnector instance; private static GeyserConnector instance;
/**
* This is used in GeyserConnect to stop the bedrock server binding to a port
*/
@Setter
private static boolean shouldStartListener = true;
@Setter @Setter
private AuthType defaultAuthType; private AuthType defaultAuthType;
@ -261,6 +267,8 @@ public class GeyserConnector {
} }
bedrockServer.setHandler(new ConnectorServerEventHandler(this)); bedrockServer.setHandler(new ConnectorServerEventHandler(this));
if (shouldStartListener) {
bedrockServer.bind().whenComplete((avoid, throwable) -> { bedrockServer.bind().whenComplete((avoid, throwable) -> {
if (throwable == null) { if (throwable == null) {
logger.info(LanguageUtils.getLocaleStringLog("geyser.core.start", config.getBedrock().getAddress(), String.valueOf(config.getBedrock().getPort()))); logger.info(LanguageUtils.getLocaleStringLog("geyser.core.start", config.getBedrock().getAddress(), String.valueOf(config.getBedrock().getPort())));
@ -269,6 +277,7 @@ public class GeyserConnector {
throwable.printStackTrace(); throwable.printStackTrace();
} }
}).join(); }).join();
}
if (config.getMetrics().isEnabled()) { if (config.getMetrics().isEnabled()) {
metrics = new Metrics(this, "GeyserMC", config.getMetrics().getUniqueId(), false, java.util.logging.Logger.getLogger("")); metrics = new Metrics(this, "GeyserMC", config.getMetrics().getUniqueId(), false, java.util.logging.Logger.getLogger(""));

Datei anzeigen

@ -29,6 +29,7 @@ import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadat
import com.nukkitx.math.vector.Vector3f; import com.nukkitx.math.vector.Vector3f;
import com.nukkitx.protocol.bedrock.data.entity.EntityData; import com.nukkitx.protocol.bedrock.data.entity.EntityData;
import com.nukkitx.protocol.bedrock.packet.AnimatePacket; import com.nukkitx.protocol.bedrock.packet.AnimatePacket;
import com.nukkitx.protocol.bedrock.packet.MoveEntityAbsolutePacket;
import org.geysermc.connector.entity.type.EntityType; import org.geysermc.connector.entity.type.EntityType;
import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.session.GeyserSession;
@ -65,7 +66,19 @@ public class BoatEntity extends Entity {
@Override @Override
public void moveAbsolute(GeyserSession session, Vector3f position, Vector3f rotation, boolean isOnGround, boolean teleported) { public void moveAbsolute(GeyserSession session, Vector3f position, Vector3f rotation, boolean isOnGround, boolean teleported) {
// We don't include the rotation (y) as it causes the boat to appear sideways // We don't include the rotation (y) as it causes the boat to appear sideways
super.moveAbsolute(session, position.add(0d, this.entityType.getOffset(), 0d), Vector3f.from(rotation.getX() + 90, 0, rotation.getX() + 90), isOnGround, teleported); setPosition(position.add(0d, this.entityType.getOffset(), 0d));
setRotation(Vector3f.from(rotation.getX() + 90, 0, rotation.getX() + 90));
setOnGround(isOnGround);
MoveEntityAbsolutePacket moveEntityPacket = new MoveEntityAbsolutePacket();
moveEntityPacket.setRuntimeEntityId(geyserId);
// Minimal glitching when ServerVehicleMovePacket is sent
moveEntityPacket.setPosition(session.getRidingVehicleEntity() == this ? position.up(EntityType.PLAYER.getOffset() - this.entityType.getOffset()) : this.position);
moveEntityPacket.setRotation(getBedrockRotation());
moveEntityPacket.setOnGround(isOnGround);
moveEntityPacket.setTeleported(teleported);
session.sendUpstreamPacket(moveEntityPacket);
} }
@Override @Override
@ -85,7 +98,6 @@ public class BoatEntity extends Entity {
@Override @Override
public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) {
// Time since last hit // Time since last hit
if (entityMetadata.getId() == 8) { if (entityMetadata.getId() == 8) {
metadata.put(EntityData.HURT_TIME, entityMetadata.getValue()); metadata.put(EntityData.HURT_TIME, entityMetadata.getValue());

Datei anzeigen

@ -130,7 +130,7 @@ public enum EntityType {
THROWN_ENDERPEARL(ThrowableEntity.class, 87, 0.25f, 0.25f, 0.25f, 0f, "minecraft:ender_pearl"), THROWN_ENDERPEARL(ThrowableEntity.class, 87, 0.25f, 0.25f, 0.25f, 0f, "minecraft:ender_pearl"),
LEASH_KNOT(LeashKnotEntity.class, 88, 0.5f, 0.375f), LEASH_KNOT(LeashKnotEntity.class, 88, 0.5f, 0.375f),
WITHER_SKULL(WitherSkullEntity.class, 89, 0.3125f), WITHER_SKULL(WitherSkullEntity.class, 89, 0.3125f),
BOAT(BoatEntity.class, 90, 0.7f, 1.6f, 1.6f, 0.35f), BOAT(BoatEntity.class, 90, 0.6f, 1.6f, 1.6f, 0.35f),
WITHER_SKULL_DANGEROUS(WitherSkullEntity.class, 91, 0f), WITHER_SKULL_DANGEROUS(WitherSkullEntity.class, 91, 0f),
LIGHTNING_BOLT(Entity.class, 93, 0f), LIGHTNING_BOLT(Entity.class, 93, 0f),
SMALL_FIREBALL(ItemedFireballEntity.class, 94, 0.3125f), SMALL_FIREBALL(ItemedFireballEntity.class, 94, 0.3125f),

Datei anzeigen

@ -45,9 +45,8 @@ public class BedrockMoveEntityAbsoluteTranslator extends PacketTranslator<MoveEn
float y = packet.getPosition().getY(); float y = packet.getPosition().getY();
if (session.getRidingVehicleEntity() instanceof BoatEntity) { if (session.getRidingVehicleEntity() instanceof BoatEntity) {
// Remove some Y position to prevents boats from looking like they're floating in water // Remove the offset to prevents boats from looking like they're floating in water
// Not by the full boat offset because 1.16.100 complains and that's probably not good for the future y -= EntityType.BOAT.getOffset();
y -= (EntityType.BOAT.getOffset() - 0.5f);
} }
ClientVehicleMovePacket clientVehicleMovePacket = new ClientVehicleMovePacket( ClientVehicleMovePacket clientVehicleMovePacket = new ClientVehicleMovePacket(
packet.getPosition().getX(), y, packet.getPosition().getZ(), packet.getPosition().getX(), y, packet.getPosition().getZ(),

Datei anzeigen

@ -40,7 +40,6 @@ public class JavaVehicleMoveTranslator extends PacketTranslator<ServerVehicleMov
Entity entity = session.getRidingVehicleEntity(); Entity entity = session.getRidingVehicleEntity();
if (entity == null) return; if (entity == null) return;
entity.moveAbsolute(session, Vector3f.from(packet.getX(), packet.getY(), packet.getZ()), packet.getYaw(), packet.getPitch(), false, false); entity.moveAbsolute(session, Vector3f.from(packet.getX(), packet.getY(), packet.getZ()), packet.getYaw(), packet.getPitch(), false, true);
} }
} }

Datei anzeigen

@ -71,7 +71,7 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.4</version> <version>1.18.20</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>