added player type
This commit is contained in:
1 parent
c3137203b2
commit
9a875c64e2
3 files changed
+36
-3
No files matched your search
@@ -155,6 +155,7 @@ public class CarpetExpression
|
||||
private final Expression expr;
|
||||
Expression getExpr() {return expr;}
|
||||
private static long tickStart = 0L;
|
||||
// dummy entity for dummy requirements in the loot tables (see snowball)
|
||||
private static FallingBlockEntity DUMMY_ENTITY = new FallingBlockEntity(EntityType.FALLING_BLOCK, null);
|
||||
|
||||
private static boolean stopAll = false;
|
||||
@@ -2157,6 +2158,17 @@ public class CarpetExpression
|
||||
* <p>String with gamemode, or <code>null</code> if not a player.</p>
|
||||
* <h3><code>query(e,'gamemode_id')</code></h3>
|
||||
* <p>Good'ol gamemode id, or null if not a player.</p>
|
||||
* <h3><code>query(e,'player_type')</code></h3>
|
||||
* <p>Returns <code>null</code> if the argument is not a player, otherwise:</p>
|
||||
* <ul>
|
||||
* <li><code>singleplayer</code>: for singleplayer game</li>
|
||||
* <li><code>multiplayer</code>: for players on a dedicated server</li>
|
||||
* <li><code>lan_host</code>: for singleplayer owner that opened the game to LAN</li>
|
||||
* <li><code>lan_player</code>: for all other players that connected to a LAN host</li>
|
||||
* <li><code>fake</code>: any carpet-spanwed fake player</li>
|
||||
* <li><code>shadow</code>: any carpet-shadowed real player</li>
|
||||
* <li><code>realms</code>: ?</li>
|
||||
* </ul>
|
||||
* <h3><code>query(e,'permission_level')</code></h3>
|
||||
* <p>Player's permission level, or <code>null</code> if not applicable for this entity.</p>
|
||||
*
|
||||
|
||||
@@ -4,6 +4,7 @@ import carpet.fakes.EntityInterface;
|
||||
import carpet.fakes.ItemEntityInterface;
|
||||
import carpet.fakes.MobEntityInterface;
|
||||
import carpet.helpers.Tracer;
|
||||
import carpet.patches.EntityPlayerMPFake;
|
||||
import carpet.script.CarpetContext;
|
||||
import carpet.script.EntityEventsGroup;
|
||||
import carpet.script.exception.InternalExpressionException;
|
||||
@@ -32,6 +33,7 @@ import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.predicate.entity.EntityPredicates;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.command.ServerCommandSource;
|
||||
import net.minecraft.server.integrated.IntegratedServer;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.text.LiteralText;
|
||||
@@ -311,6 +313,23 @@ public class EntityValue extends Value
|
||||
return Value.NULL;
|
||||
});
|
||||
|
||||
put("player_type", (e, a) -> {
|
||||
if (e instanceof PlayerEntity)
|
||||
{
|
||||
if (e instanceof EntityPlayerMPFake) return new StringValue(((EntityPlayerMPFake) e).isAShadow?"shadow":"fake");
|
||||
PlayerEntity p = (PlayerEntity)e;
|
||||
MinecraftServer server = p.getEntityWorld().getServer();
|
||||
if (server.isDedicated()) return new StringValue("multiplayer");
|
||||
boolean runningLan = server.isRemote();
|
||||
if (!runningLan) return new StringValue("singleplayer");
|
||||
boolean isowner = server.isOwner(p.getGameProfile());
|
||||
if (isowner) return new StringValue("lan_host");
|
||||
return new StringValue("lan player");
|
||||
// realms?
|
||||
}
|
||||
return Value.NULL;
|
||||
});
|
||||
|
||||
//spectating_entity
|
||||
// isGlowing
|
||||
put("effect", (e, a) ->
|
||||
|
||||
Reference in new issue
Block a user