Adding query player language (#824)

This commit is contained in:
Ghoulboy authored and GitHub committed 2021-04-26 21:38:29 -03:00
1 parent 390c40ae74
commit 164122eba2
7 files changed
+49 -1

No files matched your search

@@ -0,0 +1,5 @@
package carpet.fakes;
public interface ClientSettingsC2SPacketInterface {
public String getLanguage();
}
@@ -7,5 +7,5 @@ public interface ServerPlayerEntityInterface
EntityPlayerActionPack getActionPack();
void invalidateEntityObjectReference();
boolean isInvalidEntityObject();
String getLanguage();
}
@@ -0,0 +1,18 @@
package carpet.mixins;
import carpet.fakes.ClientSettingsC2SPacketInterface;
import net.minecraft.network.packet.c2s.play.ClientSettingsC2SPacket;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@Mixin(ClientSettingsC2SPacket.class)
public class ClientSettingsC2SPacket_scarpetMixin implements ClientSettingsC2SPacketInterface {
@Shadow
private String language;
@Override
public String getLanguage(){
return this.language;
}
}
@@ -1,5 +1,6 @@
package carpet.mixins;
import carpet.fakes.ClientSettingsC2SPacketInterface;
import carpet.fakes.EntityInterface;
import carpet.fakes.ServerPlayerEntityInterface;
import carpet.script.EntityEventsGroup;
@@ -7,6 +8,7 @@ import com.mojang.authlib.GameProfile;
import net.minecraft.entity.Entity;
import net.minecraft.entity.damage.DamageSource;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.packet.c2s.play.ClientSettingsC2SPacket;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.stat.Stat;
@@ -126,4 +128,16 @@ public abstract class ServerPlayerEntity_scarpetEventMixin extends PlayerEntity
{
return isInvalidReference;
}
//getting player language
private String language;
public String getLanguage(){
return this.language;
}
@Inject(method = "setClientSettings", at = @At("HEAD"))
public void setClientSettings(ClientSettingsC2SPacket packet, CallbackInfo ci){
this.language = ((ClientSettingsC2SPacketInterface) packet).getLanguage();
}
}
@@ -535,6 +535,12 @@ public class EntityValue extends Value
});
put("air", (e, a) -> new NumericValue(e.getAir()));
put("language", (e, a)->{
if(!(e instanceof ServerPlayerEntity))
return NULL;
String lang = ((ServerPlayerEntityInterface) e).getLanguage();
return StringValue.of(lang);
});
put("persistence", (e, a) -> {
if (e instanceof MobEntity) return new NumericValue(((MobEntity) e).isPersistent());
return Value.NULL;
+1
View File
@@ -74,6 +74,7 @@
"ExperienceOrbEntityMixin",
"PlayerActionC2SPacketMixin",
"ServerPlayerEntityMixin",
"ClientSettingsC2SPacket_scarpetMixin",
"PlayerManager_coreMixin",
"PlayerManager_fakePlayersMixin",
"RedstoneWireBlockMixin",