diff options
| author | raven <citrons@mondecitronne.com> | 2026-03-21 21:18:36 -0500 |
|---|---|---|
| committer | raven <citrons@mondecitronne.com> | 2026-03-21 21:18:59 -0500 |
| commit | 352e600efe7eead12e0436806cb797932a883993 (patch) | |
| tree | 7ae02df25386a1d8c82e7ff410a3c865b982179b | |
| parent | b958f9ca9cad3b7d44797d49fd98e636d6b02fc4 (diff) | |
use HackControl
| -rw-r--r-- | classic/ext_hack_control.go | 13 | ||||
| -rw-r--r-- | server/player.go | 13 | ||||
| -rw-r--r-- | server/server.go | 1 |
3 files changed, 26 insertions, 1 deletions
diff --git a/classic/ext_hack_control.go b/classic/ext_hack_control.go new file mode 100644 index 0000000..1f65f91 --- /dev/null +++ b/classic/ext_hack_control.go @@ -0,0 +1,13 @@ +package classic + +type HackControl struct { + Flying byte + NoClip byte + Speeding byte + SpawnControl byte + ThirdPersonView byte + JumpHeight FShort +} +func (p *HackControl) PacketId() byte { + return 0x20 +} diff --git a/server/player.go b/server/player.go index e5a4547..5ac99da 100644 --- a/server/player.go +++ b/server/player.go @@ -86,13 +86,24 @@ func (p *player) kick(reason string) { } func (p *player) sendAuthInfo() { - var userType byte + var userType, hacks byte if p.state.Auth >= cheatAuth { userType = classic.OpUser + hacks = 1 } p.client.SendPacket(p, &classic.UpdateUserType { Type: userType, }) + if p.extensions["HackControl"] { + p.client.SendPacket(p, &classic.HackControl { + Flying: hacks, + NoClip: hacks, + Speeding: hacks, + SpawnControl: hacks, + ThirdPersonView: 1, + JumpHeight: 40, + }) + } } func (p *player) handlePacket(packet classic.Packet) { diff --git a/server/server.go b/server/server.go index a9ad605..6c73044 100644 --- a/server/server.go +++ b/server/server.go @@ -16,6 +16,7 @@ import ( var SoftwareName = "Metronode" var supportedExtensions = []string { "ExtEntityPositions", + "HackControl", } var requiredExtensions = []string { "ExtEntityPositions", |
