Adding query player language (#824)
This commit is contained in:
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;
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
"ExperienceOrbEntityMixin",
|
||||
"PlayerActionC2SPacketMixin",
|
||||
"ServerPlayerEntityMixin",
|
||||
"ClientSettingsC2SPacket_scarpetMixin",
|
||||
"PlayerManager_coreMixin",
|
||||
"PlayerManager_fakePlayersMixin",
|
||||
"RedstoneWireBlockMixin",
|
||||
|
||||
Reference in new issue
Block a user