Skip to content

Commit 98f9bf6

Browse files
committed
Fix issues with Geyser-Spigot that occurring with older server versions
1 parent dff7cf2 commit 98f9bf6

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

core/src/main/java/org/geysermc/geyser/entity/type/TextDisplayEntity.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ protected void initializeMetadata() {
6767
}
6868

6969
public void setText(EntityMetadata<Component, ?> entityMetadata) {
70-
this.dirtyMetadata.put(EntityDataTypes.NAME, MessageTranslator.convertMessage(entityMetadata.getValue()));
70+
this.dirtyMetadata.put(EntityDataTypes.NAME, MessageTranslator.convertMessage(entityMetadata.getValue(), session.locale()));
7171
calculateLineCount(entityMetadata.getValue());
7272
}
7373

core/src/main/java/org/geysermc/geyser/network/netty/LocalSession.java

+16
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@
3131
import io.netty.channel.ChannelFactory;
3232
import io.netty.channel.ChannelHandler;
3333
import io.netty.channel.ChannelOption;
34+
import io.netty.channel.DefaultEventLoopGroup;
35+
import io.netty.channel.EventLoopGroup;
3436
import io.netty.channel.ReflectiveChannelFactory;
3537
import io.netty.channel.unix.PreferredDirectByteBufAllocator;
38+
import io.netty.util.concurrent.DefaultThreadFactory;
3639
import org.checkerframework.checker.nullness.qual.NonNull;
3740
import org.geysermc.mcprotocollib.network.helper.NettyHelper;
3841
import org.geysermc.mcprotocollib.network.netty.MinecraftChannelInitializer;
@@ -42,11 +45,13 @@
4245
import java.net.InetSocketAddress;
4346
import java.net.SocketAddress;
4447
import java.util.concurrent.Executor;
48+
import java.util.concurrent.TimeUnit;
4549

4650
/**
4751
* Manages a Minecraft Java session over our LocalChannel implementations.
4852
*/
4953
public final class LocalSession extends ClientNetworkSession {
54+
private static DefaultEventLoopGroup DEFAULT_EVENT_LOOP_GROUP;
5055
private static PreferredDirectByteBufAllocator PREFERRED_DIRECT_BYTE_BUF_ALLOCATOR = null;
5156

5257
private final SocketAddress spoofedRemoteAddress;
@@ -68,6 +73,17 @@ protected void setOptions(Bootstrap bootstrap) {
6873
}
6974
}
7075

76+
@Override
77+
protected EventLoopGroup getEventLoopGroup() {
78+
if (DEFAULT_EVENT_LOOP_GROUP == null) {
79+
DEFAULT_EVENT_LOOP_GROUP = new DefaultEventLoopGroup(new DefaultThreadFactory(this.getClass(), true));
80+
Runtime.getRuntime().addShutdownHook(new Thread(
81+
() -> DEFAULT_EVENT_LOOP_GROUP.shutdownGracefully(100, 500, TimeUnit.MILLISECONDS)));
82+
}
83+
84+
return DEFAULT_EVENT_LOOP_GROUP;
85+
}
86+
7187
@Override
7288
protected ChannelHandler getChannelHandler() {
7389
return new MinecraftChannelInitializer<>(channel -> {

core/src/main/java/org/geysermc/geyser/session/GeyserSession.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@
173173
import org.geysermc.geyser.session.cache.WorldCache;
174174
import org.geysermc.geyser.text.GeyserLocale;
175175
import org.geysermc.geyser.translator.inventory.InventoryTranslator;
176+
import org.geysermc.geyser.translator.text.MessageTranslator;
176177
import org.geysermc.geyser.util.ChunkUtils;
177178
import org.geysermc.geyser.util.EntityUtils;
178179
import org.geysermc.geyser.util.InventoryUtils;
@@ -1025,7 +1026,7 @@ public void disconnect(Component reason) {
10251026
// Downstream's disconnect will fire an event that prints a log message
10261027
// Otherwise, we print a message here
10271028
String address = geyser.getConfig().isLogPlayerIpAddresses() ? upstream.getAddress().getAddress().toString() : "<IP address withheld>";
1028-
geyser.getLogger().info(GeyserLocale.getLocaleStringLog("geyser.network.disconnect", address, reason));
1029+
geyser.getLogger().info(GeyserLocale.getLocaleStringLog("geyser.network.disconnect", address, MessageTranslator.convertMessage(reason)));
10291030
}
10301031

10311032
// Disconnect upstream if necessary
@@ -1646,7 +1647,7 @@ public void sendDownstreamPacket(Packet packet, ProtocolState intendedState) {
16461647
}
16471648

16481649
if (protocol.getOutboundState() != intendedState) {
1649-
geyser.getLogger().warning("Tried to send " + packet.getClass().getSimpleName() + " packet while not in " + intendedState.name() + " outbound state. Current state: " + protocol.getOutboundState().name());
1650+
geyser.getLogger().debug("Tried to send " + packet.getClass().getSimpleName() + " packet while not in " + intendedState.name() + " outbound state. Current state: " + protocol.getOutboundState().name());
16501651
return;
16511652
}
16521653

0 commit comments

Comments
 (0)