Skip to content

Commit 0e2c366

Browse files
authored
Merge pull request #557 from rfresh2/packetlogger
PacketLogger Revamp
2 parents 353913d + 52cffa8 commit 0e2c366

13 files changed

+1823
-582
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.lambda.mixin.accessor.network;
2+
3+
import net.minecraft.network.play.client.CPacketClientSettings;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.gen.Accessor;
6+
7+
@Mixin(value = CPacketClientSettings.class)
8+
public interface AccessorCPacketClientSettings {
9+
@Accessor(value = "view")
10+
int getView();
11+
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.lambda.mixin.accessor.network;
2+
3+
import net.minecraft.network.play.client.CPacketConfirmTransaction;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.gen.Accessor;
6+
7+
@Mixin(value = CPacketConfirmTransaction.class)
8+
public interface AccessorCPacketConfirmTransaction {
9+
@Accessor(value = "accepted")
10+
boolean getAccepted();
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.lambda.mixin.accessor.network;
2+
3+
import net.minecraft.network.play.client.CPacketPlayerAbilities;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.gen.Accessor;
6+
7+
@Mixin(value = CPacketPlayerAbilities.class)
8+
public interface AccessorCPacketPlayerAbilities {
9+
@Accessor(value = "flySpeed")
10+
float getFlySpeed();
11+
@Accessor(value = "walkSpeed")
12+
float getWalkSpeed();
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.lambda.mixin.accessor.network;
2+
3+
import net.minecraft.network.play.client.CPacketResourcePackStatus;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.gen.Accessor;
6+
7+
@Mixin(value = CPacketResourcePackStatus.class)
8+
public interface AccessorCPacketResourcePackStatus {
9+
@Accessor(value = "action")
10+
CPacketResourcePackStatus.Action getAction();
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.lambda.mixin.accessor.network;
2+
3+
import net.minecraft.network.play.client.CPacketSpectate;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.gen.Accessor;
6+
7+
import java.util.UUID;
8+
9+
@Mixin(value = CPacketSpectate.class)
10+
public interface AccessorCPacketSpectate {
11+
@Accessor(value = "id")
12+
UUID getId();
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.lambda.mixin.accessor.network;
2+
3+
import net.minecraft.network.play.server.SPacketCloseWindow;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.gen.Accessor;
6+
7+
@Mixin(value = SPacketCloseWindow.class)
8+
public interface AccessorSPacketCloseWindow {
9+
@Accessor(value = "windowId")
10+
int getWindowId();
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.lambda.mixin.accessor.network;
2+
3+
import net.minecraft.network.play.server.SPacketMaps;
4+
import net.minecraft.world.storage.MapDecoration;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.gen.Accessor;
7+
8+
@Mixin(value = SPacketMaps.class)
9+
public interface AccessorSPacketMaps {
10+
@Accessor(value = "mapScale")
11+
byte getMapScale();
12+
@Accessor(value = "trackingPosition")
13+
boolean getTrackingPosition();
14+
@Accessor(value = "icons")
15+
MapDecoration[] getIcons();
16+
@Accessor(value = "minX")
17+
int getMinX();
18+
@Accessor(value = "minZ")
19+
int getMinZ();
20+
@Accessor(value = "columns")
21+
int getColumns();
22+
@Accessor(value = "rows")
23+
int getRows();
24+
@Accessor(value = "mapDataBytes")
25+
byte[] getMapDataBytes();
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.lambda.mixin.accessor.network;
2+
3+
import net.minecraft.network.play.server.SPacketWorldBorder;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.gen.Accessor;
6+
7+
@Mixin(value = SPacketWorldBorder.class)
8+
public interface AccessorSPacketWorldBorder {
9+
@Accessor(value = "action")
10+
SPacketWorldBorder.Action getAction();
11+
@Accessor(value = "size")
12+
int getSize();
13+
@Accessor(value = "centerX")
14+
double getCenterX();
15+
@Accessor(value = "centerZ")
16+
double getCenterZ();
17+
@Accessor(value = "targetSize")
18+
double getTargetSize();
19+
@Accessor(value = "diameter")
20+
double getDiameter();
21+
@Accessor(value = "timeUntilTarget")
22+
long getTimeUntilTarget();
23+
@Accessor(value = "warningTime")
24+
int getWarningTime();
25+
@Accessor(value = "warningDistance")
26+
int getWarningDistance();
27+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.lambda.client.gui.hudgui.elements.misc
2+
3+
import com.lambda.client.event.SafeClientEvent
4+
import com.lambda.client.gui.hudgui.LabelHud
5+
import com.lambda.client.module.modules.player.PacketLogger
6+
import java.util.*
7+
8+
internal object PacketLogViewer: LabelHud(
9+
name = "PacketLogViewer",
10+
category = Category.MISC,
11+
description = "Displays the packet log"
12+
) {
13+
14+
private val maxLines by setting("Max Lines", 50, 1..200, 1)
15+
private val logs: MutableList<String> = Collections.synchronizedList(mutableListOf())
16+
private val onlyWhenLoggerEnabled by setting("Only When Logger Enabled", true)
17+
private val clearButton by setting("Clear", false, consumer = { _, _ ->
18+
clear()
19+
false
20+
})
21+
22+
init {
23+
visibleSetting.valueListeners.add { _, it ->
24+
if (!it) {
25+
clear()
26+
}
27+
}
28+
}
29+
30+
override fun SafeClientEvent.updateText() {
31+
displayText.clear()
32+
if (onlyWhenLoggerEnabled && PacketLogger.isDisabled) return
33+
if (logs.isNotEmpty() && (PacketLogger.logMode == PacketLogger.LogMode.ALL || PacketLogger.logMode == PacketLogger.LogMode.ONLY_HUD)) {
34+
displayText.addLine("PacketLog Viewer", secondaryColor)
35+
synchronized(logs) {
36+
logs.forEach { log ->
37+
log.split(",").forEachIndexed { i, s ->
38+
displayText.add(s, if (i % 2 == 0) secondaryColor else primaryColor)
39+
}
40+
displayText.addLine("")
41+
}
42+
}
43+
}
44+
}
45+
46+
fun addPacketLog(log: String) {
47+
synchronized(logs) {
48+
logs.add(log)
49+
if (logs.size > maxLines) {
50+
logs.removeAt(0)
51+
}
52+
}
53+
}
54+
55+
fun clear() {
56+
synchronized(logs) {
57+
logs.clear()
58+
}
59+
}
60+
}

src/main/kotlin/com/lambda/client/mixin/extension/Network.kt

+72-19
Original file line numberDiff line numberDiff line change
@@ -4,49 +4,54 @@ import com.lambda.mixin.accessor.network.*
44
import net.minecraft.network.play.client.*
55
import net.minecraft.network.play.server.*
66
import net.minecraft.util.text.ITextComponent
7+
import net.minecraft.world.storage.MapDecoration
8+
import java.util.*
79

810
var CPacketChatMessage.chatMessage: String
9-
get() = this.message
11+
get() = message
1012
set(value) {
1113
(this as AccessorCPacketChatMessage).setMessage(value)
1214
}
15+
val CPacketClientSettings.view: Int
16+
get() = (this as AccessorCPacketClientSettings).view
1317

1418
val CPacketCloseWindow.windowID: Int
1519
get() = (this as AccessorCPacketCloseWindow).kbGetWindowID()
16-
20+
val CPacketConfirmTransaction.accepted: Boolean
21+
get() = (this as AccessorCPacketConfirmTransaction).accepted
1722

1823
var CPacketPlayer.playerX: Double
19-
get() = this.getX(0.0)
24+
get() = getX(0.0)
2025
set(value) {
2126
(this as AccessorCPacketPlayer).setX(value)
2227
}
2328

2429
var CPacketPlayer.playerY: Double
25-
get() = this.getY(0.0)
30+
get() = getY(0.0)
2631
set(value) {
2732
(this as AccessorCPacketPlayer).setY(value)
2833
}
2934

3035
var CPacketPlayer.playerZ: Double
31-
get() = this.getZ(0.0)
36+
get() = getZ(0.0)
3237
set(value) {
3338
(this as AccessorCPacketPlayer).setZ(value)
3439
}
3540

3641
var CPacketPlayer.playerYaw: Float
37-
get() = this.getYaw(0.0f)
42+
get() = getYaw(0.0f)
3843
set(value) {
3944
(this as AccessorCPacketPlayer).setYaw(value)
4045
}
4146

4247
var CPacketPlayer.playerPitch: Float
43-
get() = this.getPitch(0.0f)
48+
get() = getPitch(0.0f)
4449
set(value) {
4550
(this as AccessorCPacketPlayer).setPitch(value)
4651
}
4752

4853
var CPacketPlayer.playerIsOnGround: Boolean
49-
get() = this.isOnGround
54+
get() = isOnGround
5055
set(value) {
5156
(this as AccessorCPacketPlayer).setOnGround(value)
5257
}
@@ -63,14 +68,23 @@ var CPacketPlayer.playerRotating: Boolean
6368
(this as AccessorCPacketPlayer).rotating = value
6469
}
6570

71+
val CPacketPlayerAbilities.flySpeed: Float
72+
get() = (this as AccessorCPacketPlayerAbilities).flySpeed
73+
val CPacketPlayerAbilities.walkSpeed: Float
74+
get() = (this as AccessorCPacketPlayerAbilities).walkSpeed
75+
val CPacketResourcePackStatus.action: CPacketResourcePackStatus.Action
76+
get() = (this as AccessorCPacketResourcePackStatus).action
77+
val CPacketSpectate.uuid: UUID
78+
get() = (this as AccessorCPacketSpectate).id
79+
6680
var CPacketUseEntity.useEntityId: Int
6781
get() = (this as AccessorCPacketUseEntity).id
6882
set(value) {
6983
(this as AccessorCPacketUseEntity).id = value
7084
}
7185

7286
var CPacketUseEntity.useEntityAction: CPacketUseEntity.Action
73-
get() = this.action
87+
get() = action
7488
set(value) {
7589
(this as AccessorCPacketUseEntity).setAction(value)
7690
}
@@ -85,55 +99,75 @@ var CPacketUseEntity.useEntityAction: CPacketUseEntity.Action
8599
}
86100

87101
var SPacketChat.textComponent: ITextComponent
88-
get() = this.chatComponent
102+
get() = chatComponent
89103
set(value) {
90104
(this as AccessorSPacketChat).setChatComponent(value)
91105
}
92106

107+
val SPacketCloseWindow.windowId: Int
108+
get() = (this as AccessorSPacketCloseWindow).windowId
109+
93110
var SPacketEntityVelocity.entityVelocityMotionX: Int
94-
get() = this.motionX
111+
get() = motionX
95112
set(value) {
96113
(this as AccessorSPacketEntityVelocity).setMotionX(value)
97114
}
98115

99116
var SPacketEntityVelocity.entityVelocityMotionY: Int
100-
get() = this.motionY
117+
get() = motionY
101118
set(value) {
102119
(this as AccessorSPacketEntityVelocity).setMotionY(value)
103120
}
104121

105122
var SPacketEntityVelocity.entityVelocityMotionZ: Int
106-
get() = this.motionZ
123+
get() = motionZ
107124
set(value) {
108125
(this as AccessorSPacketEntityVelocity).setMotionZ(value)
109126
}
110127

111128
var SPacketExplosion.explosionMotionX: Float
112-
get() = this.motionX
129+
get() = motionX
113130
set(value) {
114131
(this as AccessorSPacketExplosion).setMotionX(value)
115132
}
116133

117134
var SPacketExplosion.explosionMotionY: Float
118-
get() = this.motionY
135+
get() = motionY
119136
set(value) {
120137
(this as AccessorSPacketExplosion).setMotionY(value)
121138
}
122139

123140
var SPacketExplosion.explosionMotionZ: Float
124-
get() = this.motionZ
141+
get() = motionZ
125142
set(value) {
126143
(this as AccessorSPacketExplosion).setMotionZ(value)
127144
}
128145

146+
val SPacketMaps.mapScale: Byte
147+
get() = (this as AccessorSPacketMaps).mapScale
148+
val SPacketMaps.trackingPosition: Boolean
149+
get() = (this as AccessorSPacketMaps).trackingPosition
150+
val SPacketMaps.icons: Array<MapDecoration>
151+
get() = (this as AccessorSPacketMaps).icons
152+
val SPacketMaps.minX: Int
153+
get() = (this as AccessorSPacketMaps).minX
154+
val SPacketMaps.minZ: Int
155+
get() = (this as AccessorSPacketMaps).minZ
156+
val SPacketMaps.columns: Int
157+
get() = (this as AccessorSPacketMaps).columns
158+
val SPacketMaps.rows: Int
159+
get() = (this as AccessorSPacketMaps).rows
160+
val SPacketMaps.mapDataBytes: ByteArray
161+
get() = (this as AccessorSPacketMaps).mapDataBytes
162+
129163
var SPacketPlayerPosLook.playerPosLookYaw: Float
130-
get() = this.yaw
164+
get() = yaw
131165
set(value) {
132166
(this as AccessorSPacketPosLook).setYaw(value)
133167
}
134168

135169
var SPacketPlayerPosLook.playerPosLookPitch: Float
136-
get() = this.pitch
170+
get() = pitch
137171
set(value) {
138172
(this as AccessorSPacketPosLook).setPitch(value)
139173
}
@@ -148,4 +182,23 @@ var SPacketEntityHeadLook.entityHeadLookEntityId: Int
148182
get() = (this as AccessorSPacketEntityHeadLook).entityId
149183
set(value) {
150184
(this as AccessorSPacketEntityHeadLook).entityId = value
151-
}
185+
}
186+
187+
val SPacketWorldBorder.action: SPacketWorldBorder.Action
188+
get() = (this as AccessorSPacketWorldBorder).action
189+
val SPacketWorldBorder.size: Int
190+
get() = (this as AccessorSPacketWorldBorder).size
191+
val SPacketWorldBorder.centerX: Double
192+
get() = (this as AccessorSPacketWorldBorder).centerX
193+
val SPacketWorldBorder.centerZ: Double
194+
get() = (this as AccessorSPacketWorldBorder).centerZ
195+
val SPacketWorldBorder.targetSize: Double
196+
get() = (this as AccessorSPacketWorldBorder).targetSize
197+
val SPacketWorldBorder.diameter: Double
198+
get() = (this as AccessorSPacketWorldBorder).diameter
199+
val SPacketWorldBorder.timeUntilTarget: Long
200+
get() = (this as AccessorSPacketWorldBorder).timeUntilTarget
201+
val SPacketWorldBorder.warningTime: Int
202+
get() = (this as AccessorSPacketWorldBorder).warningTime
203+
val SPacketWorldBorder.warningDistance: Int
204+
get() = (this as AccessorSPacketWorldBorder).warningDistance

0 commit comments

Comments
 (0)