Skip to content

Commit

Permalink
Merge pull request #557 from rfresh2/packetlogger
Browse files Browse the repository at this point in the history
PacketLogger Revamp
  • Loading branch information
Avanatiker authored Aug 8, 2023
2 parents 353913d + 52cffa8 commit 0e2c366
Show file tree
Hide file tree
Showing 13 changed files with 1,823 additions and 582 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.lambda.mixin.accessor.network;

import net.minecraft.network.play.client.CPacketClientSettings;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(value = CPacketClientSettings.class)
public interface AccessorCPacketClientSettings {
@Accessor(value = "view")
int getView();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.lambda.mixin.accessor.network;

import net.minecraft.network.play.client.CPacketConfirmTransaction;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(value = CPacketConfirmTransaction.class)
public interface AccessorCPacketConfirmTransaction {
@Accessor(value = "accepted")
boolean getAccepted();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.lambda.mixin.accessor.network;

import net.minecraft.network.play.client.CPacketPlayerAbilities;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(value = CPacketPlayerAbilities.class)
public interface AccessorCPacketPlayerAbilities {
@Accessor(value = "flySpeed")
float getFlySpeed();
@Accessor(value = "walkSpeed")
float getWalkSpeed();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.lambda.mixin.accessor.network;

import net.minecraft.network.play.client.CPacketResourcePackStatus;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(value = CPacketResourcePackStatus.class)
public interface AccessorCPacketResourcePackStatus {
@Accessor(value = "action")
CPacketResourcePackStatus.Action getAction();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.lambda.mixin.accessor.network;

import net.minecraft.network.play.client.CPacketSpectate;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

import java.util.UUID;

@Mixin(value = CPacketSpectate.class)
public interface AccessorCPacketSpectate {
@Accessor(value = "id")
UUID getId();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.lambda.mixin.accessor.network;

import net.minecraft.network.play.server.SPacketCloseWindow;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(value = SPacketCloseWindow.class)
public interface AccessorSPacketCloseWindow {
@Accessor(value = "windowId")
int getWindowId();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.lambda.mixin.accessor.network;

import net.minecraft.network.play.server.SPacketMaps;
import net.minecraft.world.storage.MapDecoration;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(value = SPacketMaps.class)
public interface AccessorSPacketMaps {
@Accessor(value = "mapScale")
byte getMapScale();
@Accessor(value = "trackingPosition")
boolean getTrackingPosition();
@Accessor(value = "icons")
MapDecoration[] getIcons();
@Accessor(value = "minX")
int getMinX();
@Accessor(value = "minZ")
int getMinZ();
@Accessor(value = "columns")
int getColumns();
@Accessor(value = "rows")
int getRows();
@Accessor(value = "mapDataBytes")
byte[] getMapDataBytes();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.lambda.mixin.accessor.network;

import net.minecraft.network.play.server.SPacketWorldBorder;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(value = SPacketWorldBorder.class)
public interface AccessorSPacketWorldBorder {
@Accessor(value = "action")
SPacketWorldBorder.Action getAction();
@Accessor(value = "size")
int getSize();
@Accessor(value = "centerX")
double getCenterX();
@Accessor(value = "centerZ")
double getCenterZ();
@Accessor(value = "targetSize")
double getTargetSize();
@Accessor(value = "diameter")
double getDiameter();
@Accessor(value = "timeUntilTarget")
long getTimeUntilTarget();
@Accessor(value = "warningTime")
int getWarningTime();
@Accessor(value = "warningDistance")
int getWarningDistance();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package com.lambda.client.gui.hudgui.elements.misc

import com.lambda.client.event.SafeClientEvent
import com.lambda.client.gui.hudgui.LabelHud
import com.lambda.client.module.modules.player.PacketLogger
import java.util.*

internal object PacketLogViewer: LabelHud(
name = "PacketLogViewer",
category = Category.MISC,
description = "Displays the packet log"
) {

private val maxLines by setting("Max Lines", 50, 1..200, 1)
private val logs: MutableList<String> = Collections.synchronizedList(mutableListOf())
private val onlyWhenLoggerEnabled by setting("Only When Logger Enabled", true)
private val clearButton by setting("Clear", false, consumer = { _, _ ->
clear()
false
})

init {
visibleSetting.valueListeners.add { _, it ->
if (!it) {
clear()
}
}
}

override fun SafeClientEvent.updateText() {
displayText.clear()
if (onlyWhenLoggerEnabled && PacketLogger.isDisabled) return
if (logs.isNotEmpty() && (PacketLogger.logMode == PacketLogger.LogMode.ALL || PacketLogger.logMode == PacketLogger.LogMode.ONLY_HUD)) {
displayText.addLine("PacketLog Viewer", secondaryColor)
synchronized(logs) {
logs.forEach { log ->
log.split(",").forEachIndexed { i, s ->
displayText.add(s, if (i % 2 == 0) secondaryColor else primaryColor)
}
displayText.addLine("")
}
}
}
}

fun addPacketLog(log: String) {
synchronized(logs) {
logs.add(log)
if (logs.size > maxLines) {
logs.removeAt(0)
}
}
}

fun clear() {
synchronized(logs) {
logs.clear()
}
}
}
91 changes: 72 additions & 19 deletions src/main/kotlin/com/lambda/client/mixin/extension/Network.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,49 +4,54 @@ import com.lambda.mixin.accessor.network.*
import net.minecraft.network.play.client.*
import net.minecraft.network.play.server.*
import net.minecraft.util.text.ITextComponent
import net.minecraft.world.storage.MapDecoration
import java.util.*

var CPacketChatMessage.chatMessage: String
get() = this.message
get() = message
set(value) {
(this as AccessorCPacketChatMessage).setMessage(value)
}
val CPacketClientSettings.view: Int
get() = (this as AccessorCPacketClientSettings).view

val CPacketCloseWindow.windowID: Int
get() = (this as AccessorCPacketCloseWindow).kbGetWindowID()

val CPacketConfirmTransaction.accepted: Boolean
get() = (this as AccessorCPacketConfirmTransaction).accepted

var CPacketPlayer.playerX: Double
get() = this.getX(0.0)
get() = getX(0.0)
set(value) {
(this as AccessorCPacketPlayer).setX(value)
}

var CPacketPlayer.playerY: Double
get() = this.getY(0.0)
get() = getY(0.0)
set(value) {
(this as AccessorCPacketPlayer).setY(value)
}

var CPacketPlayer.playerZ: Double
get() = this.getZ(0.0)
get() = getZ(0.0)
set(value) {
(this as AccessorCPacketPlayer).setZ(value)
}

var CPacketPlayer.playerYaw: Float
get() = this.getYaw(0.0f)
get() = getYaw(0.0f)
set(value) {
(this as AccessorCPacketPlayer).setYaw(value)
}

var CPacketPlayer.playerPitch: Float
get() = this.getPitch(0.0f)
get() = getPitch(0.0f)
set(value) {
(this as AccessorCPacketPlayer).setPitch(value)
}

var CPacketPlayer.playerIsOnGround: Boolean
get() = this.isOnGround
get() = isOnGround
set(value) {
(this as AccessorCPacketPlayer).setOnGround(value)
}
Expand All @@ -63,14 +68,23 @@ var CPacketPlayer.playerRotating: Boolean
(this as AccessorCPacketPlayer).rotating = value
}

val CPacketPlayerAbilities.flySpeed: Float
get() = (this as AccessorCPacketPlayerAbilities).flySpeed
val CPacketPlayerAbilities.walkSpeed: Float
get() = (this as AccessorCPacketPlayerAbilities).walkSpeed
val CPacketResourcePackStatus.action: CPacketResourcePackStatus.Action
get() = (this as AccessorCPacketResourcePackStatus).action
val CPacketSpectate.uuid: UUID
get() = (this as AccessorCPacketSpectate).id

var CPacketUseEntity.useEntityId: Int
get() = (this as AccessorCPacketUseEntity).id
set(value) {
(this as AccessorCPacketUseEntity).id = value
}

var CPacketUseEntity.useEntityAction: CPacketUseEntity.Action
get() = this.action
get() = action
set(value) {
(this as AccessorCPacketUseEntity).setAction(value)
}
Expand All @@ -85,55 +99,75 @@ var CPacketUseEntity.useEntityAction: CPacketUseEntity.Action
}

var SPacketChat.textComponent: ITextComponent
get() = this.chatComponent
get() = chatComponent
set(value) {
(this as AccessorSPacketChat).setChatComponent(value)
}

val SPacketCloseWindow.windowId: Int
get() = (this as AccessorSPacketCloseWindow).windowId

var SPacketEntityVelocity.entityVelocityMotionX: Int
get() = this.motionX
get() = motionX
set(value) {
(this as AccessorSPacketEntityVelocity).setMotionX(value)
}

var SPacketEntityVelocity.entityVelocityMotionY: Int
get() = this.motionY
get() = motionY
set(value) {
(this as AccessorSPacketEntityVelocity).setMotionY(value)
}

var SPacketEntityVelocity.entityVelocityMotionZ: Int
get() = this.motionZ
get() = motionZ
set(value) {
(this as AccessorSPacketEntityVelocity).setMotionZ(value)
}

var SPacketExplosion.explosionMotionX: Float
get() = this.motionX
get() = motionX
set(value) {
(this as AccessorSPacketExplosion).setMotionX(value)
}

var SPacketExplosion.explosionMotionY: Float
get() = this.motionY
get() = motionY
set(value) {
(this as AccessorSPacketExplosion).setMotionY(value)
}

var SPacketExplosion.explosionMotionZ: Float
get() = this.motionZ
get() = motionZ
set(value) {
(this as AccessorSPacketExplosion).setMotionZ(value)
}

val SPacketMaps.mapScale: Byte
get() = (this as AccessorSPacketMaps).mapScale
val SPacketMaps.trackingPosition: Boolean
get() = (this as AccessorSPacketMaps).trackingPosition
val SPacketMaps.icons: Array<MapDecoration>
get() = (this as AccessorSPacketMaps).icons
val SPacketMaps.minX: Int
get() = (this as AccessorSPacketMaps).minX
val SPacketMaps.minZ: Int
get() = (this as AccessorSPacketMaps).minZ
val SPacketMaps.columns: Int
get() = (this as AccessorSPacketMaps).columns
val SPacketMaps.rows: Int
get() = (this as AccessorSPacketMaps).rows
val SPacketMaps.mapDataBytes: ByteArray
get() = (this as AccessorSPacketMaps).mapDataBytes

var SPacketPlayerPosLook.playerPosLookYaw: Float
get() = this.yaw
get() = yaw
set(value) {
(this as AccessorSPacketPosLook).setYaw(value)
}

var SPacketPlayerPosLook.playerPosLookPitch: Float
get() = this.pitch
get() = pitch
set(value) {
(this as AccessorSPacketPosLook).setPitch(value)
}
Expand All @@ -148,4 +182,23 @@ var SPacketEntityHeadLook.entityHeadLookEntityId: Int
get() = (this as AccessorSPacketEntityHeadLook).entityId
set(value) {
(this as AccessorSPacketEntityHeadLook).entityId = value
}
}

val SPacketWorldBorder.action: SPacketWorldBorder.Action
get() = (this as AccessorSPacketWorldBorder).action
val SPacketWorldBorder.size: Int
get() = (this as AccessorSPacketWorldBorder).size
val SPacketWorldBorder.centerX: Double
get() = (this as AccessorSPacketWorldBorder).centerX
val SPacketWorldBorder.centerZ: Double
get() = (this as AccessorSPacketWorldBorder).centerZ
val SPacketWorldBorder.targetSize: Double
get() = (this as AccessorSPacketWorldBorder).targetSize
val SPacketWorldBorder.diameter: Double
get() = (this as AccessorSPacketWorldBorder).diameter
val SPacketWorldBorder.timeUntilTarget: Long
get() = (this as AccessorSPacketWorldBorder).timeUntilTarget
val SPacketWorldBorder.warningTime: Int
get() = (this as AccessorSPacketWorldBorder).warningTime
val SPacketWorldBorder.warningDistance: Int
get() = (this as AccessorSPacketWorldBorder).warningDistance
Loading

0 comments on commit 0e2c366

Please sign in to comment.