ability to query client brand and server scarpet version.

This commit is contained in:
gnembon committed 2020-12-02 22:36:20 -04:00
1 parent 632d7c3268
commit 259bdc2c94
5 files changed
+26 -9

No files matched your search

+3 -1
View File
@@ -500,7 +500,6 @@ Available options in the scarpet app space:
* `game_version` - base version of the game
Server related properties
* `server_motd` - the motd of the server visible when joining
* `server_ip` - IP adress of the game hosted
* `server_whitelisted` - boolean indicating whether the access to the server is only for whitelisted players
@@ -517,3 +516,6 @@ Available options in the scarpet app space:
* `java_bits` - number indicating how many bits the Java has, 32 or 64
* `java_system_cpu_load` - current percentage of CPU used by the system
* `java_process_cpu_load` - current percentage of CPU used by JVM
Scarpet related properties
* `scarpet_version` - returns the version of the carpet your scarpet comes with.
+5
View File
@@ -366,6 +366,11 @@ Player's ping in milliseconds, or `null` if its not a player.
Player's permission level, or `null` if not applicable for this entity.
### `query(e, 'client_brand')`
Returns recognized type of client of the client connected. Possible results include `'vanilla'`, or `'carpet <version>'` where
version indicates the version of the connected carpet client.
### `query(e, 'effect', name?)`
Without extra arguments, it returns list of effect active on a living entity. Each entry is a triple of short
@@ -217,6 +217,13 @@ public class ServerNetworkHandler
}
public static String getPlayerStatus(ServerPlayerEntity player)
{
if (remoteCarpetPlayers.containsKey(player)) return "carpet "+remoteCarpetPlayers.get(player);
if (validCarpetPlayers.contains(player)) return "carpet "+CarpetSettings.carpetVersion;
return "vanilla";
}
private static class DataBuilder
{
private CompoundTag tag;
@@ -1,6 +1,7 @@
package carpet.script.utils;
import carpet.CarpetServer;
import carpet.CarpetSettings;
import carpet.script.CarpetContext;
import carpet.script.CarpetScriptHost;
import carpet.script.value.ListValue;
@@ -123,14 +124,7 @@ public class SystemInfo {
});
return carpetRules;
});
put("scarpet_version", c -> StringValue.of(CarpetSettings.carpetVersion));
}};
public static Value get(String what, CarpetContext cc)
@@ -9,6 +9,7 @@ import carpet.fakes.MobEntityInterface;
import carpet.fakes.HungerManagerInterface;
import carpet.fakes.ServerPlayerInteractionManagerInterface;
import carpet.helpers.Tracer;
import carpet.network.ServerNetworkHandler;
import carpet.patches.EntityPlayerMPFake;
import carpet.script.CarpetContext;
import carpet.script.EntityEventsGroup;
@@ -579,6 +580,14 @@ public class EntityValue extends Value
return Value.NULL;
});
put("client_brand", (e, a) -> {
if (e instanceof ServerPlayerEntity)
{
return StringValue.of(ServerNetworkHandler.getPlayerStatus((ServerPlayerEntity) e));
}
return Value.NULL;
});
put("team", (e, a) -> e.getScoreboardTeam()==null?Value.NULL:new StringValue(e.getScoreboardTeam().getName()));
put("ping", (e, a) -> {