Skip to content

Commit 8973686

Browse files
committed
fix: fix Player/Entity::isOnHotBlock
feat(tests): add player attributes test
1 parent 2f6e4a4 commit 8973686

File tree

3 files changed

+73
-14
lines changed

3 files changed

+73
-14
lines changed

src/legacy/api/EntityAPI.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "mc/world/phys/AABB.h"
3737
#include "mc/world/phys/HitResult.h"
3838
#include "mc/world/level/biome/Biome.h"
39+
#include "mc/entity/components/IsOnHotBlockFlagComponent.h"
3940

4041
#include <climits>
4142
#include <memory>
@@ -292,7 +293,7 @@ Local<Value> EntityClass::isOnHotBlock() {
292293
Actor* entity = get();
293294
if (!entity) return Local<Value>();
294295

295-
return Boolean::newBoolean(false); // TODO: check IsOnHotBlockTest to get the correct value
296+
return Boolean::newBoolean(entity->getEntityContext().hasComponent<IsOnHotBlockFlagComponent>());
296297
}
297298
CATCH("Fail in isOnHotBlock!")
298299
}

src/legacy/api/PlayerAPI.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
#include "mc/world/level/biome/Biome.h"
9494
#include "mc/world/level/material/Material.h"
9595
#include "mc/world/scores/Objective.h"
96+
#include "mc/entity/components/IsOnHotBlockFlagComponent.h"
9697

9798
#include <algorithm>
9899
#include <climits>
@@ -1235,7 +1236,7 @@ Local<Value> PlayerClass::isOnHotBlock() {
12351236
return Local<Value>();
12361237
}
12371238

1238-
return Boolean::newBoolean(false); // TODO: check IsOnHotBlockTest to get the correct value
1239+
return Boolean::newBoolean(player->getEntityContext().hasComponent<IsOnHotBlockFlagComponent>());
12391240
}
12401241
CATCH("Fail in isOnHotBlock!")
12411242
}

src/tests/LSETests/PlayerTests.js

Lines changed: 69 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,83 @@
11
export function TestPlayer(players) {
22
for (let player of players) {
33
GetFromViewVector(player)
4+
PrintPlayerAttributes(player)
45
}
56
}
67

78
function GetFromViewVector(player) {
8-
let en = player.getEntityFromViewVector(5.25)
9+
let en = player.getEntityFromViewVector(5.25);
910
if (en) {
10-
logger.info(`Entity: ${en.name}`)
11-
let bl = player.getBlockFromViewVector(true, false, player.distanceTo(en), false)
12-
if (bl) {
13-
logger.info(`Block: ${bl.name} ${bl.pos}`)
14-
} else {
15-
logger.info(`No block found`)
16-
}
11+
logger.info(`Entity looking at: ${en.name}`);
12+
logBlock(player.getBlockFromViewVector(true, false, player.distanceTo(en), false));
1713
} else {
18-
logger.info(`No entity found`)
19-
let bl = player.getBlockFromViewVector(true, false, 5.25, false)
14+
logger.info(`No entity looking at found`);
15+
logBlock(player.getBlockFromViewVector(true, false, 5.25, false));
16+
}
17+
18+
function logBlock(bl) {
2019
if (bl) {
21-
logger.info(`Block: ${bl.name} ${bl.pos}`)
20+
logger.info(`Block looking at: ${bl.name} ${bl.pos}`);
2221
} else {
23-
logger.info(`No block found`)
22+
logger.info(`No Block looking at found`);
2423
}
2524
}
25+
}
26+
27+
function PrintPlayerAttributes(player) {
28+
logger.info(`Name: ${player.name}`);
29+
logger.info(`Position: ${player.pos}`);
30+
logger.info(`Feet Position: ${player.feetPos}`);
31+
logger.info(`Block Position: ${player.blockPos}`);
32+
logger.info(`Last Death Position: ${player.lastDeathPos}`);
33+
logger.info(`Real Name: ${player.realName}`);
34+
logger.info(`XUID: ${player.xuid}`);
35+
logger.info(`UUID: ${player.uuid}`);
36+
logger.info(`Permission Level: ${player.permLevel}`);
37+
logger.info(`Game Mode: ${player.gameMode}`);
38+
logger.info(`Can Sleep: ${player.canSleep}`);
39+
logger.info(`Can Fly: ${player.canFly}`);
40+
logger.info(`Can Be Seen On Map: ${player.canBeSeenOnMap}`);
41+
logger.info(`Can Freeze: ${player.canFreeze}`);
42+
logger.info(`Can See Daylight: ${player.canSeeDaylight}`);
43+
logger.info(`Can Show Name Tag: ${player.canShowNameTag}`);
44+
logger.info(`Can Start Sleep In Bed: ${player.canStartSleepInBed}`);
45+
logger.info(`Can Pickup Items: ${player.canPickupItems}`);
46+
logger.info(`Max Health: ${player.maxHealth}`);
47+
logger.info(`Health: ${player.health}`);
48+
logger.info(`In Air: ${player.inAir}`);
49+
logger.info(`In Water: ${player.inWater}`);
50+
logger.info(`In Lava: ${player.inLava}`);
51+
logger.info(`In Rain: ${player.inRain}`);
52+
logger.info(`In Snow: ${player.inSnow}`);
53+
logger.info(`In Wall: ${player.inWall}`);
54+
logger.info(`In Water Or Rain: ${player.inWaterOrRain}`);
55+
logger.info(`In World: ${player.inWorld}`);
56+
logger.info(`In Clouds: ${player.inClouds}`);
57+
logger.info(`Speed: ${player.speed}`);
58+
logger.info(`Direction: ${player.direction}`);
59+
logger.info(`Unique ID: ${player.uniqueId}`);
60+
logger.info(`Language Code: ${player.langCode}`);
61+
logger.info(`Is Loading: ${player.isLoading}`);
62+
logger.info(`Is Invisible: ${player.isInvisible}`);
63+
logger.info(`Is Inside Portal: ${player.isInsidePortal}`);
64+
logger.info(`Is Hurt: ${player.isHurt}`);
65+
logger.info(`Is Trusting: ${player.isTrusting}`);
66+
logger.info(`Is Touching Damage Block: ${player.isTouchingDamageBlock}`);
67+
logger.info(`Is Hungry: ${player.isHungry}`);
68+
logger.info(`Is On Fire: ${player.isOnFire}`);
69+
logger.info(`Is On Ground: ${player.isOnGround}`);
70+
logger.info(`Is On Hot Block: ${player.isOnHotBlock}`);
71+
logger.info(`Is Trading: ${player.isTrading}`);
72+
logger.info(`Is Adventure: ${player.isAdventure}`);
73+
logger.info(`Is Gliding: ${player.isGliding}`);
74+
logger.info(`Is Survival: ${player.isSurvival}`);
75+
logger.info(`Is Spectator: ${player.isSpectator}`);
76+
logger.info(`Is Riding: ${player.isRiding}`);
77+
logger.info(`Is Dancing: ${player.isDancing}`);
78+
logger.info(`Is Creative: ${player.isCreative}`);
79+
logger.info(`Is Flying: ${player.isFlying}`);
80+
logger.info(`Is Sleeping: ${player.isSleeping}`);
81+
logger.info(`Is Moving: ${player.isMoving}`);
82+
logger.info(`Is Sneaking: ${player.isSneaking}`);
2683
}

0 commit comments

Comments
 (0)