Skip to content

Commit 045841b

Browse files
committed
Get debug thread name from debug env instead of casting env class
1 parent 82f9763 commit 045841b

File tree

8 files changed

+43
-20
lines changed

8 files changed

+43
-20
lines changed

Common/src/main/kotlin/gay/object/hexdebug/adapter/DebugAdapter.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -524,8 +524,7 @@ class DebugAdapter(val player: ServerPlayer) : IDebugProtocolServer {
524524
.map { (threadId, debugger) ->
525525
Thread().apply {
526526
id = threadId
527-
name = "Thread $threadId"
528-
debugger.envName?.let { name += " ($it)" }
527+
name = "Thread $threadId (${debugger.debugEnv.name.string})"
529528
}
530529
}
531530
.sortedBy { it.id }

Common/src/main/kotlin/gay/object/hexdebug/debugger/circles/CircleDebugEnv.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import at.petrak.hexcasting.api.casting.eval.env.PlayerBasedCastEnv.AMBIT_RADIUS
88
import at.petrak.hexcasting.api.casting.eval.vm.CastingImage
99
import gay.`object`.hexdebug.core.api.debugging.BaseCircleDebugEnv
1010
import net.minecraft.core.BlockPos
11+
import net.minecraft.network.chat.Component
1112
import net.minecraft.server.level.ServerPlayer
1213

1314
class CircleDebugEnv(caster: ServerPlayer, val pos: BlockPos) : BaseCircleDebugEnv(caster) {
@@ -47,4 +48,8 @@ class CircleDebugEnv(caster: ServerPlayer, val pos: BlockPos) : BaseCircleDebugE
4748
override fun isCasterInRange(): Boolean {
4849
return caster.distanceToSqr(pos.center) <= AMBIT_RADIUS * AMBIT_RADIUS
4950
}
51+
52+
override fun getName(): Component {
53+
return caster.serverLevel().getBlockState(pos).block.name
54+
}
5055
}

Common/src/main/kotlin/gay/object/hexdebug/impl/HexDebugCoreAPIImpl.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ class HexDebugCoreAPIImpl : HexDebugCoreAPI {
2727
return DebugAdapterManager[caster]?.debugger(threadId)?.debugEnv
2828
}
2929

30-
override fun isSessionDebugging(debugEnv: DebugEnvironment): Boolean {
31-
return DebugAdapterManager[debugEnv.caster]?.debugger(debugEnv.sessionId) != null
32-
}
33-
3430
override fun createDebugThread(debugEnv: DebugEnvironment, threadId: Int?) {
3531
getAdapterOrThrow(debugEnv).createDebugThread(debugEnv, threadId)
3632
}

Common/src/main/kotlin/gay/object/hexdebug/items/DebuggerItem.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import gay.`object`.hexdebug.items.base.*
1515
import gay.`object`.hexdebug.utils.asItemPredicate
1616
import gay.`object`.hexdebug.utils.getWrapping
1717
import gay.`object`.hexdebug.utils.otherHand
18+
import gay.`object`.hexdebug.utils.styledHoverName
1819
import net.minecraft.client.player.LocalPlayer
1920
import net.minecraft.network.chat.Component
2021
import net.minecraft.server.level.ServerLevel
@@ -158,11 +159,7 @@ class DebuggerItem(
158159
} ?: return InteractionResultHolder.fail(stack)
159160

160161
val env = DebuggerCastEnv(serverPlayer, usedHand)
161-
val debugEnv = SimplePlayerBasedDebugEnv(
162-
serverPlayer,
163-
env,
164-
instrs
165-
)
162+
val debugEnv = SimplePlayerBasedDebugEnv(serverPlayer, env, instrs, stack.styledHoverName)
166163

167164
try {
168165
debugEnv.start(threadId)

Common/src/main/kotlin/gay/object/hexdebug/items/base/ShiftScrollable.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package gay.`object`.hexdebug.items.base
33
import at.petrak.hexcasting.api.utils.asTranslatedComponent
44
import at.petrak.hexcasting.api.utils.getInt
55
import at.petrak.hexcasting.api.utils.putInt
6-
import gay.`object`.hexdebug.adapter.DebugAdapterManager
76
import gay.`object`.hexdebug.config.HexDebugServerConfig
7+
import gay.`object`.hexdebug.core.api.HexDebugCoreAPI
88
import net.minecraft.network.chat.Component
99
import net.minecraft.server.level.ServerPlayer
1010
import net.minecraft.world.item.ItemStack
@@ -27,7 +27,7 @@ fun rotateThreadId(caster: ServerPlayer, stack: ItemStack, increase: Boolean): C
2727

2828
stack.putInt(THREAD_ID_TAG, threadId)
2929

30-
val envName = DebugAdapterManager[caster]?.debugger(threadId)?.envName
30+
val envName = HexDebugCoreAPI.INSTANCE.getDebugEnv(caster, threadId)?.name
3131
return if (envName != null) {
3232
"hexdebug.tooltip.thread.active".asTranslatedComponent(threadId, envName)
3333
} else {

Core/src/main/java/gay/object/hexdebug/core/api/HexDebugCoreAPI.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,6 @@ default DebugEnvironment getDebugEnv(@NotNull ServerPlayer caster, int threadId)
4444
return null;
4545
}
4646

47-
@Contract(pure = true)
48-
default boolean isSessionDebugging(@NotNull DebugEnvironment debugEnv) {
49-
return false;
50-
}
51-
5247
/**
5348
* @throws IllegalDebugSessionException if {@code debugEnv} is currently associated with an
5449
* active debug session
@@ -92,6 +87,13 @@ default void printDebugMessage(
9287
boolean withSource
9388
) {}
9489

90+
// implemented methods
91+
92+
@Contract(pure = true)
93+
default boolean isSessionDebugging(@NotNull DebugEnvironment debugEnv) {
94+
return getDebugEnv(debugEnv.getCaster(), debugEnv.getSessionId()) != null;
95+
}
96+
9597
// singleton service loading
9698

9799
HexDebugCoreAPI INSTANCE = findInstance();

Core/src/main/java/gay/object/hexdebug/core/api/debugging/DebugEnvironment.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import net.minecraft.network.chat.Component;
1010
import net.minecraft.server.level.ServerPlayer;
1111
import org.jetbrains.annotations.ApiStatus;
12+
import org.jetbrains.annotations.Contract;
1213
import org.jetbrains.annotations.NotNull;
1314
import org.jetbrains.annotations.Nullable;
1415

@@ -64,8 +65,19 @@ public abstract boolean resume(
6465
* For in-world debugees, returns whether the caster is close enough to the debuggee to allow
6566
* debug-related actions to be performed (eg. pause, step, restart).
6667
*/
68+
@Contract(pure = true)
6769
public abstract boolean isCasterInRange();
6870

71+
/**
72+
* Returns a display name for this debug session.
73+
* <br>
74+
* For example, debugger items return the name of the item, and spell circles return the name of
75+
* the impetus.
76+
*/
77+
@Contract(pure = true)
78+
@NotNull
79+
public abstract Component getName();
80+
6981
public void printDebugMessage(@NotNull Component message) {
7082
printDebugMessage(message, DebugOutputCategory.STDOUT, true);
7183
}
@@ -95,6 +107,7 @@ public void printDebugMishap(
95107
}
96108
}
97109

110+
@Contract(pure = true)
98111
public boolean isDebugging() {
99112
return HexDebugCoreAPI.INSTANCE.isSessionDebugging(this);
100113
}

Core/src/main/java/gay/object/hexdebug/core/api/debugging/SimplePlayerBasedDebugEnv.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import gay.object.hexdebug.core.api.exceptions.DebugException;
99
import gay.object.hexdebug.core.api.exceptions.IllegalDebugSessionException;
1010
import gay.object.hexdebug.core.api.exceptions.IllegalDebugThreadException;
11+
import net.minecraft.network.chat.Component;
1112
import net.minecraft.server.level.ServerPlayer;
1213
import org.jetbrains.annotations.NotNull;
1314
import org.jetbrains.annotations.Nullable;
@@ -19,15 +20,19 @@ public class SimplePlayerBasedDebugEnv extends DebugEnvironment {
1920
private final CastingEnvironment env;
2021
@NotNull
2122
private final List<Iota> iotas;
23+
@NotNull
24+
private final Component name;
2225

2326
public SimplePlayerBasedDebugEnv(
2427
@NotNull ServerPlayer caster,
2528
@NotNull CastingEnvironment env,
26-
@NotNull List<Iota> iotas
27-
) {
29+
@NotNull List<Iota> iotas,
30+
@NotNull Component name
31+
) {
2832
super(caster);
2933
this.env = env;
3034
this.iotas = iotas;
35+
this.name = name;
3136
}
3237

3338
@Override
@@ -54,6 +59,12 @@ public boolean isCasterInRange() {
5459
return true;
5560
}
5661

62+
@Override
63+
@NotNull
64+
public Component getName() {
65+
return name;
66+
}
67+
5768
public void start(@Nullable Integer threadId)
5869
throws IllegalDebugSessionException, IllegalDebugThreadException
5970
{

0 commit comments

Comments
 (0)