Skip to content

Instantly share code, notes, and snippets.

@electronicboy
Created October 14, 2023 15:14
Show Gist options
  • Save electronicboy/556db6d38da0179da4a39b8ef30f9e49 to your computer and use it in GitHub Desktop.
Save electronicboy/556db6d38da0179da4a39b8ef30f9e49 to your computer and use it in GitHub Desktop.
diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java
index aada98cf..2e4abedf 100644
--- a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java
+++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java
@@ -345,6 +345,7 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player,
@Override
public void sendMessage(@NonNull Identity identity, @NonNull Component message) {
+ Preconditions.checkState(this.getConnection().getState() == StateRegistry.PLAY, "Player connection must be in Play state");
Component translated = translateMessage(message);
connection.write(getChatBuilderFactory().builder()
@@ -356,6 +357,7 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player,
@NonNull MessageType type) {
Preconditions.checkNotNull(message, "message");
Preconditions.checkNotNull(type, "type");
+ Preconditions.checkState(this.getConnection().getState() == StateRegistry.PLAY, "Player connection must be in Play state");
Component translated = translateMessage(message);
@@ -367,6 +369,7 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player,
@Override
public void sendActionBar(net.kyori.adventure.text.@NonNull Component message) {
+ Preconditions.checkState(this.getConnection().getState() == StateRegistry.PLAY, "Player connection must be in Play state");
Component translated = translateMessage(message);
ProtocolVersion playerVersion = getProtocolVersion();
@@ -412,6 +415,7 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player,
@Override
public void sendPlayerListHeaderAndFooter(final Component header, final Component footer) {
+ Preconditions.checkState(this.getConnection().getState() == StateRegistry.PLAY, "Player connection must be in Play state");
Component translatedHeader = translateMessage(header);
Component translatedFooter = translateMessage(footer);
this.playerListHeader = translatedHeader;
@@ -423,6 +427,7 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player,
@Override
public void showTitle(net.kyori.adventure.title.@NonNull Title title) {
+ Preconditions.checkState(this.getConnection().getState() == StateRegistry.PLAY, "Player connection must be in Play state");
if (this.getProtocolVersion().compareTo(ProtocolVersion.MINECRAFT_1_8) >= 0) {
GsonComponentSerializer serializer = ProtocolUtils.getJsonChatSerializer(this
.getProtocolVersion());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment