refactor(config): rename package _config to config with cfg alias

The config package used `package _config` with a leading underscore,
which is unconventional in Go. Rename to `package config` (matching the
directory name) and use `cfg` as the standard import alias across all
93 importing files.
This commit is contained in:
Houmgaor
2026-02-21 13:20:15 +01:00
parent ad73f2fb55
commit f17cb96b52
98 changed files with 719 additions and 719 deletions

View File

@@ -3,7 +3,7 @@ package mhfitem
import (
"erupe-ce/common/byteframe"
"erupe-ce/common/token"
"erupe-ce/config"
cfg "erupe-ce/config"
)
// MHFItem represents a single item identified by its in-game item ID.
@@ -113,7 +113,7 @@ func SerializeWarehouseItems(i []MHFItemStack) []byte {
// ReadWarehouseEquipment deserializes an MHFEquipment from a ByteFrame. The
// binary layout varies by game version: sigils are present from G1 onward and
// an additional field is present from Z1 onward.
func ReadWarehouseEquipment(bf *byteframe.ByteFrame, mode _config.Mode) MHFEquipment {
func ReadWarehouseEquipment(bf *byteframe.ByteFrame, mode cfg.Mode) MHFEquipment {
var equipment MHFEquipment
equipment.Decorations = make([]MHFItem, 3)
equipment.Sigils = make([]MHFSigil, 3)
@@ -131,7 +131,7 @@ func ReadWarehouseEquipment(bf *byteframe.ByteFrame, mode _config.Mode) MHFEquip
for i := 0; i < 3; i++ {
equipment.Decorations[i].ItemID = bf.ReadUint16()
}
if mode >= _config.G1 {
if mode >= cfg.G1 {
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
equipment.Sigils[i].Effects[j].ID = bf.ReadUint16()
@@ -145,14 +145,14 @@ func ReadWarehouseEquipment(bf *byteframe.ByteFrame, mode _config.Mode) MHFEquip
equipment.Sigils[i].Unk3 = bf.ReadUint8()
}
}
if mode >= _config.Z1 {
if mode >= cfg.Z1 {
equipment.Unk1 = bf.ReadUint16()
}
return equipment
}
// ToBytes serializes the equipment to its binary protocol representation.
func (e MHFEquipment) ToBytes(mode _config.Mode) []byte {
func (e MHFEquipment) ToBytes(mode cfg.Mode) []byte {
bf := byteframe.NewByteFrame()
bf.WriteUint32(e.WarehouseID)
bf.WriteUint8(e.ItemType)
@@ -162,7 +162,7 @@ func (e MHFEquipment) ToBytes(mode _config.Mode) []byte {
for i := 0; i < 3; i++ {
bf.WriteUint16(e.Decorations[i].ItemID)
}
if mode >= _config.G1 {
if mode >= cfg.G1 {
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
bf.WriteUint16(e.Sigils[i].Effects[j].ID)
@@ -176,7 +176,7 @@ func (e MHFEquipment) ToBytes(mode _config.Mode) []byte {
bf.WriteUint8(e.Sigils[i].Unk3)
}
}
if mode >= _config.Z1 {
if mode >= cfg.Z1 {
bf.WriteUint16(e.Unk1)
}
return bf.Data()
@@ -184,7 +184,7 @@ func (e MHFEquipment) ToBytes(mode _config.Mode) []byte {
// SerializeWarehouseEquipment serializes a slice of equipment with a uint16
// count header for transmission in warehouse response packets.
func SerializeWarehouseEquipment(i []MHFEquipment, mode _config.Mode) []byte {
func SerializeWarehouseEquipment(i []MHFEquipment, mode cfg.Mode) []byte {
bf := byteframe.NewByteFrame()
bf.WriteUint16(uint16(len(i)))
bf.WriteUint16(0) // Unused

View File

@@ -4,7 +4,7 @@ import (
"bytes"
"erupe-ce/common/byteframe"
"erupe-ce/common/token"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"testing"
)
@@ -210,7 +210,7 @@ func TestDiffItemStacks(t *testing.T) {
}
func TestReadWarehouseEquipment(t *testing.T) {
mode := _config.Z1
mode := cfg.Z1
bf := byteframe.NewByteFrame()
bf.WriteUint32(12345) // WarehouseID
@@ -269,7 +269,7 @@ func TestReadWarehouseEquipment(t *testing.T) {
}
func TestReadWarehouseEquipment_ZeroWarehouseID(t *testing.T) {
mode := _config.Z1
mode := cfg.Z1
bf := byteframe.NewByteFrame()
bf.WriteUint32(0) // WarehouseID = 0
@@ -302,7 +302,7 @@ func TestReadWarehouseEquipment_ZeroWarehouseID(t *testing.T) {
}
func TestMHFEquipment_ToBytes(t *testing.T) {
mode := _config.Z1
mode := cfg.Z1
equipment := MHFEquipment{
WarehouseID: 12345,
@@ -337,7 +337,7 @@ func TestMHFEquipment_ToBytes(t *testing.T) {
}
func TestSerializeWarehouseEquipment(t *testing.T) {
mode := _config.Z1
mode := cfg.Z1
equipment := []MHFEquipment{
{
@@ -373,7 +373,7 @@ func TestSerializeWarehouseEquipment(t *testing.T) {
}
func TestMHFEquipment_RoundTrip(t *testing.T) {
mode := _config.Z1
mode := cfg.Z1
original := MHFEquipment{
WarehouseID: 99999,

View File

@@ -1,4 +1,4 @@
package _config
package config
import (
"fmt"

View File

@@ -1,4 +1,4 @@
package _config
package config
import (
"os"

View File

@@ -1,4 +1,4 @@
package _config
package config
import (
"testing"

View File

@@ -1,4 +1,4 @@
package _config
package config
import (
"testing"

View File

@@ -1,7 +1,7 @@
package main
import (
_config "erupe-ce/config"
cfg "erupe-ce/config"
"fmt"
"net"
"os"
@@ -42,7 +42,7 @@ var Commit = func() string {
return "unknown"
}
func setupDiscordBot(config *_config.Config, logger *zap.Logger) *discordbot.DiscordBot {
func setupDiscordBot(config *cfg.Config, logger *zap.Logger) *discordbot.DiscordBot {
bot, err := discordbot.NewDiscordBot(discordbot.Options{
Logger: logger,
Config: config,
@@ -76,7 +76,7 @@ func main() {
defer func() { _ = zapLogger.Sync() }()
logger := zapLogger.Named("main")
config, cfgErr := _config.LoadConfig()
config, cfgErr := cfg.LoadConfig()
if cfgErr != nil {
fmt.Println("\nFailed to start Erupe:\n" + fmt.Sprintf("Failed to load config: %s", cfgErr.Error()))
go wait()
@@ -341,7 +341,7 @@ func wait() {
}
}
func preventClose(config *_config.Config, text string) {
func preventClose(config *cfg.Config, text string) {
if config != nil && config.DisableSoftCrash {
os.Exit(0)
}

View File

@@ -1,8 +1,8 @@
package clientctx
import "erupe-ce/config"
import cfg "erupe-ce/config"
// ClientContext holds contextual data required for packet encoding/decoding.
type ClientContext struct {
RealClientMode _config.Mode
RealClientMode cfg.Mode
}

View File

@@ -3,7 +3,7 @@ package network
import (
"encoding/hex"
"errors"
"erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/crypto"
"io"
"net"
@@ -26,7 +26,7 @@ type Conn interface {
type CryptConn struct {
logger *zap.Logger
conn net.Conn
realClientMode _config.Mode
realClientMode cfg.Mode
readKeyRot uint32
sendKeyRot uint32
sentPackets int32
@@ -35,7 +35,7 @@ type CryptConn struct {
}
// NewCryptConn creates a new CryptConn with proper default values.
func NewCryptConn(conn net.Conn, mode _config.Mode, logger *zap.Logger) *CryptConn {
func NewCryptConn(conn net.Conn, mode cfg.Mode, logger *zap.Logger) *CryptConn {
if logger == nil {
logger = zap.NewNop()
}
@@ -69,7 +69,7 @@ func (cc *CryptConn) ReadPacket() ([]byte, error) {
var encryptedPacketBody []byte
// Don't know when support for this was added, works in Forward.4, doesn't work in Season 6.0
if cc.realClientMode < _config.F1 {
if cc.realClientMode < cfg.F1 {
encryptedPacketBody = make([]byte, cph.DataSize)
} else {
encryptedPacketBody = make([]byte, uint32(cph.DataSize)+(uint32(cph.Pf0-0x03)*0x1000))

View File

@@ -3,7 +3,7 @@ package network
import (
"bytes"
"errors"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/crypto"
"io"
"net"
@@ -54,7 +54,7 @@ func (m *mockConn) SetWriteDeadline(t time.Time) error { return nil }
func TestNewCryptConn(t *testing.T) {
mockConn := newMockConn(nil)
cc := NewCryptConn(mockConn, _config.ZZ, nil)
cc := NewCryptConn(mockConn, cfg.ZZ, nil)
if cc == nil {
t.Fatal("NewCryptConn() returned nil")
@@ -84,8 +84,8 @@ func TestNewCryptConn(t *testing.T) {
t.Errorf("prevSendPacketCombinedCheck = %d, want 0", cc.prevSendPacketCombinedCheck)
}
if cc.realClientMode != _config.ZZ {
t.Errorf("realClientMode = %d, want %d", cc.realClientMode, _config.ZZ)
if cc.realClientMode != cfg.ZZ {
t.Errorf("realClientMode = %d, want %d", cc.realClientMode, cfg.ZZ)
}
}
@@ -111,7 +111,7 @@ func TestCryptConn_SendPacket(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
mockConn := newMockConn(nil)
cc := NewCryptConn(mockConn, _config.ZZ, nil)
cc := NewCryptConn(mockConn, cfg.ZZ, nil)
err := cc.SendPacket(tt.data)
if err != nil {
@@ -155,7 +155,7 @@ func TestCryptConn_SendPacket(t *testing.T) {
func TestCryptConn_SendPacket_MultiplePackets(t *testing.T) {
mockConn := newMockConn(nil)
cc := NewCryptConn(mockConn, _config.ZZ, nil)
cc := NewCryptConn(mockConn, cfg.ZZ, nil)
// Send first packet
err := cc.SendPacket([]byte{0x01, 0x02})
@@ -190,7 +190,7 @@ func TestCryptConn_SendPacket_MultiplePackets(t *testing.T) {
func TestCryptConn_SendPacket_KeyRotation(t *testing.T) {
mockConn := newMockConn(nil)
cc := NewCryptConn(mockConn, _config.ZZ, nil)
cc := NewCryptConn(mockConn, cfg.ZZ, nil)
initialKey := cc.sendKeyRot
@@ -209,7 +209,7 @@ func TestCryptConn_SendPacket_KeyRotation(t *testing.T) {
func TestCryptConn_SendPacket_WriteError(t *testing.T) {
mockConn := newMockConn(nil)
mockConn.writeErr = errors.New("write error")
cc := NewCryptConn(mockConn, _config.ZZ, nil)
cc := NewCryptConn(mockConn, cfg.ZZ, nil)
err := cc.SendPacket([]byte{0x01, 0x02, 0x03})
// Note: Current implementation doesn't return write error
@@ -244,7 +244,7 @@ func TestCryptConn_ReadPacket_Success(t *testing.T) {
packet := append(headerBytes, encryptedData...)
mockConn := newMockConn(packet)
cc := NewCryptConn(mockConn, _config.Z1, nil)
cc := NewCryptConn(mockConn, cfg.Z1, nil)
// Set the key to match what we used for encryption
cc.readKeyRot = key
@@ -290,7 +290,7 @@ func TestCryptConn_ReadPacket_KeyRotation(t *testing.T) {
packet := append(headerBytes, encryptedData...)
mockConn := newMockConn(packet)
cc := NewCryptConn(mockConn, _config.Z1, nil)
cc := NewCryptConn(mockConn, cfg.Z1, nil)
cc.readKeyRot = key
result, err := cc.ReadPacket()
@@ -330,7 +330,7 @@ func TestCryptConn_ReadPacket_NoKeyRotation(t *testing.T) {
packet := append(headerBytes, encryptedData...)
mockConn := newMockConn(packet)
cc := NewCryptConn(mockConn, _config.Z1, nil)
cc := NewCryptConn(mockConn, cfg.Z1, nil)
cc.readKeyRot = key
originalKeyRot := cc.readKeyRot
@@ -352,7 +352,7 @@ func TestCryptConn_ReadPacket_NoKeyRotation(t *testing.T) {
func TestCryptConn_ReadPacket_HeaderReadError(t *testing.T) {
mockConn := newMockConn([]byte{0x01, 0x02}) // Only 2 bytes, header needs 14
cc := NewCryptConn(mockConn, _config.ZZ, nil)
cc := NewCryptConn(mockConn, cfg.ZZ, nil)
_, err := cc.ReadPacket()
if err == nil {
@@ -368,7 +368,7 @@ func TestCryptConn_ReadPacket_InvalidHeader(t *testing.T) {
// Create invalid header data (wrong endianness or malformed)
invalidHeader := []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
mockConn := newMockConn(invalidHeader)
cc := NewCryptConn(mockConn, _config.ZZ, nil)
cc := NewCryptConn(mockConn, cfg.ZZ, nil)
_, err := cc.ReadPacket()
if err == nil {
@@ -395,7 +395,7 @@ func TestCryptConn_ReadPacket_BodyReadError(t *testing.T) {
packet := append(headerBytes, incompleteBody...)
mockConn := newMockConn(packet)
cc := NewCryptConn(mockConn, _config.Z1, nil)
cc := NewCryptConn(mockConn, cfg.Z1, nil)
_, err := cc.ReadPacket()
if err == nil {
@@ -425,7 +425,7 @@ func TestCryptConn_ReadPacket_ChecksumMismatch(t *testing.T) {
packet := append(headerBytes, encryptedData...)
mockConn := newMockConn(packet)
cc := NewCryptConn(mockConn, _config.Z1, nil)
cc := NewCryptConn(mockConn, cfg.Z1, nil)
cc.readKeyRot = key
_, err := cc.ReadPacket()

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -64,7 +64,7 @@ func TestMsgSysPingRoundTrip(t *testing.T) {
AckHandle: 0x12345678,
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
// Build
bf := byteframe.NewByteFrame()
@@ -106,7 +106,7 @@ func TestMsgSysTimeRoundTrip(t *testing.T) {
Timestamp: tt.timestamp,
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
// Build
bf := byteframe.NewByteFrame()
@@ -240,7 +240,7 @@ func TestParserInterface(t *testing.T) {
bf.WriteUint32(123)
_, _ = bf.Seek(0, io.SeekStart)
err := p.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := p.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Errorf("Parse() error = %v", err)
}
@@ -251,7 +251,7 @@ func TestBuilderInterface(t *testing.T) {
var b Builder = &MsgSysPing{AckHandle: 456}
bf := byteframe.NewByteFrame()
err := b.Build(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := b.Build(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Errorf("Build() error = %v", err)
}
@@ -274,7 +274,7 @@ func TestClientContextBuildSafe(t *testing.T) {
pkt := &MsgSysPing{AckHandle: 123}
bf := byteframe.NewByteFrame()
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
err := pkt.Build(bf, ctx)
if err != nil {
t.Logf("Build() returned error: %v", err)
@@ -284,7 +284,7 @@ func TestClientContextBuildSafe(t *testing.T) {
func TestMsgSysPingBuildFormat(t *testing.T) {
pkt := &MsgSysPing{AckHandle: 0x12345678}
bf := byteframe.NewByteFrame()
_ = pkt.Build(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
_ = pkt.Build(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
data := bf.Data()
if len(data) != 4 {
@@ -303,7 +303,7 @@ func TestMsgSysTimeBuildFormat(t *testing.T) {
Timestamp: 0xDEADBEEF,
}
bf := byteframe.NewByteFrame()
_ = pkt.Build(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
_ = pkt.Build(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
data := bf.Data()
if len(data) != 5 {
@@ -502,7 +502,7 @@ func TestMsgSysCreateStageParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysCreateStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -554,7 +554,7 @@ func TestMsgSysEnterStageParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysEnterStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -603,7 +603,7 @@ func TestMsgSysMoveStageParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysMoveStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -649,7 +649,7 @@ func TestMsgSysLockStageParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysLockStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -676,7 +676,7 @@ func TestMsgSysUnlockStageRoundTrip(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
// Build (returns NOT IMPLEMENTED)
original := &MsgSysUnlockStage{}
@@ -717,7 +717,7 @@ func TestMsgSysBackStageParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysBackStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -747,7 +747,7 @@ func TestMsgSysLogoutParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysLogout{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -801,7 +801,7 @@ func TestMsgSysLoginParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysLogin{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
)
@@ -53,7 +53,7 @@ func TestBatchParseAckHandleOnly(t *testing.T) {
{"MsgMhfLoadPlateMyset", &MsgMhfLoadPlateMyset{}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tc := range packets {
t.Run(tc.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -98,7 +98,7 @@ func TestBatchParseTwoUint32(t *testing.T) {
{"MsgMhfInfoJoint", &MsgMhfInfoJoint{}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tc := range packets {
t.Run(tc.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -117,7 +117,7 @@ func TestBatchParseTwoUint32(t *testing.T) {
// TestBatchParseMultiField tests packets with various field combinations.
func TestBatchParseMultiField(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("MsgMhfGetRengokuBinary", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -1042,7 +1042,7 @@ func TestBatchParseMultiField(t *testing.T) {
// TestBatchParseVariableLength tests packets with variable-length data.
func TestBatchParseVariableLength(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("MsgMhfSaveFavoriteQuest", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -1345,7 +1345,7 @@ func TestBatchParseArrangeGuildMember(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfArrangeGuildMember{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatal(err)
}
if len(pkt.CharIDs) != 3 || pkt.CharIDs[2] != 30 {
@@ -1374,7 +1374,7 @@ func TestBatchParseUpdateGuildIcon(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfUpdateGuildIcon{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatal(err)
}
if len(pkt.IconParts) != 1 || pkt.IconParts[0].Red != 0xFF {
@@ -1393,7 +1393,7 @@ func TestBatchParseSysLoadRegister(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysLoadRegister{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatal(err)
}
if pkt.RegisterID != 2 || pkt.Values != 3 {
@@ -1413,7 +1413,7 @@ func TestBatchParseSysLoadRegisterNonZeroPadding(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysLoadRegister{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Errorf("unexpected error: %v", err)
}
@@ -1439,7 +1439,7 @@ func TestBatchParseSysOperateRegister(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysOperateRegister{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatal(err)
}
if len(pkt.RawDataPayload) != 3 {
@@ -1458,7 +1458,7 @@ func TestBatchParseSysOperateRegisterNonZeroPadding(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysOperateRegister{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Errorf("unexpected error: %v", err)
}
@@ -1475,7 +1475,7 @@ func TestBatchParseSysOperateRegisterNonZeroPadding(t *testing.T) {
// TestBatchParseSysGetFile tests the conditional scenario file packet.
func TestBatchParseSysGetFile(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("non-scenario", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -1530,7 +1530,7 @@ func TestBatchParseSysTerminalLog(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysTerminalLog{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatal(err)
}
if len(pkt.Entries) != 1 || pkt.Entries[0].Type1 != 1 {
@@ -1540,7 +1540,7 @@ func TestBatchParseSysTerminalLog(t *testing.T) {
// TestBatchParseNoOpPackets tests packets with empty Parse (return nil).
func TestBatchParseNoOpPackets(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
packets := []struct {
@@ -1564,7 +1564,7 @@ func TestBatchParseNoOpPackets(t *testing.T) {
// TestBatchParseNotImplemented tests that Parse returns NOT IMPLEMENTED for stub packets.
func TestBatchParseNotImplemented(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
packets := []MHFPacket{
@@ -1610,7 +1610,7 @@ func TestBatchParseNotImplemented(t *testing.T) {
// TestBatchBuildNotImplemented tests that Build returns NOT IMPLEMENTED for many packets.
func TestBatchBuildNotImplemented(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
packets := []MHFPacket{
@@ -1721,7 +1721,7 @@ func TestBatchBuildNotImplemented(t *testing.T) {
// TestBatchParseReserve188and18B tests reserve packets with AckHandle.
func TestBatchParseReserve188and18B(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tc := range []struct {
name string
@@ -1743,7 +1743,7 @@ func TestBatchParseReserve188and18B(t *testing.T) {
// TestBatchParseStageStringPackets tests packets that read a stage ID string.
func TestBatchParseStageStringPackets(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("MsgSysGetStageBinary", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -1849,7 +1849,7 @@ func TestBatchParseStampcardStamp(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfStampcardStamp{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatal(err)
}
if pkt.HR != 2 || pkt.GR != 3 || pkt.Stamps != 4 || pkt.Reward1 != 5 {
@@ -1870,7 +1870,7 @@ func TestBatchParseAnnounce(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAnnounce{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatal(err)
}
if pkt.IPAddress != 0x7F000001 || pkt.Port != 54001 {
@@ -1880,7 +1880,7 @@ func TestBatchParseAnnounce(t *testing.T) {
// TestBatchParseOprtMail tests conditional parsing.
func TestBatchParseOprtMail(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("delete", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -1926,7 +1926,7 @@ func TestBatchParsePostTowerInfo(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfPostTowerInfo{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatal(err)
}
}
@@ -1934,7 +1934,7 @@ func TestBatchParsePostTowerInfo(t *testing.T) {
// TestBatchParseGuildHuntdata tests conditional guild huntdata.
// TestBatchParseAdditionalMultiField tests Parse for more packets with multiple fields.
func TestBatchParseAdditionalMultiField(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("MsgMhfAcquireFesta", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -2203,7 +2203,7 @@ func TestBatchParseAdditionalMultiField(t *testing.T) {
}
func TestBatchParseGuildHuntdata(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("operation_0", func(t *testing.T) {
bf := byteframe.NewByteFrame()

View File

@@ -4,7 +4,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
)
@@ -303,7 +303,7 @@ func TestBuildCoverage_NotImplemented_Extended(t *testing.T) {
{"MsgMhfEnumerateCampaign", &MsgMhfEnumerateCampaign{}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -347,7 +347,7 @@ func TestParseCoverage_NotImplemented_Extended(t *testing.T) {
{"MsgMhfRegistGuildAdventureDiva", &MsgMhfRegistGuildAdventureDiva{}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {

View File

@@ -6,7 +6,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
)
@@ -26,7 +26,7 @@ func TestBuildParseDuplicateObject(t *testing.T) {
{"negative coords", 1, -1.0, -2.0, -3.0, 100, 200},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysDuplicateObject{
@@ -84,7 +84,7 @@ func TestBuildParsePositionObject(t *testing.T) {
{"max object id", 0xFFFFFFFF, 999.999, -999.999, 0.001},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysPositionObject{
@@ -137,7 +137,7 @@ func TestBuildParseCastedBinary(t *testing.T) {
{"larger payload", 42, 3, 4, []byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysCastedBinary{
@@ -188,7 +188,7 @@ func TestBuildParseLoadRegister(t *testing.T) {
{"max values", 0xFFFFFFFF, 0xFFFFFFFF, 255},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -231,7 +231,7 @@ func TestBuildParseOperateRegister(t *testing.T) {
{"large payload", 0xFFFFFFFF, 0xDEADBEEF, make([]byte, 256)},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -272,7 +272,7 @@ func TestBuildParseNotifyUserBinary(t *testing.T) {
{"max", 0xFFFFFFFF, 255},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysNotifyUserBinary{
@@ -315,7 +315,7 @@ func TestBuildParseTime(t *testing.T) {
{"typical timestamp", false, 1700000000},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysTime{
@@ -356,7 +356,7 @@ func TestBuildParseUpdateObjectBinary(t *testing.T) {
{"max", 0xFFFFFFFF, 0xFFFFFFFF},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysUpdateObjectBinary{
@@ -401,7 +401,7 @@ func TestBuildParseArrangeGuildMember(t *testing.T) {
{"many members", 999, 400, []uint32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -452,7 +452,7 @@ func TestBuildParseEnumerateGuildMember(t *testing.T) {
{"large values", 0xFFFFFFFF, 0xDEADBEEF, 0xCAFEBABE},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -495,7 +495,7 @@ func TestBuildParseStateCampaign(t *testing.T) {
{"max", 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -537,7 +537,7 @@ func TestBuildParseApplyCampaign(t *testing.T) {
{"max", 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF, make([]byte, 16)},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -580,7 +580,7 @@ func TestBuildParseEnumerateCampaign(t *testing.T) {
{"zero", 0, 0, 0},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgMhfEnumerateCampaign{
@@ -623,7 +623,7 @@ func TestBuildParseEnumerateEvent(t *testing.T) {
{"nonzero", 42},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgMhfEnumerateEvent{
@@ -662,7 +662,7 @@ func TestBuildParseAddUdTacticsPoint(t *testing.T) {
{"max", 0xFFFFFFFF, 0xFFFF, 0xFFFFFFFF},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgMhfAddUdTacticsPoint{
@@ -713,7 +713,7 @@ func TestBuildParseApplyDistItem(t *testing.T) {
{"max", 0xFFFFFFFF, 255, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -761,7 +761,7 @@ func TestBuildParseEnumerateDistItem(t *testing.T) {
{"zero", 0, 0, 0, 0},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgMhfEnumerateDistItem{
@@ -814,7 +814,7 @@ func TestBuildParseAcquireExchangeShop(t *testing.T) {
{"larger payload", 0xDEADBEEF, []byte{0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x11, 0x22}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgMhfAcquireExchangeShop{
@@ -850,7 +850,7 @@ func TestBuildParseAcquireExchangeShop(t *testing.T) {
// TestBuildParseDisplayedAchievement verifies Parse for MsgMhfDisplayedAchievement.
// This struct has no exported fields; Parse only discards a single zeroed byte.
func TestBuildParseDisplayedAchievement(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
bf.WriteUint8(0) // Zeroed (discarded by Parse)
_, _ = bf.Seek(0, io.SeekStart)
@@ -873,7 +873,7 @@ func TestBuildParseAddKouryouPoint(t *testing.T) {
{"max", 0xFFFFFFFF, 0xFFFFFFFF},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgMhfAddKouryouPoint{
@@ -914,7 +914,7 @@ func TestBuildParseCheckDailyCafepoint(t *testing.T) {
{"zero", 0, 0},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -948,7 +948,7 @@ func TestBuildParsePing(t *testing.T) {
{"max", 0xFFFFFFFF},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysPing{
@@ -984,7 +984,7 @@ func TestBuildParseDeleteObject(t *testing.T) {
{"max", 0xFFFFFFFF},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysDeleteObject{
@@ -1020,7 +1020,7 @@ func TestBuildParseNotifyRegister(t *testing.T) {
{"max", 0xFFFFFFFF},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysNotifyRegister{
@@ -1048,7 +1048,7 @@ func TestBuildParseNotifyRegister(t *testing.T) {
// TestBuildParseUnlockStage verifies Parse for MsgSysUnlockStage.
// This struct has no exported fields; Parse only discards a single zeroed uint16.
func TestBuildParseUnlockStage(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
bf.WriteUint16(0) // Zeroed (discarded by Parse)
_, _ = bf.Seek(0, io.SeekStart)
@@ -1069,7 +1069,7 @@ func TestBuildParseUnlockGlobalSema(t *testing.T) {
{"zero", 0},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
original := &MsgSysUnlockGlobalSema{
@@ -1097,7 +1097,7 @@ func TestBuildParseUnlockGlobalSema(t *testing.T) {
// TestBuildParseStageDestruct verifies Build/Parse round-trip for MsgSysStageDestruct.
// This packet has no fields at all.
func TestBuildParseStageDestruct(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
original := &MsgSysStageDestruct{}
bf := byteframe.NewByteFrame()
@@ -1118,7 +1118,7 @@ func TestBuildParseStageDestruct(t *testing.T) {
// TestBuildParseCastedBinaryPayloadIntegrity verifies that a large payload is preserved
// exactly through Build/Parse for MsgSysCastedBinary.
func TestBuildParseCastedBinaryPayloadIntegrity(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
// Build a payload with recognizable pattern
payload := make([]byte, 1024)
@@ -1160,7 +1160,7 @@ func TestBuildParseCastedBinaryPayloadIntegrity(t *testing.T) {
// manual-build/Parse for MsgSysOperateRegister.
// Build is NOT IMPLEMENTED, so we manually write the binary representation.
func TestBuildParseOperateRegisterPayloadIntegrity(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
payload := make([]byte, 512)
for i := range payload {
@@ -1190,7 +1190,7 @@ func TestBuildParseOperateRegisterPayloadIntegrity(t *testing.T) {
// Build is NOT IMPLEMENTED, so we manually write the binary representation.
// Parse reads: uint32 AckHandle, uint32 GuildID, uint8 zeroed, uint8 charCount.
func TestBuildParseArrangeGuildMemberEmptySlice(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
bf.WriteUint32(1) // AckHandle
@@ -1217,7 +1217,7 @@ func TestBuildParseArrangeGuildMemberEmptySlice(t *testing.T) {
// TestBuildBinaryFormat verifies the exact binary output format of a Build call
// for MsgSysDuplicateObject to ensure correct endianness and field ordering.
func TestBuildBinaryFormat(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
pkt := &MsgSysDuplicateObject{
ObjID: 0x00000001,
X: 0,
@@ -1257,7 +1257,7 @@ func TestBuildBinaryFormat(t *testing.T) {
// TestBuildParseTimeBooleanEncoding verifies that the boolean field in MsgSysTime
// is encoded/decoded correctly for both true and false.
func TestBuildParseTimeBooleanEncoding(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, val := range []bool{true, false} {
t.Run("GetRemoteTime="+boolStr(val), func(t *testing.T) {
@@ -1303,7 +1303,7 @@ func boolStr(b bool) string {
// TestBuildParseSysAckBufferSmall verifies MsgSysAck round-trip with buffer response
// using the normal (non-extended) size field.
func TestBuildParseSysAckBufferSmall(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
payload := []byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}
original := &MsgSysAck{
@@ -1341,7 +1341,7 @@ func TestBuildParseSysAckBufferSmall(t *testing.T) {
// TestBuildParseSysAckExtendedSize verifies MsgSysAck round-trip with a payload
// large enough to trigger the extended size field (>= 0xFFFF bytes).
func TestBuildParseSysAckExtendedSize(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
payload := make([]byte, 0x10000) // 65536 bytes, triggers extended size
for i := range payload {
payload[i] = byte(i % 256)
@@ -1376,7 +1376,7 @@ func TestBuildParseSysAckExtendedSize(t *testing.T) {
// TestBuildParseSysAckNonBuffer verifies MsgSysAck round-trip with non-buffer response
// (exactly 4 bytes of data always read in Parse).
func TestBuildParseSysAckNonBuffer(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
original := &MsgSysAck{
AckHandle: 100,
IsBufferResponse: false,

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -497,7 +497,7 @@ func TestAckHandlePacketsParse(t *testing.T) {
{"MsgMhfGetKijuInfo", network.MSG_MHF_GET_KIJU_INFO},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
@@ -547,7 +547,7 @@ func TestAddAchievementParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAddAchievement{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -587,7 +587,7 @@ func TestGetAchievementParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfGetAchievement{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -630,7 +630,7 @@ func TestBuildNotImplemented(t *testing.T) {
for _, pkt := range packetsToTest {
t.Run(pkt.Opcode().String(), func(t *testing.T) {
bf := byteframe.NewByteFrame()
err := pkt.Build(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Build(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err == nil {
t.Logf("Build() did not return error (implementation may exist)")
} else {

View File

@@ -2,7 +2,7 @@ package mhfpacket
import (
"errors"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/byteframe"
"erupe-ce/network"
@@ -31,7 +31,7 @@ func (m *MsgMhfAcquireCafeItem) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Cl
m.ItemType = bf.ReadUint16()
m.ItemID = bf.ReadUint16()
m.Quant = bf.ReadUint16()
if ctx.RealClientMode >= _config.G6 {
if ctx.RealClientMode >= cfg.G6 {
m.PointCost = bf.ReadUint32()
} else {
m.PointCost = uint32(bf.ReadUint16())

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -31,7 +31,7 @@ func TestMsgMhfAcquireCafeItemParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAcquireCafeItem{}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
err := pkt.Parse(bf, ctx)
if err != nil {
@@ -90,7 +90,7 @@ func TestMsgMhfAcquireCafeItemParseUint32PointCost(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAcquireCafeItem{}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
err := pkt.Parse(bf, ctx)
if err != nil {
@@ -119,7 +119,7 @@ func TestMsgMhfAcquireCafeItemParseFieldOrder(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAcquireCafeItem{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -154,7 +154,7 @@ func TestMsgMhfAcquireCafeItemBuildNotImplemented(t *testing.T) {
}
bf := byteframe.NewByteFrame()
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
err := pkt.Build(bf, ctx)
if err == nil {

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -52,7 +52,7 @@ func TestMsgMhfAcquireGuildTresureParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAcquireGuildTresure{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -93,7 +93,7 @@ func TestMsgMhfAcquireTitleParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAcquireTitle{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -134,7 +134,7 @@ func TestMsgMhfAcquireDistItemParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAcquireDistItem{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -178,7 +178,7 @@ func TestMsgMhfAcquireMonthlyItemParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAcquireMonthlyItem{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -232,7 +232,7 @@ func TestAcquirePacketEdgeCases(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAcquireGuildTresure{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -251,7 +251,7 @@ func TestAcquirePacketEdgeCases(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAcquireDistItem{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v for type %d", err, i)
}

View File

@@ -3,7 +3,7 @@ package mhfpacket
import (
"errors"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -27,10 +27,10 @@ func (m *MsgMhfApplyDistItem) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Clie
m.AckHandle = bf.ReadUint32()
m.DistributionType = bf.ReadUint8()
m.DistributionID = bf.ReadUint32()
if ctx.RealClientMode >= _config.G8 {
if ctx.RealClientMode >= cfg.G8 {
m.Unk2 = bf.ReadUint32()
}
if ctx.RealClientMode >= _config.G10 {
if ctx.RealClientMode >= cfg.G10 {
m.Unk3 = bf.ReadUint32()
}
return nil

View File

@@ -3,7 +3,7 @@ package mhfpacket
import (
"errors"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -28,7 +28,7 @@ func (m *MsgMhfEnumerateDistItem) Parse(bf *byteframe.ByteFrame, ctx *clientctx.
m.DistType = bf.ReadUint8()
m.Unk1 = bf.ReadUint8()
m.MaxCount = bf.ReadUint16() // Hardcoded to 256
if ctx.RealClientMode >= _config.Z1 {
if ctx.RealClientMode >= cfg.Z1 {
m.Unk3 = bf.ReadBytes(uint(bf.ReadUint8()))
}
return nil

View File

@@ -2,7 +2,7 @@ package mhfpacket
import (
"errors"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/byteframe"
"erupe-ce/network"
@@ -30,7 +30,7 @@ func (m *MsgMhfEnumerateQuest) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Cli
m.Unk0 = bf.ReadUint8()
m.World = bf.ReadUint8()
m.Counter = bf.ReadUint16()
if ctx.RealClientMode <= _config.Z1 {
if ctx.RealClientMode <= cfg.Z1 {
m.Offset = uint16(bf.ReadUint8())
} else {
m.Offset = bf.ReadUint16()

View File

@@ -2,7 +2,7 @@ package mhfpacket
import (
"errors"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/byteframe"
"erupe-ce/network"
@@ -32,7 +32,7 @@ func (m *MsgMhfEnumerateShop) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Clie
m.ShopID = bf.ReadUint32()
m.Limit = bf.ReadUint16()
m.Unk3 = bf.ReadUint8()
if ctx.RealClientMode >= _config.G2 {
if ctx.RealClientMode >= cfg.G2 {
m.Unk4 = bf.ReadUint8()
m.Unk5 = bf.ReadUint32()
}

View File

@@ -4,7 +4,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -41,7 +41,7 @@ func TestMsgMhfUpdateGuacotParse_SingleEntry(t *testing.T) {
pkt := &MsgMhfUpdateGuacot{}
_, _ = bf.Seek(0, 0)
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error: %v", err)
}
@@ -102,7 +102,7 @@ func TestMsgMhfUpdateGuacotParse_MultipleEntries(t *testing.T) {
pkt := &MsgMhfUpdateGuacot{}
_, _ = bf.Seek(0, 0)
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error: %v", err)
}
@@ -132,7 +132,7 @@ func TestMsgMhfUpdateGuacotParse_ZeroEntries(t *testing.T) {
pkt := &MsgMhfUpdateGuacot{}
_, _ = bf.Seek(0, 0)
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error: %v", err)
}
@@ -163,7 +163,7 @@ func TestMsgMhfUpdateGuacotParse_DeletionEntry(t *testing.T) {
pkt := &MsgMhfUpdateGuacot{}
_, _ = bf.Seek(0, 0)
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error: %v", err)
}
@@ -190,7 +190,7 @@ func TestMsgMhfUpdateGuacotParse_EmptyName(t *testing.T) {
pkt := &MsgMhfUpdateGuacot{}
_, _ = bf.Seek(0, 0)
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error: %v", err)
}
@@ -208,7 +208,7 @@ func TestMsgMhfEnumerateGuacotParse(t *testing.T) {
pkt := &MsgMhfEnumerateGuacot{}
_, _ = bf.Seek(0, 0)
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error: %v", err)
}
@@ -223,7 +223,7 @@ func TestMsgMhfEnumerateGuacotParse(t *testing.T) {
func TestMsgMhfUpdateGuacotBuild_NotImplemented(t *testing.T) {
pkt := &MsgMhfUpdateGuacot{}
err := pkt.Build(byteframe.NewByteFrame(), &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Build(byteframe.NewByteFrame(), &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err == nil {
t.Error("Build() should return error (not implemented)")
}
@@ -231,7 +231,7 @@ func TestMsgMhfUpdateGuacotBuild_NotImplemented(t *testing.T) {
func TestMsgMhfEnumerateGuacotBuild_NotImplemented(t *testing.T) {
pkt := &MsgMhfEnumerateGuacot{}
err := pkt.Build(byteframe.NewByteFrame(), &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Build(byteframe.NewByteFrame(), &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err == nil {
t.Error("Build() should return error (not implemented)")
}
@@ -254,7 +254,7 @@ func TestGoocooStruct_Data1Size(t *testing.T) {
pkt := &MsgMhfUpdateGuacot{}
_, _ = bf.Seek(0, 0)
_ = pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
_ = pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
g := pkt.Goocoos[0]

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -521,7 +521,7 @@ func TestAchievementPacketParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAddAchievement{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}

View File

@@ -2,7 +2,7 @@ package mhfpacket
import (
"errors"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/byteframe"
"erupe-ce/network"
@@ -30,7 +30,7 @@ func (m *MsgMhfSavedata) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientCon
m.AllocMemSize = bf.ReadUint32()
m.SaveType = bf.ReadUint8()
m.Unk1 = bf.ReadUint32()
if ctx.RealClientMode >= _config.G1 {
if ctx.RealClientMode >= cfg.G1 {
m.DataSize = bf.ReadUint32()
}
if m.DataSize == 0 { // seems to be used when DataSize = 0 rather than on savetype?

View File

@@ -2,7 +2,7 @@ package mhfpacket
import (
"errors"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/byteframe"
"erupe-ce/network"
@@ -32,12 +32,12 @@ func (m *MsgMhfStampcardStamp) Opcode() network.PacketID {
func (m *MsgMhfStampcardStamp) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
m.AckHandle = bf.ReadUint32()
m.HR = bf.ReadUint16()
if ctx.RealClientMode >= _config.G1 {
if ctx.RealClientMode >= cfg.G1 {
m.GR = bf.ReadUint16()
}
m.Stamps = bf.ReadUint16()
bf.ReadUint16() // Zeroed
if ctx.RealClientMode >= _config.Z2 {
if ctx.RealClientMode >= cfg.Z2 {
m.Reward1 = uint16(bf.ReadUint32())
m.Reward2 = uint16(bf.ReadUint32())
m.Item1 = uint16(bf.ReadUint32())

View File

@@ -4,7 +4,7 @@ import (
"errors"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -23,11 +23,11 @@ func (m *MsgMhfUpdateMyhouseInfo) Opcode() network.PacketID {
// Parse parses the packet from binary
func (m *MsgMhfUpdateMyhouseInfo) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
m.AckHandle = bf.ReadUint32()
if ctx.RealClientMode >= _config.G10 {
if ctx.RealClientMode >= cfg.G10 {
m.Data = bf.ReadBytes(362)
} else if ctx.RealClientMode >= _config.GG {
} else if ctx.RealClientMode >= cfg.GG {
m.Data = bf.ReadBytes(338)
} else if ctx.RealClientMode >= _config.F5 {
} else if ctx.RealClientMode >= cfg.F5 {
// G1 is a guess
m.Data = bf.ReadBytes(314)
} else {

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
)
@@ -247,7 +247,7 @@ func TestBuildCoverage_NotImplemented(t *testing.T) {
{"MsgSysReserve1AF", &MsgSysReserve1AF{}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
@@ -285,7 +285,7 @@ func TestParseCoverage_NotImplemented(t *testing.T) {
{"MsgMhfUpdateGuild", &MsgMhfUpdateGuild{}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {

View File

@@ -5,7 +5,7 @@ import (
"erupe-ce/common/byteframe"
"erupe-ce/common/mhfcourse"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
)
@@ -13,7 +13,7 @@ import (
// method is implemented (reads from ByteFrame) but was not yet covered by tests.
// Each test provides a ByteFrame with enough bytes for the Parse to succeed.
func TestParseCoverage_Implemented(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
tests := []struct {
name string
@@ -76,7 +76,7 @@ func TestParseCoverage_Implemented(t *testing.T) {
// TestParseCoverage_VariableLength tests Parse for variable-length packets
// that require specific data layouts.
func TestParseCoverage_VariableLength(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("MsgMhfAcquireItem_EmptyList", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -240,7 +240,7 @@ func TestParseCoverage_VariableLength(t *testing.T) {
// TestBuildCoverage_Implemented tests Build() on packet types whose Build method
// is implemented (writes to ByteFrame) but was not yet covered.
func TestBuildCoverage_Implemented(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("MsgSysDeleteUser", func(t *testing.T) {
pkt := &MsgSysDeleteUser{CharID: 123}
@@ -307,7 +307,7 @@ func TestBuildCoverage_Implemented(t *testing.T) {
// TestParseCoverage_EmptyPackets tests Parse() for packets with no payload fields.
func TestParseCoverage_EmptyPackets(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("MsgSysCleanupObject_Parse", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -344,7 +344,7 @@ func TestParseCoverage_EmptyPackets(t *testing.T) {
// TestParseCoverage_NotImplemented2 tests Parse/Build for packets that return NOT IMPLEMENTED.
func TestParseCoverage_NotImplemented2(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("MsgSysGetObjectOwner_Parse", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -367,7 +367,7 @@ func TestParseCoverage_NotImplemented2(t *testing.T) {
// TestParseCoverage_UpdateWarehouse tests MsgMhfUpdateWarehouse.Parse with different box types.
func TestParseCoverage_UpdateWarehouse(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("EmptyChanges", func(t *testing.T) {
bf := byteframe.NewByteFrame()

View File

@@ -6,13 +6,13 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
)
// TestParseLargeMsgSysUpdateRightBuild tests Build for MsgSysUpdateRight (no Parse implementation).
func TestParseLargeMsgSysUpdateRightBuild(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
original := &MsgSysUpdateRight{
ClientRespAckHandle: 0x12345678,
Bitfield: 0xDEADBEEF,
@@ -58,7 +58,7 @@ func TestParseLargeMsgMhfOperateWarehouse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfOperateWarehouse{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -93,7 +93,7 @@ func TestParseLargeMsgMhfOperateWarehouseEquip(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfOperateWarehouse{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -133,7 +133,7 @@ func TestParseLargeMsgMhfLoadHouse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfLoadHouse{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -172,7 +172,7 @@ func TestParseLargeMsgMhfSendMail(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfSendMail{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -233,7 +233,7 @@ func TestParseLargeMsgMhfApplyBbsArticle(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfApplyBbsArticle{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -271,7 +271,7 @@ func TestParseLargeMsgMhfChargeFesta(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfChargeFesta{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -306,7 +306,7 @@ func TestParseLargeMsgMhfChargeFestaZeroSouls(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfChargeFesta{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
if len(pkt.Souls) != 0 {
@@ -329,7 +329,7 @@ func TestParseLargeMsgMhfOperateJoint(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfOperateJoint{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -365,7 +365,7 @@ func TestParseLargeMsgMhfOperationInvGuild(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfOperationInvGuild{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -404,7 +404,7 @@ func TestParseLargeMsgMhfSaveMercenary(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfSaveMercenary{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -446,7 +446,7 @@ func TestParseLargeMsgMhfUpdateHouse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfUpdateHouse{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -481,7 +481,7 @@ func TestParseLargeMsgSysCreateAcquireSemaphore(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysCreateAcquireSemaphore{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -513,7 +513,7 @@ func TestParseLargeMsgMhfOperateGuild(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfOperateGuild{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -553,7 +553,7 @@ func TestParseLargeMsgMhfReadBeatLevel(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfReadBeatLevel{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -597,7 +597,7 @@ func TestParseLargeMsgSysCreateObject(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysCreateObject{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -633,7 +633,7 @@ func TestParseLargeMsgSysLockGlobalSema(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysLockGlobalSema{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -665,7 +665,7 @@ func TestParseLargeMsgMhfCreateJoint(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfCreateJoint{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -690,7 +690,7 @@ func TestParseLargeMsgMhfGetUdTacticsRemainingPoint(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfGetUdTacticsRemainingPoint{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -719,7 +719,7 @@ func TestParseLargeMsgMhfPostCafeDurationBonusReceived(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfPostCafeDurationBonusReceived{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -745,7 +745,7 @@ func TestParseLargeMsgMhfPostCafeDurationBonusReceivedEmpty(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfPostCafeDurationBonusReceived{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
if len(pkt.CafeBonusID) != 0 {
@@ -763,7 +763,7 @@ func TestParseLargeMsgMhfRegistGuildAdventureDiva(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfRegistGuildAdventureDiva{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -788,7 +788,7 @@ func TestParseLargeMsgMhfStateFestaG(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfStateFestaG{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -813,7 +813,7 @@ func TestParseLargeMsgMhfStateFestaU(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfStateFestaU{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -839,7 +839,7 @@ func TestParseLargeMsgSysEnumerateStage(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysEnumerateStage{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -865,7 +865,7 @@ func TestParseLargeMsgSysReserveStage(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysReserveStage{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}

View File

@@ -6,7 +6,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
)
@@ -37,7 +37,7 @@ func TestParseMediumVoteFesta(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfVoteFesta{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -82,7 +82,7 @@ func TestParseMediumAcquireSemaphore(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysAcquireSemaphore{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -120,7 +120,7 @@ func TestParseMediumCheckSemaphore(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysCheckSemaphore{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -157,7 +157,7 @@ func TestParseMediumGetUserBinary(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysGetUserBinary{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -196,7 +196,7 @@ func TestParseMediumSetObjectBinary(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysSetObjectBinary{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -235,7 +235,7 @@ func TestParseMediumSetUserBinary(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysSetUserBinary{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -275,7 +275,7 @@ func TestParseMediumGetUdRanking(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfGetUdRanking{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -310,7 +310,7 @@ func TestParseMediumGetUdTacticsRanking(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfGetUdTacticsRanking{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -347,7 +347,7 @@ func TestParseMediumRegistGuildTresure(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfRegistGuildTresure{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -378,7 +378,7 @@ func TestParseMediumUpdateMyhouseInfo(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfUpdateMyhouseInfo{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -400,7 +400,7 @@ func TestParseMediumUpdateMyhouseInfo(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfUpdateMyhouseInfo{}
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ}); err != nil {
if err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ}); err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -518,7 +518,7 @@ func TestParseMediumAckHandleOnlyBatch(t *testing.T) {
},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
ackValues := []uint32{0x12345678, 0, 0xFFFFFFFF, 0xDEADBEEF}
for _, tc := range packets {
@@ -540,7 +540,7 @@ func TestParseMediumAckHandleOnlyBatch(t *testing.T) {
// TestParseMediumAckHandleOnlyVerifyValues tests each 3-stmt AckHandle-only
// packet individually, verifying that the AckHandle field is correctly populated.
func TestParseMediumAckHandleOnlyVerifyValues(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
ack := uint32(0xCAFEBABE)
makeFrame := func() *byteframe.ByteFrame {
@@ -739,7 +739,7 @@ func TestParseMediumDeleteUser(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysDeleteUser{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err == nil {
t.Fatal("Parse() should return error for NOT IMPLEMENTED")
}
@@ -756,7 +756,7 @@ func TestParseMediumInsertUser(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysInsertUser{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err == nil {
t.Fatal("Parse() should return error for NOT IMPLEMENTED")
}

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
)
@@ -60,7 +60,7 @@ func TestParseSmallNotImplemented(t *testing.T) {
{"MsgSysTransBinary", &MsgSysTransBinary{}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tc := range packets {
t.Run(tc.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -89,7 +89,7 @@ func TestParseSmallNoData(t *testing.T) {
{"MsgSysUnreserveStage", &MsgSysUnreserveStage{}},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tc := range packets {
t.Run(tc.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -112,7 +112,7 @@ func TestParseSmallLogout(t *testing.T) {
{"max", 255},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -134,7 +134,7 @@ func TestParseSmallLogout(t *testing.T) {
// TestParseSmallEnumerateHouse tests Parse for MsgMhfEnumerateHouse which reads
// AckHandle, CharID, Method, Unk, lenName, and optional Name.
func TestParseSmallEnumerateHouse(t *testing.T) {
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
t.Run("no name", func(t *testing.T) {
bf := byteframe.NewByteFrame()
@@ -205,7 +205,7 @@ func TestParseSmallNotImplementedDoesNotPanic(t *testing.T) {
&MsgSysSerialize{},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
for _, pkt := range packets {
t.Run("not_implemented", func(t *testing.T) {
bf := byteframe.NewByteFrame()

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
)
@@ -18,7 +18,7 @@ func TestMsgMhfGetAchievementDetailedParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfGetAchievement{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -40,7 +40,7 @@ func TestMsgMhfAddAchievementDetailedParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgMhfAddAchievement{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -82,7 +82,7 @@ func TestMsgSysCastBinaryDetailedParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysCastBinary{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -120,7 +120,7 @@ func TestMsgSysLogoutDetailedParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysLogout{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -148,7 +148,7 @@ func TestMsgSysBackStageDetailedParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysBackStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -175,7 +175,7 @@ func TestMsgSysPingDetailedParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysPing{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -204,7 +204,7 @@ func TestMsgSysTimeDetailedParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysTime{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -56,7 +56,7 @@ func TestMsgSysAckRoundTrip(t *testing.T) {
ErrorCode: tt.errorCode,
AckData: tt.ackData,
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
// Build
bf := byteframe.NewByteFrame()
@@ -100,7 +100,7 @@ func TestMsgSysAckLargePayload(t *testing.T) {
ErrorCode: 0,
AckData: largeData,
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
// Build
bf := byteframe.NewByteFrame()
@@ -131,7 +131,7 @@ func TestMsgSysAckOpcode(t *testing.T) {
func TestMsgSysNopRoundTrip(t *testing.T) {
original := &MsgSysNop{}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
// Build
bf := byteframe.NewByteFrame()
@@ -162,7 +162,7 @@ func TestMsgSysNopOpcode(t *testing.T) {
func TestMsgSysEndRoundTrip(t *testing.T) {
original := &MsgSysEnd{}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
// Build
bf := byteframe.NewByteFrame()
@@ -199,7 +199,7 @@ func TestMsgSysAckNonBufferResponse(t *testing.T) {
ErrorCode: 0,
AckData: []byte{0xAA, 0xBB, 0xCC, 0xDD},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
err := original.Build(bf, ctx)
@@ -228,7 +228,7 @@ func TestMsgSysAckNonBufferShortData(t *testing.T) {
ErrorCode: 0,
AckData: []byte{0x01}, // Only 1 byte
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
err := original.Build(bf, ctx)
@@ -256,7 +256,7 @@ func TestMsgSysAckBuildFormat(t *testing.T) {
ErrorCode: 0x55,
AckData: []byte{0xAA, 0xBB},
}
ctx := &clientctx.ClientContext{RealClientMode: _config.ZZ}
ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ}
bf := byteframe.NewByteFrame()
_ = pkt.Build(bf, ctx)

View File

@@ -3,7 +3,7 @@ package mhfpacket
import (
"errors"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -25,7 +25,7 @@ func (m *MsgSysCreateAcquireSemaphore) Opcode() network.PacketID {
func (m *MsgSysCreateAcquireSemaphore) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
m.AckHandle = bf.ReadUint32()
m.Unk0 = bf.ReadUint16()
if ctx.RealClientMode >= _config.S7 { // Assuming this was added with Ravi?
if ctx.RealClientMode >= cfg.S7 { // Assuming this was added with Ravi?
m.PlayerCount = bf.ReadUint8()
}
bf.ReadUint8() // SemaphoreID length

View File

@@ -2,7 +2,7 @@ package mhfpacket
import (
"errors"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/byteframe"
"erupe-ce/network"
@@ -26,7 +26,7 @@ func (m *MsgSysCreateSemaphore) Opcode() network.PacketID {
func (m *MsgSysCreateSemaphore) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
m.AckHandle = bf.ReadUint32()
m.Unk0 = bf.ReadUint16()
if ctx.RealClientMode >= _config.S7 { // Assuming this was added with Ravi?
if ctx.RealClientMode >= cfg.S7 { // Assuming this was added with Ravi?
m.PlayerCount = bf.ReadUint8()
}
bf.ReadUint8() // SemaphoreID length

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -35,7 +35,7 @@ func TestMsgSysCastBinaryParse(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysCastBinary{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}

View File

@@ -5,7 +5,7 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
)
@@ -59,7 +59,7 @@ func TestMsgSysCreateStageFields(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysCreateStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -103,7 +103,7 @@ func TestMsgSysEnterStageFields(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysEnterStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -143,7 +143,7 @@ func TestMsgSysMoveStageFields(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysMoveStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -185,7 +185,7 @@ func TestMsgSysLockStageFields(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysLockStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -219,7 +219,7 @@ func TestMsgSysUnlockStageFields(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysUnlockStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -246,7 +246,7 @@ func TestMsgSysBackStageFields(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysBackStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -275,7 +275,7 @@ func TestStageIDEdgeCases(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysCreateStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}
@@ -297,7 +297,7 @@ func TestStageIDEdgeCases(t *testing.T) {
_, _ = bf.Seek(0, io.SeekStart)
pkt := &MsgSysEnterStage{}
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: _config.ZZ})
err := pkt.Parse(bf, &clientctx.ClientContext{RealClientMode: cfg.ZZ})
if err != nil {
t.Fatalf("Parse() error = %v", err)
}

View File

@@ -2,7 +2,7 @@ package mhfpacket
import (
"errors"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/byteframe"
"erupe-ce/network"
@@ -49,7 +49,7 @@ func (m *MsgSysTerminalLog) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Client
e.Unk1 = bf.ReadInt32()
e.Unk2 = bf.ReadInt32()
e.Unk3 = bf.ReadInt32()
if ctx.RealClientMode >= _config.G1 {
if ctx.RealClientMode >= cfg.G1 {
for j := 0; j < 4; j++ {
e.Unk4 = append(e.Unk4, bf.ReadInt32())
}

View File

@@ -2,7 +2,7 @@ package api
import (
"context"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"fmt"
"net/http"
"os"
@@ -19,14 +19,14 @@ import (
type Config struct {
Logger *zap.Logger
DB *sqlx.DB
ErupeConfig *_config.Config
ErupeConfig *cfg.Config
}
// APIServer is Erupes Standard API interface
type APIServer struct {
sync.Mutex
logger *zap.Logger
erupeConfig *_config.Config
erupeConfig *cfg.Config
db *sqlx.DB
httpServer *http.Server
isShuttingDown bool

View File

@@ -5,7 +5,7 @@ import (
"testing"
"time"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"go.uber.org/zap"
)
@@ -47,23 +47,23 @@ func TestNewAPIServerConfig(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := &_config.Config{
API: _config.API{
cfg := &cfg.Config{
API: cfg.API{
Port: 9999,
PatchServer: "http://example.com",
Banners: []_config.APISignBanner{},
Messages: []_config.APISignMessage{},
Links: []_config.APISignLink{},
Banners: []cfg.APISignBanner{},
Messages: []cfg.APISignMessage{},
Links: []cfg.APISignLink{},
},
Screenshots: _config.ScreenshotsOptions{
Screenshots: cfg.ScreenshotsOptions{
Enabled: false,
OutputDir: "/custom/path",
UploadQuality: 95,
},
DebugOptions: _config.DebugOptions{
DebugOptions: cfg.DebugOptions{
MaxLauncherHR: true,
},
GameplayOptions: _config.GameplayOptions{
GameplayOptions: cfg.GameplayOptions{
MezFesSoloTickets: 200,
},
}

View File

@@ -6,7 +6,7 @@ import (
"encoding/xml"
"errors"
"erupe-ce/common/gametime"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"fmt"
"image"
"image/jpeg"
@@ -35,9 +35,9 @@ const (
// LauncherResponse is the JSON payload returned by the /launcher endpoint,
// containing banners, messages, and links for the game launcher UI.
type LauncherResponse struct {
Banners []_config.APISignBanner `json:"banners"`
Messages []_config.APISignMessage `json:"messages"`
Links []_config.APISignLink `json:"links"`
Banners []cfg.APISignBanner `json:"banners"`
Messages []cfg.APISignMessage `json:"messages"`
Links []cfg.APISignLink `json:"links"`
}
// User represents an authenticated user's session credentials and permissions.

View File

@@ -9,7 +9,7 @@ import (
"strings"
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/gametime"
"go.uber.org/zap"
)
@@ -19,20 +19,20 @@ func TestLauncherEndpoint(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
cfg.API.Banners = []_config.APISignBanner{
c := NewTestConfig()
c.API.Banners = []cfg.APISignBanner{
{Src: "http://example.com/banner1.jpg", Link: "http://example.com"},
}
cfg.API.Messages = []_config.APISignMessage{
c.API.Messages = []cfg.APISignMessage{
{Message: "Welcome to Erupe", Date: 0, Kind: 0, Link: "http://example.com"},
}
cfg.API.Links = []_config.APISignLink{
c.API.Links = []cfg.APISignLink{
{Name: "Forum", Icon: "forum", Link: "http://forum.example.com"},
}
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -83,14 +83,14 @@ func TestLauncherEndpointEmptyConfig(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
cfg.API.Banners = []_config.APISignBanner{}
cfg.API.Messages = []_config.APISignMessage{}
cfg.API.Links = []_config.APISignLink{}
c := NewTestConfig()
c.API.Banners = []cfg.APISignBanner{}
c.API.Messages = []cfg.APISignMessage{}
c.API.Links = []cfg.APISignLink{}
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
}
req := httptest.NewRequest("GET", "/launcher", nil)
@@ -119,10 +119,10 @@ func TestLoginEndpointInvalidJSON(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -144,10 +144,10 @@ func TestLoginEndpointEmptyCredentials(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -196,10 +196,10 @@ func TestRegisterEndpointInvalidJSON(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -219,10 +219,10 @@ func TestRegisterEndpointEmptyCredentials(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -267,10 +267,10 @@ func TestCreateCharacterEndpointInvalidJSON(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -290,10 +290,10 @@ func TestDeleteCharacterEndpointInvalidJSON(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -313,10 +313,10 @@ func TestExportSaveEndpointInvalidJSON(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -336,12 +336,12 @@ func TestScreenShotEndpointDisabled(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
cfg.Screenshots.Enabled = false
c := NewTestConfig()
c.Screenshots.Enabled = false
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -375,10 +375,10 @@ func TestScreenShotGetInvalidToken(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -415,14 +415,14 @@ func TestNewAuthDataStructure(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
cfg.DebugOptions.MaxLauncherHR = false
cfg.HideLoginNotice = false
cfg.LoginNotices = []string{"Notice 1", "Notice 2"}
c := NewTestConfig()
c.DebugOptions.MaxLauncherHR = false
c.HideLoginNotice = false
c.LoginNotices = []string{"Notice 1", "Notice 2"}
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -455,8 +455,8 @@ func TestNewAuthDataStructure(t *testing.T) {
t.Error("MezFes should not be nil")
}
if authData.PatchServer != cfg.API.PatchServer {
t.Errorf("PatchServer = %s, want %s", authData.PatchServer, cfg.API.PatchServer)
if authData.PatchServer != c.API.PatchServer {
t.Errorf("PatchServer = %s, want %s", authData.PatchServer, c.API.PatchServer)
}
if len(authData.Notices) == 0 {
@@ -471,12 +471,12 @@ func TestNewAuthDataDebugMode(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
cfg.DebugOptions.MaxLauncherHR = true
c := NewTestConfig()
c.DebugOptions.MaxLauncherHR = true
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -505,14 +505,14 @@ func TestNewAuthDataMezFesConfiguration(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
cfg.GameplayOptions.MezFesSoloTickets = 150
cfg.GameplayOptions.MezFesGroupTickets = 75
cfg.GameplayOptions.MezFesSwitchMinigame = true
c := NewTestConfig()
c.GameplayOptions.MezFesSoloTickets = 150
c.GameplayOptions.MezFesGroupTickets = 75
c.GameplayOptions.MezFesSwitchMinigame = true
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -539,13 +539,13 @@ func TestNewAuthDataHideNotices(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
cfg.HideLoginNotice = true
cfg.LoginNotices = []string{"Notice 1", "Notice 2"}
c := NewTestConfig()
c.HideLoginNotice = true
c.LoginNotices = []string{"Notice 1", "Notice 2"}
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -563,10 +563,10 @@ func TestNewAuthDataTimestamps(t *testing.T) {
logger := NewTestLogger(t)
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
db: nil,
}
@@ -588,10 +588,10 @@ func BenchmarkLauncherEndpoint(b *testing.B) {
logger, _ := zap.NewDevelopment()
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
}
b.ResetTimer()
@@ -607,10 +607,10 @@ func BenchmarkNewAuthData(b *testing.B) {
logger, _ := zap.NewDevelopment()
defer func() { _ = logger.Sync() }()
cfg := NewTestConfig()
c := NewTestConfig()
server := &APIServer{
logger: logger,
erupeConfig: cfg,
erupeConfig: c,
}
characters := make([]Character, 16)

View File

@@ -3,7 +3,7 @@ package api
import (
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"go.uber.org/zap"
)
@@ -17,24 +17,24 @@ func NewTestLogger(t *testing.T) *zap.Logger {
}
// NewTestConfig creates a default test configuration
func NewTestConfig() *_config.Config {
return &_config.Config{
API: _config.API{
func NewTestConfig() *cfg.Config {
return &cfg.Config{
API: cfg.API{
Port: 8000,
PatchServer: "http://localhost:8080",
Banners: []_config.APISignBanner{},
Messages: []_config.APISignMessage{},
Links: []_config.APISignLink{},
Banners: []cfg.APISignBanner{},
Messages: []cfg.APISignMessage{},
Links: []cfg.APISignLink{},
},
Screenshots: _config.ScreenshotsOptions{
Screenshots: cfg.ScreenshotsOptions{
Enabled: true,
OutputDir: "/tmp/screenshots",
UploadQuality: 85,
},
DebugOptions: _config.DebugOptions{
DebugOptions: cfg.DebugOptions{
MaxLauncherHR: false,
},
GameplayOptions: _config.GameplayOptions{
GameplayOptions: cfg.GameplayOptions{
MezFesSoloTickets: 100,
MezFesGroupTickets: 50,
MezFesDuration: 604800, // 1 week

View File

@@ -5,7 +5,7 @@ import (
"testing"
"time"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"go.uber.org/zap"
)
@@ -19,8 +19,8 @@ func createListeningTestServer(t *testing.T, id uint16) *Server {
s := NewServer(&Config{
ID: id,
Logger: logger,
ErupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
ErupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
LogInboundMessages: false,
},

View File

@@ -3,7 +3,7 @@ package channelserver
import (
"database/sql/driver"
"encoding/json"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"time"
)
@@ -111,12 +111,12 @@ func (gi *GuildIcon) Value() (valuer driver.Value, err error) {
return json.Marshal(gi)
}
func (g *Guild) Rank(mode _config.Mode) uint16 {
func (g *Guild) Rank(mode cfg.Mode) uint16 {
rpMap := []uint32{
24, 48, 96, 144, 192, 240, 288, 360, 432,
504, 600, 696, 792, 888, 984, 1080, 1200,
}
if mode <= _config.Z2 {
if mode <= cfg.Z2 {
rpMap = []uint32{
3500, 6000, 8500, 11000, 13500, 16000, 20000, 24000, 28000,
33000, 38000, 43000, 48000, 55000, 70000, 90000, 120000,
@@ -124,21 +124,21 @@ func (g *Guild) Rank(mode _config.Mode) uint16 {
}
for i, u := range rpMap {
if g.RankRP < u {
if mode <= _config.S6 && i >= 12 {
if mode <= cfg.S6 && i >= 12 {
return 12
} else if mode <= _config.F5 && i >= 13 {
} else if mode <= cfg.F5 && i >= 13 {
return 13
} else if mode <= _config.G32 && i >= 14 {
} else if mode <= cfg.G32 && i >= 14 {
return 14
}
return uint16(i)
}
}
if mode <= _config.S6 {
if mode <= cfg.S6 {
return 12
} else if mode <= _config.F5 {
} else if mode <= cfg.F5 {
return 13
} else if mode <= _config.G32 {
} else if mode <= cfg.G32 {
return 14
}
return 17

View File

@@ -3,7 +3,7 @@ package channelserver
import (
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
)
@@ -51,8 +51,8 @@ func TestHandleMsgMhfGetBbsSnsStatus(t *testing.T) {
func TestHandleMsgMhfApplyBbsArticle(t *testing.T) {
server := createMockServer()
server.erupeConfig = &_config.Config{
Screenshots: _config.ScreenshotsOptions{
server.erupeConfig = &cfg.Config{
Screenshots: cfg.ScreenshotsOptions{
Host: "example.com",
Port: 8080,
},

View File

@@ -4,7 +4,7 @@ import (
"erupe-ce/common/byteframe"
"erupe-ce/common/mhfcourse"
ps "erupe-ce/common/pascalstring"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"fmt"
"go.uber.org/zap"
@@ -99,7 +99,7 @@ func handleMsgMhfGetCafeDuration(s *Session, p mhfpacket.MHFPacket) {
cafeTime = int(TimeAdjusted().Unix()) - int(s.sessionStart) + cafeTime
}
bf.WriteUint32(uint32(cafeTime))
if s.server.erupeConfig.RealClientMode >= _config.ZZ {
if s.server.erupeConfig.RealClientMode >= cfg.ZZ {
bf.WriteUint16(0)
ps.Uint16(bf, fmt.Sprintf(s.server.i18n.cafe.reset, int(cafeReset.Month()), cafeReset.Day()), true)
}

View File

@@ -4,7 +4,7 @@ import (
"erupe-ce/common/byteframe"
ps "erupe-ce/common/pascalstring"
"erupe-ce/common/stringsupport"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"time"
)
@@ -71,7 +71,7 @@ func handleMsgMhfEnumerateCampaign(s *Session, p mhfpacket.MHFPacket) {
bf.WriteInt16(event.MaxHR)
bf.WriteInt16(event.MinSR)
bf.WriteInt16(event.MaxSR)
if s.server.erupeConfig.RealClientMode >= _config.G3 {
if s.server.erupeConfig.RealClientMode >= cfg.G3 {
bf.WriteInt16(event.MinGR)
bf.WriteInt16(event.MaxGR)
}

View File

@@ -8,7 +8,7 @@ import (
"erupe-ce/common/byteframe"
"erupe-ce/common/mhfcourse"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/binpacket"
"erupe-ce/network/mhfpacket"
)
@@ -317,40 +317,40 @@ func TestBinaryMessageTypes(t *testing.T) {
func TestSlicesContainsUsage(t *testing.T) {
tests := []struct {
name string
items []_config.Course
target _config.Course
items []cfg.Course
target cfg.Course
expected bool
}{
{
name: "item_exists",
items: []_config.Course{
items: []cfg.Course{
{Name: "Course1", Enabled: true},
{Name: "Course2", Enabled: false},
},
target: _config.Course{Name: "Course1", Enabled: true},
target: cfg.Course{Name: "Course1", Enabled: true},
expected: true,
},
{
name: "item_not_found",
items: []_config.Course{
items: []cfg.Course{
{Name: "Course1", Enabled: true},
{Name: "Course2", Enabled: false},
},
target: _config.Course{Name: "Course3", Enabled: true},
target: cfg.Course{Name: "Course3", Enabled: true},
expected: false,
},
{
name: "empty_slice",
items: []_config.Course{},
target: _config.Course{Name: "Course1", Enabled: true},
items: []cfg.Course{},
target: cfg.Course{Name: "Course1", Enabled: true},
expected: false,
},
{
name: "enabled_mismatch",
items: []_config.Course{
items: []cfg.Course{
{Name: "Course1", Enabled: true},
},
target: _config.Course{Name: "Course1", Enabled: false},
target: cfg.Course{Name: "Course1", Enabled: false},
expected: false,
},
}
@@ -681,7 +681,7 @@ func BenchmarkHandleMsgSysCastBinary(b *testing.B) {
// BenchmarkSlicesContains benchmarks the slices.Contains function
func BenchmarkSlicesContains(b *testing.B) {
courses := []_config.Course{
courses := []cfg.Course{
{Name: "Course1", Enabled: true},
{Name: "Course2", Enabled: false},
{Name: "Course3", Enabled: true},
@@ -689,7 +689,7 @@ func BenchmarkSlicesContains(b *testing.B) {
{Name: "Course5", Enabled: true},
}
target := _config.Course{Name: "Course3", Enabled: true}
target := cfg.Course{Name: "Course3", Enabled: true}
b.ResetTimer()
for i := 0; i < b.N; i++ {

View File

@@ -3,7 +3,7 @@ package channelserver
import (
"errors"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"go.uber.org/zap"
@@ -64,7 +64,7 @@ func (save *CharacterSaveData) Save(s *Session) {
save.updateSaveDataWithStruct()
if s.server.erupeConfig.RealClientMode >= _config.G1 {
if s.server.erupeConfig.RealClientMode >= cfg.G1 {
err := save.Compress()
if err != nil {
s.logger.Error("Failed to compress savedata", zap.Error(err))

View File

@@ -5,7 +5,7 @@ import (
"encoding/binary"
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"erupe-ce/server/channelserver/compression/nullcomp"
)
@@ -14,37 +14,37 @@ import (
func TestGetPointers(t *testing.T) {
tests := []struct {
name string
clientMode _config.Mode
clientMode cfg.Mode
wantGender int
wantHR int
}{
{
name: "ZZ_version",
clientMode: _config.ZZ,
clientMode: cfg.ZZ,
wantGender: 81,
wantHR: 130550,
},
{
name: "Z2_version",
clientMode: _config.Z2,
clientMode: cfg.Z2,
wantGender: 81,
wantHR: 94550,
},
{
name: "G10_version",
clientMode: _config.G10,
clientMode: cfg.G10,
wantGender: 81,
wantHR: 94550,
},
{
name: "F5_version",
clientMode: _config.F5,
clientMode: cfg.F5,
wantGender: 81,
wantHR: 62550,
},
{
name: "S6_version",
clientMode: _config.S6,
clientMode: cfg.S6,
wantGender: 81,
wantHR: 14550,
},
@@ -258,8 +258,8 @@ func TestCharacterSaveData_updateStructWithSaveData(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
save := &CharacterSaveData{
Mode: _config.Z2,
Pointers: getPointers(_config.Z2),
Mode: cfg.Z2,
Pointers: getPointers(cfg.Z2),
decompSave: tt.setupSaveData(),
IsNewCharacter: tt.isNewCharacter,
}
@@ -308,8 +308,8 @@ func TestCharacterSaveData_updateSaveDataWithStruct(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
save := &CharacterSaveData{
Mode: _config.G10,
Pointers: getPointers(_config.G10),
Mode: cfg.G10,
Pointers: getPointers(cfg.G10),
decompSave: make([]byte, 150000),
RP: tt.rp,
KQF: tt.kqf,
@@ -414,7 +414,7 @@ func TestGetCharacterSaveData_Integration(t *testing.T) {
s := createTestSession(mock)
s.charID = charID
SetTestDB(s.server, db)
s.server.erupeConfig.RealClientMode = _config.Z2
s.server.erupeConfig.RealClientMode = cfg.Z2
// Get character save data
saveData, err := GetCharacterSaveData(s, charID)
@@ -458,7 +458,7 @@ func TestCharacterSaveData_Save_Integration(t *testing.T) {
s := createTestSession(mock)
s.charID = charID
SetTestDB(s.server, db)
s.server.erupeConfig.RealClientMode = _config.Z2
s.server.erupeConfig.RealClientMode = cfg.Z2
// Load character save data
saveData, err := GetCharacterSaveData(s, charID)

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/byteframe"
"erupe-ce/network/mhfpacket"
"go.uber.org/zap"
@@ -390,8 +390,8 @@ func TestEnumerateClient_ConcurrentAccess(t *testing.T) {
server := &Server{
logger: logger,
stages: make(map[string]*Stage),
erupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
},
},

View File

@@ -6,7 +6,7 @@ import (
"erupe-ce/common/byteframe"
"erupe-ce/common/mhfcid"
"erupe-ce/common/mhfcourse"
"erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/binpacket"
"erupe-ce/network/mhfpacket"
@@ -22,13 +22,13 @@ import (
)
var (
commands map[string]_config.Command
commands map[string]cfg.Command
commandsOnce sync.Once
)
func initCommands(cmds []_config.Command, logger *zap.Logger) {
func initCommands(cmds []cfg.Command, logger *zap.Logger) {
commandsOnce.Do(func() {
commands = make(map[string]_config.Command)
commands = make(map[string]cfg.Command)
for _, cmd := range cmds {
commands[cmd.Name] = cmd
if cmd.Enabled {
@@ -40,7 +40,7 @@ func initCommands(cmds []_config.Command, logger *zap.Logger) {
})
}
func sendDisabledCommandMessage(s *Session, cmd _config.Command) {
func sendDisabledCommandMessage(s *Session, cmd cfg.Command) {
sendServerChatMessage(s, fmt.Sprintf(s.server.i18n.commands.disabled, cmd.Name))
}
@@ -230,7 +230,7 @@ func parseChatCommand(s *Session, command string) {
}
case commands["KeyQuest"].Prefix:
if commands["KeyQuest"].Enabled || s.isOp() {
if s.server.erupeConfig.RealClientMode < _config.G10 {
if s.server.erupeConfig.RealClientMode < cfg.G10 {
sendServerChatMessage(s, s.server.i18n.commands.kqf.version)
} else {
if len(args) > 1 {
@@ -274,7 +274,7 @@ func parseChatCommand(s *Session, command string) {
for _, course := range mhfcourse.Courses() {
for _, alias := range course.Aliases() {
if strings.EqualFold(args[1], alias) {
if slices.Contains(s.server.erupeConfig.Courses, _config.Course{Name: course.Aliases()[0], Enabled: true}) {
if slices.Contains(s.server.erupeConfig.Courses, cfg.Course{Name: course.Aliases()[0], Enabled: true}) {
var delta uint32
if mhfcourse.CourseExists(course.ID, s.courses) {
ei := slices.IndexFunc(s.courses, func(c mhfcourse.Course) bool {
@@ -329,7 +329,7 @@ func parseChatCommand(s *Session, command string) {
case "cm", "check", "checkmultiplier", "multiplier":
sendServerChatMessage(s, fmt.Sprintf(s.server.i18n.commands.ravi.multiplier, s.server.GetRaviMultiplier()))
case "sr", "sendres", "resurrection", "ss", "sendsed", "rs", "reqsed":
if s.server.erupeConfig.RealClientMode == _config.ZZ {
if s.server.erupeConfig.RealClientMode == cfg.ZZ {
switch args[1] {
case "sr", "sendres", "resurrection":
if s.server.raviente.state[28] > 0 {

View File

@@ -3,7 +3,7 @@ package channelserver
import (
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
)
@@ -202,8 +202,8 @@ func TestHandleMsgMhfMercenaryHuntdata_RequestTypeIs2(t *testing.T) {
func TestHandleMsgMhfEnumerateRanking_DefaultBranch(t *testing.T) {
server := createMockServer()
server.erupeConfig = &_config.Config{
DebugOptions: _config.DebugOptions{
server.erupeConfig = &cfg.Config{
DebugOptions: cfg.DebugOptions{
TournamentOverride: 0,
},
}
@@ -227,8 +227,8 @@ func TestHandleMsgMhfEnumerateRanking_DefaultBranch(t *testing.T) {
func TestHandleMsgMhfEnumerateRanking_NegativeState(t *testing.T) {
server := createMockServer()
server.erupeConfig = &_config.Config{
DebugOptions: _config.DebugOptions{
server.erupeConfig = &cfg.Config{
DebugOptions: cfg.DebugOptions{
TournamentOverride: -1,
},
}

View File

@@ -3,7 +3,7 @@ package channelserver
import (
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
)
@@ -12,28 +12,28 @@ import (
// =============================================================================
func TestEquipSkinHistSize_Default(t *testing.T) {
got := equipSkinHistSize(_config.ZZ)
got := equipSkinHistSize(cfg.ZZ)
if got != 3200 {
t.Errorf("equipSkinHistSize(ZZ) = %d, want 3200", got)
}
}
func TestEquipSkinHistSize_Z2(t *testing.T) {
got := equipSkinHistSize(_config.Z2)
got := equipSkinHistSize(cfg.Z2)
if got != 2560 {
t.Errorf("equipSkinHistSize(Z2) = %d, want 2560", got)
}
}
func TestEquipSkinHistSize_Z1(t *testing.T) {
got := equipSkinHistSize(_config.Z1)
got := equipSkinHistSize(cfg.Z1)
if got != 1280 {
t.Errorf("equipSkinHistSize(Z1) = %d, want 1280", got)
}
}
func TestEquipSkinHistSize_OlderMode(t *testing.T) {
got := equipSkinHistSize(_config.G1)
got := equipSkinHistSize(cfg.G1)
if got != 1280 {
t.Errorf("equipSkinHistSize(G1) = %d, want 1280", got)
}

View File

@@ -2,7 +2,7 @@ package channelserver
import (
"erupe-ce/common/stringsupport"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"fmt"
"io"
"os"
@@ -90,7 +90,7 @@ func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) {
characterSaveData.updateSaveDataWithStruct()
}
if characterSaveData.Name == s.Name || s.server.erupeConfig.RealClientMode <= _config.S10 {
if characterSaveData.Name == s.Name || s.server.erupeConfig.RealClientMode <= cfg.S10 {
characterSaveData.Save(s)
s.logger.Info("Wrote recompressed savedata back to DB.")
} else {

View File

@@ -3,7 +3,7 @@ package channelserver
import (
"erupe-ce/common/byteframe"
ps "erupe-ce/common/pascalstring"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"time"
@@ -41,7 +41,7 @@ func handleMsgMhfEnumerateDistItem(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint32(dist.Rights)
bf.WriteUint16(dist.TimesAcceptable)
bf.WriteUint16(dist.TimesAccepted)
if s.server.erupeConfig.RealClientMode >= _config.G9 {
if s.server.erupeConfig.RealClientMode >= cfg.G9 {
bf.WriteUint16(0) // Unk
}
bf.WriteInt16(dist.MinHR)
@@ -50,29 +50,29 @@ func handleMsgMhfEnumerateDistItem(s *Session, p mhfpacket.MHFPacket) {
bf.WriteInt16(dist.MaxSR)
bf.WriteInt16(dist.MinGR)
bf.WriteInt16(dist.MaxGR)
if s.server.erupeConfig.RealClientMode >= _config.G7 {
if s.server.erupeConfig.RealClientMode >= cfg.G7 {
bf.WriteUint8(0) // Unk
}
if s.server.erupeConfig.RealClientMode >= _config.G6 {
if s.server.erupeConfig.RealClientMode >= cfg.G6 {
bf.WriteUint16(0) // Unk
}
if s.server.erupeConfig.RealClientMode >= _config.G8 {
if s.server.erupeConfig.RealClientMode >= cfg.G8 {
if dist.Selection {
bf.WriteUint8(2) // Selection
} else {
bf.WriteUint8(0)
}
}
if s.server.erupeConfig.RealClientMode >= _config.G7 {
if s.server.erupeConfig.RealClientMode >= cfg.G7 {
bf.WriteUint16(0) // Unk
bf.WriteUint16(0) // Unk
}
if s.server.erupeConfig.RealClientMode >= _config.G10 {
if s.server.erupeConfig.RealClientMode >= cfg.G10 {
bf.WriteUint8(0) // Unk
}
ps.Uint8(bf, dist.EventName, true)
k := 6
if s.server.erupeConfig.RealClientMode >= _config.G8 {
if s.server.erupeConfig.RealClientMode >= cfg.G8 {
k = 13
}
for i := 0; i < 6; i++ {
@@ -81,7 +81,7 @@ func handleMsgMhfEnumerateDistItem(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint32(0)
}
}
if s.server.erupeConfig.RealClientMode >= _config.Z2 {
if s.server.erupeConfig.RealClientMode >= cfg.Z2 {
i := uint8(0)
bf.WriteUint8(i)
if i <= 10 {
@@ -114,7 +114,7 @@ func handleMsgMhfApplyDistItem(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint8(item.ItemType)
bf.WriteUint32(item.ItemID)
bf.WriteUint32(item.Quantity)
if s.server.erupeConfig.RealClientMode >= _config.G8 {
if s.server.erupeConfig.RealClientMode >= cfg.G8 {
bf.WriteUint32(item.ID)
}
}

View File

@@ -3,7 +3,7 @@ package channelserver
import (
"encoding/hex"
"erupe-ce/common/stringsupport"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"time"
"erupe-ce/common/byteframe"
@@ -91,7 +91,7 @@ func handleMsgMhfGetUdSchedule(s *Session, p mhfpacket.MHFPacket) {
var timestamps []uint32
if s.server.erupeConfig.DebugOptions.DivaOverride >= 0 {
if s.server.erupeConfig.DebugOptions.DivaOverride == 0 {
if s.server.erupeConfig.RealClientMode >= _config.Z2 {
if s.server.erupeConfig.RealClientMode >= cfg.Z2 {
doAckBufSucceed(s, pkt.AckHandle, make([]byte, 36))
} else {
doAckBufSucceed(s, pkt.AckHandle, make([]byte, 32))
@@ -103,7 +103,7 @@ func handleMsgMhfGetUdSchedule(s *Session, p mhfpacket.MHFPacket) {
timestamps = generateDivaTimestamps(s, start, false)
}
if s.server.erupeConfig.RealClientMode >= _config.Z2 {
if s.server.erupeConfig.RealClientMode >= cfg.Z2 {
bf.WriteUint32(id)
}
for i := range timestamps {

View File

@@ -2,7 +2,7 @@ package channelserver
import (
"erupe-ce/common/token"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"math"
"time"
@@ -88,15 +88,15 @@ func handleMsgMhfGetWeeklySchedule(s *Session, p mhfpacket.MHFPacket) {
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
}
func generateFeatureWeapons(count int, mode _config.Mode) activeFeature {
func generateFeatureWeapons(count int, mode cfg.Mode) activeFeature {
_max := 14
if mode < _config.ZZ {
if mode < cfg.ZZ {
_max = 13
}
if mode < _config.G10 {
if mode < cfg.G10 {
_max = 12
}
if mode < _config.GG {
if mode < cfg.GG {
_max = 11
}
if count > _max {

View File

@@ -4,7 +4,7 @@ import (
"math/bits"
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
)
@@ -122,7 +122,7 @@ func TestGenerateFeatureWeapons(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := generateFeatureWeapons(tt.count, _config.ZZ)
result := generateFeatureWeapons(tt.count, cfg.ZZ)
// Result should be non-zero for positive counts
if tt.count > 0 && result.ActiveFeatures == 0 {
@@ -143,7 +143,7 @@ func TestGenerateFeatureWeapons_Randomness(t *testing.T) {
iterations := 100
for i := 0; i < iterations; i++ {
result := generateFeatureWeapons(5, _config.ZZ)
result := generateFeatureWeapons(5, cfg.ZZ)
results[result.ActiveFeatures]++
}
@@ -154,7 +154,7 @@ func TestGenerateFeatureWeapons_Randomness(t *testing.T) {
}
func TestGenerateFeatureWeapons_ZeroCount(t *testing.T) {
result := generateFeatureWeapons(0, _config.ZZ)
result := generateFeatureWeapons(0, cfg.ZZ)
// Should return 0 for no weapons
if result.ActiveFeatures != 0 {
@@ -181,7 +181,7 @@ func TestGenerateFeatureWeapons_BitCount(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := generateFeatureWeapons(tt.count, _config.ZZ)
result := generateFeatureWeapons(tt.count, cfg.ZZ)
setBits := bits.OnesCount32(result.ActiveFeatures)
if setBits != tt.wantBits {
t.Errorf("Set bits = %d, want %d (ActiveFeatures=0b%032b)",
@@ -195,7 +195,7 @@ func TestGenerateFeatureWeapons_BitCount(t *testing.T) {
// bits 0-13 (no bits above bit 13 should be set).
func TestGenerateFeatureWeapons_BitsInRange(t *testing.T) {
for i := 0; i < 50; i++ {
result := generateFeatureWeapons(7, _config.ZZ)
result := generateFeatureWeapons(7, cfg.ZZ)
// Bits 14+ should never be set
if result.ActiveFeatures&^uint32(0x3FFF) != 0 {
t.Errorf("Bits above 13 are set: 0x%08X", result.ActiveFeatures)
@@ -206,7 +206,7 @@ func TestGenerateFeatureWeapons_BitsInRange(t *testing.T) {
// TestGenerateFeatureWeapons_MaxYieldsAllBits verifies that requesting 14
// weapons sets exactly bits 0-13 (the value 16383 = 0x3FFF).
func TestGenerateFeatureWeapons_MaxYieldsAllBits(t *testing.T) {
result := generateFeatureWeapons(14, _config.ZZ)
result := generateFeatureWeapons(14, cfg.ZZ)
if result.ActiveFeatures != 0x3FFF {
t.Errorf("ActiveFeatures = 0x%04X, want 0x3FFF (all 14 bits set)", result.ActiveFeatures)
}
@@ -215,7 +215,7 @@ func TestGenerateFeatureWeapons_MaxYieldsAllBits(t *testing.T) {
// TestGenerateFeatureWeapons_StartTimeZero verifies that the returned
// activeFeature has a zero StartTime (not set by generateFeatureWeapons).
func TestGenerateFeatureWeapons_StartTimeZero(t *testing.T) {
result := generateFeatureWeapons(5, _config.ZZ)
result := generateFeatureWeapons(5, cfg.ZZ)
if !result.StartTime.IsZero() {
t.Errorf("StartTime should be zero, got %v", result.StartTime)
}

View File

@@ -9,7 +9,7 @@ import (
"erupe-ce/common/byteframe"
ps "erupe-ce/common/pascalstring"
"erupe-ce/common/token"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"go.uber.org/zap"
@@ -230,7 +230,7 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint16(trial.Locale)
bf.WriteUint16(trial.Reward)
bf.WriteInt16(FestivalColorCodes[trial.Monopoly])
if s.server.erupeConfig.RealClientMode >= _config.F4 { // Not in S6.0
if s.server.erupeConfig.RealClientMode >= cfg.F4 { // Not in S6.0
bf.WriteUint16(trial.Unk)
}
}
@@ -274,13 +274,13 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint16(reward.Quantity)
bf.WriteUint16(reward.ItemID)
// Confirmed present in G3 via Wii U disassembly of import_festa_info
if s.server.erupeConfig.RealClientMode >= _config.G3 {
if s.server.erupeConfig.RealClientMode >= cfg.G3 {
bf.WriteUint16(reward.MinHR)
bf.WriteUint16(reward.MinSR)
bf.WriteUint8(reward.MinGR)
}
}
if s.server.erupeConfig.RealClientMode <= _config.G61 {
if s.server.erupeConfig.RealClientMode <= cfg.G61 {
if s.server.erupeConfig.GameplayOptions.MaximumFP > 0xFFFF {
s.server.erupeConfig.GameplayOptions.MaximumFP = 0xFFFF
}
@@ -326,7 +326,7 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint16(100) // Normal rate
bf.WriteUint16(50) // 50% penalty
if s.server.erupeConfig.RealClientMode >= _config.G52 {
if s.server.erupeConfig.RealClientMode >= cfg.G52 {
ps.Uint16(bf, "", false)
}
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
@@ -413,7 +413,7 @@ func handleMsgMhfEnumerateFestaMember(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint16(0) // Unk
for _, member := range validMembers {
bf.WriteUint32(member.CharID)
if s.server.erupeConfig.RealClientMode <= _config.Z1 {
if s.server.erupeConfig.RealClientMode <= cfg.Z1 {
bf.WriteUint16(uint16(member.Souls))
bf.WriteUint16(0)
} else {

View File

@@ -3,14 +3,14 @@ package channelserver
import (
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
)
func TestHandleMsgMhfEnumerateRanking_Default(t *testing.T) {
server := createMockServer()
server.erupeConfig = &_config.Config{
DebugOptions: _config.DebugOptions{
server.erupeConfig = &cfg.Config{
DebugOptions: cfg.DebugOptions{
TournamentOverride: 0, // Default state
},
}
@@ -34,8 +34,8 @@ func TestHandleMsgMhfEnumerateRanking_Default(t *testing.T) {
func TestHandleMsgMhfEnumerateRanking_State1(t *testing.T) {
server := createMockServer()
server.erupeConfig = &_config.Config{
DebugOptions: _config.DebugOptions{
server.erupeConfig = &cfg.Config{
DebugOptions: cfg.DebugOptions{
TournamentOverride: 1,
},
}
@@ -59,8 +59,8 @@ func TestHandleMsgMhfEnumerateRanking_State1(t *testing.T) {
func TestHandleMsgMhfEnumerateRanking_State2(t *testing.T) {
server := createMockServer()
server.erupeConfig = &_config.Config{
DebugOptions: _config.DebugOptions{
server.erupeConfig = &cfg.Config{
DebugOptions: cfg.DebugOptions{
TournamentOverride: 2,
},
}
@@ -84,8 +84,8 @@ func TestHandleMsgMhfEnumerateRanking_State2(t *testing.T) {
func TestHandleMsgMhfEnumerateRanking_State3(t *testing.T) {
server := createMockServer()
server.erupeConfig = &_config.Config{
DebugOptions: _config.DebugOptions{
server.erupeConfig = &cfg.Config{
DebugOptions: cfg.DebugOptions{
TournamentOverride: 3,
},
}

View File

@@ -6,7 +6,7 @@ import (
"erupe-ce/common/byteframe"
"erupe-ce/common/mhfitem"
_config "erupe-ce/config"
cfg "erupe-ce/config"
ps "erupe-ce/common/pascalstring"
"erupe-ce/network/mhfpacket"
@@ -144,10 +144,10 @@ func handleMsgMhfEnumerateGuildMember(s *Session, p mhfpacket.MHFPacket) {
for _, member := range guildMembers {
bf.WriteUint32(member.CharID)
bf.WriteUint16(member.HR)
if s.server.erupeConfig.RealClientMode >= _config.G10 {
if s.server.erupeConfig.RealClientMode >= cfg.G10 {
bf.WriteUint16(member.GR)
}
if s.server.erupeConfig.RealClientMode < _config.ZZ {
if s.server.erupeConfig.RealClientMode < cfg.ZZ {
// Magnet Spike crash workaround
bf.WriteUint16(0)
} else {

View File

@@ -7,7 +7,7 @@ import (
"erupe-ce/common/byteframe"
ps "erupe-ce/common/pascalstring"
"erupe-ce/common/stringsupport"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
)
@@ -110,7 +110,7 @@ func handleMsgMhfInfoGuild(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint8(guild.PugiOutfit1)
bf.WriteUint8(guild.PugiOutfit2)
bf.WriteUint8(guild.PugiOutfit3)
if s.server.erupeConfig.RealClientMode >= _config.Z1 {
if s.server.erupeConfig.RealClientMode >= cfg.Z1 {
bf.WriteUint8(guild.PugiOutfit1)
bf.WriteUint8(guild.PugiOutfit2)
bf.WriteUint8(guild.PugiOutfit3)
@@ -204,7 +204,7 @@ func handleMsgMhfInfoGuild(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint32(applicant.CharID)
bf.WriteUint32(0)
bf.WriteUint16(applicant.HR)
if s.server.erupeConfig.RealClientMode >= _config.G10 {
if s.server.erupeConfig.RealClientMode >= cfg.G10 {
bf.WriteUint16(applicant.GR)
}
ps.Uint8(bf, applicant.Name, true)

View File

@@ -5,7 +5,7 @@ import (
"testing"
"time"
_config "erupe-ce/config"
cfg "erupe-ce/config"
)
// TestGuildCreation tests basic guild creation
@@ -87,31 +87,31 @@ func TestGuildRankCalculation(t *testing.T) {
name string
rankRP uint32
wantRank uint16
config _config.Mode
config cfg.Mode
}{
{
name: "rank_0_minimal_rp",
rankRP: 0,
wantRank: 0,
config: _config.Z2,
config: cfg.Z2,
},
{
name: "rank_1_threshold",
rankRP: 3500,
wantRank: 1,
config: _config.Z2,
config: cfg.Z2,
},
{
name: "rank_5_middle",
rankRP: 16000,
wantRank: 6,
config: _config.Z2,
config: cfg.Z2,
},
{
name: "max_rank",
rankRP: 120001,
wantRank: 17,
config: _config.Z2,
config: cfg.Z2,
},
}

View File

@@ -6,7 +6,7 @@ import (
ps "erupe-ce/common/pascalstring"
"erupe-ce/common/stringsupport"
"erupe-ce/common/token"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"go.uber.org/zap"
"io"
@@ -90,7 +90,7 @@ func handleMsgMhfEnumerateHouse(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint8(0)
}
bf.WriteUint16(house.HR)
if s.server.erupeConfig.RealClientMode >= _config.G10 {
if s.server.erupeConfig.RealClientMode >= cfg.G10 {
bf.WriteUint16(house.GR)
}
ps.Uint8(bf, house.Name, true)
@@ -225,7 +225,7 @@ func handleMsgMhfUpdateMyhouseInfo(s *Session, p mhfpacket.MHFPacket) {
func handleMsgMhfLoadDecoMyset(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgMhfLoadDecoMyset)
defaultData := []byte{0x01, 0x00}
if s.server.erupeConfig.RealClientMode < _config.G10 {
if s.server.erupeConfig.RealClientMode < cfg.G10 {
defaultData = []byte{0x00, 0x00}
}
loadCharacterData(s, pkt.AckHandle, "decomyset", defaultData)
@@ -247,7 +247,7 @@ func handleMsgMhfSaveDecoMyset(s *Session, p mhfpacket.MHFPacket) {
// Version handling
bf := byteframe.NewByteFrame()
var size uint
if s.server.erupeConfig.RealClientMode >= _config.G10 {
if s.server.erupeConfig.RealClientMode >= cfg.G10 {
size = 76
bf.WriteUint8(1)
} else {

View File

@@ -2,7 +2,7 @@ package channelserver
import (
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/mhfitem"
"erupe-ce/common/token"
"erupe-ce/network/mhfpacket"
@@ -54,7 +54,7 @@ func setupHouseTest(t *testing.T) (*sqlx.DB, *Server, *Session, uint32) {
t.Helper()
db := SetupTestDB(t)
server := createMockServer()
server.erupeConfig.RealClientMode = _config.ZZ
server.erupeConfig.RealClientMode = cfg.ZZ
SetTestDB(server, db)
userID := CreateTestUser(t, db, "house_test_user")
@@ -158,7 +158,7 @@ func TestUpdateWarehouse_BoxIndexTooHigh(t *testing.T) {
func TestEnumerateHouse_Method5_EmptyResult(t *testing.T) {
server := createMockServer()
server.erupeConfig.RealClientMode = _config.ZZ
server.erupeConfig.RealClientMode = cfg.ZZ
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfEnumerateHouse{
@@ -759,7 +759,7 @@ func TestWarehouseEquipmentSerialization(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
// Serialize
serialized := mhfitem.SerializeWarehouseEquipment(tt.equipment, _config.ZZ)
serialized := mhfitem.SerializeWarehouseEquipment(tt.equipment, cfg.ZZ)
// Basic validation
if serialized == nil {

View File

@@ -4,7 +4,7 @@ import (
"erupe-ce/common/byteframe"
"erupe-ce/common/mhfitem"
"erupe-ce/common/mhfmon"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"go.uber.org/zap"
@@ -313,7 +313,7 @@ func handleMsgMhfStampcardStamp(s *Session, p mhfpacket.MHFPacket) {
{300, 5392, 1, 5392, 3},
{999, 5392, 1, 5392, 4},
}
if s.server.erupeConfig.RealClientMode <= _config.Z1 {
if s.server.erupeConfig.RealClientMode <= cfg.Z1 {
for _, reward := range rewards {
if pkt.HR >= reward.HR {
pkt.Item1 = reward.Item1
@@ -326,7 +326,7 @@ func handleMsgMhfStampcardStamp(s *Session, p mhfpacket.MHFPacket) {
bf := byteframe.NewByteFrame()
bf.WriteUint16(pkt.HR)
if s.server.erupeConfig.RealClientMode >= _config.G1 {
if s.server.erupeConfig.RealClientMode >= cfg.G1 {
bf.WriteUint16(pkt.GR)
}
var stamps, rewardTier, rewardUnk uint16

View File

@@ -3,7 +3,7 @@ package channelserver
import (
"erupe-ce/common/byteframe"
"erupe-ce/common/stringsupport"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"erupe-ce/server/channelserver/compression/deltacomp"
"erupe-ce/server/channelserver/compression/nullcomp"
@@ -50,7 +50,7 @@ const (
func handleMsgMhfLoadHunterNavi(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgMhfLoadHunterNavi)
naviLength := hunterNaviSizeG8
if s.server.erupeConfig.RealClientMode <= _config.G7 {
if s.server.erupeConfig.RealClientMode <= cfg.G7 {
naviLength = hunterNaviSizeG7
}
loadCharacterData(s, pkt.AckHandle, "hunternavi", make([]byte, naviLength))
@@ -74,7 +74,7 @@ func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) {
var dataSize int
if pkt.IsDataDiff {
naviLength := hunterNaviSizeG8
if s.server.erupeConfig.RealClientMode <= _config.G7 {
if s.server.erupeConfig.RealClientMode <= cfg.G7 {
naviLength = hunterNaviSizeG7
}
// Load existing save

View File

@@ -2,7 +2,7 @@ package channelserver
import (
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"math/bits"
"time"
@@ -73,7 +73,7 @@ func handleMsgMhfGetEarthStatus(s *Session, p mhfpacket.MHFPacket) {
bf.WriteInt32(s.server.erupeConfig.EarthStatus)
bf.WriteInt32(s.server.erupeConfig.EarthID)
for i, m := range s.server.erupeConfig.EarthMonsters {
if s.server.erupeConfig.RealClientMode <= _config.G9 {
if s.server.erupeConfig.RealClientMode <= cfg.G9 {
if i == 3 {
break
}
@@ -157,12 +157,12 @@ const (
skinHistSizeZ1 = 1280 // Z1 and older
)
func equipSkinHistSize(mode _config.Mode) int {
func equipSkinHistSize(mode cfg.Mode) int {
size := skinHistSizeZZ
if mode <= _config.Z2 {
if mode <= cfg.Z2 {
size = skinHistSizeZ2
}
if mode <= _config.Z1 {
if mode <= cfg.Z1 {
size = skinHistSizeZ1
}
return size

View File

@@ -6,7 +6,7 @@ import (
"erupe-ce/common/byteframe"
"erupe-ce/common/decryption"
ps "erupe-ce/common/pascalstring"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"fmt"
"io"
@@ -49,7 +49,7 @@ func equal(a, b []byte) bool {
}
// BackportQuest converts a quest binary to an older format.
func BackportQuest(data []byte, mode _config.Mode) []byte {
func BackportQuest(data []byte, mode cfg.Mode) []byte {
wp := binary.LittleEndian.Uint32(data[0:4]) + questRewardTableBase
rp := wp + 4
for i := uint32(0); i < 6; i++ {
@@ -61,16 +61,16 @@ func BackportQuest(data []byte, mode _config.Mode) []byte {
}
fillLength := questBackportFillZZ
if mode <= _config.S6 {
if mode <= cfg.S6 {
fillLength = questBackportFillS6
} else if mode <= _config.F5 {
} else if mode <= cfg.F5 {
fillLength = questBackportFillF5
} else if mode <= _config.G101 {
} else if mode <= cfg.G101 {
fillLength = questBackportFillG101
}
copy(data[wp:wp+fillLength], data[rp:rp+fillLength])
if mode <= _config.G91 {
if mode <= cfg.G91 {
patterns := [][]byte{
{0x0A, 0x00, 0x01, 0x33, 0xD7, 0x00}, // 10% Armor Sphere -> Stone
{0x06, 0x00, 0x02, 0x33, 0xD8, 0x00}, // 6% Armor Sphere+ -> Iron Ore
@@ -87,7 +87,7 @@ func BackportQuest(data []byte, mode _config.Mode) []byte {
}
}
if mode <= _config.S6 {
if mode <= cfg.S6 {
binary.LittleEndian.PutUint32(data[16:20], binary.LittleEndian.Uint32(data[8:12]))
}
return data
@@ -133,7 +133,7 @@ func handleMsgSysGetFile(s *Session, p mhfpacket.MHFPacket) {
doAckBufFail(s, pkt.AckHandle, nil)
return
}
if s.server.erupeConfig.RealClientMode <= _config.Z1 && s.server.erupeConfig.DebugOptions.AutoQuestBackport {
if s.server.erupeConfig.RealClientMode <= cfg.Z1 && s.server.erupeConfig.DebugOptions.AutoQuestBackport {
data = BackportQuest(decryption.UnpackSimple(data), s.server.erupeConfig.RealClientMode)
}
doAckBufSucceed(s, pkt.AckHandle, data)
@@ -216,7 +216,7 @@ func loadQuestFile(s *Session, questId int) []byte {
}
decrypted := decryption.UnpackSimple(file)
if s.server.erupeConfig.RealClientMode <= _config.Z1 && s.server.erupeConfig.DebugOptions.AutoQuestBackport {
if s.server.erupeConfig.RealClientMode <= cfg.Z1 && s.server.erupeConfig.DebugOptions.AutoQuestBackport {
decrypted = BackportQuest(decrypted, s.server.erupeConfig.RealClientMode)
}
fileBytes := byteframe.NewByteFrameFromBytes(decrypted)
@@ -224,13 +224,13 @@ func loadQuestFile(s *Session, questId int) []byte {
_, _ = fileBytes.Seek(int64(fileBytes.ReadUint32()), 0)
bodyLength := questBodyLenZZ
if s.server.erupeConfig.RealClientMode <= _config.S6 {
if s.server.erupeConfig.RealClientMode <= cfg.S6 {
bodyLength = questBodyLenS6
} else if s.server.erupeConfig.RealClientMode <= _config.F5 {
} else if s.server.erupeConfig.RealClientMode <= cfg.F5 {
bodyLength = questBodyLenF5
} else if s.server.erupeConfig.RealClientMode <= _config.G101 {
} else if s.server.erupeConfig.RealClientMode <= cfg.G101 {
bodyLength = questBodyLenG101
} else if s.server.erupeConfig.RealClientMode <= _config.Z1 {
} else if s.server.erupeConfig.RealClientMode <= cfg.Z1 {
bodyLength = questBodyLenZ1
}
@@ -304,7 +304,7 @@ func makeEventQuest(s *Session, rows *sql.Rows) ([]byte, error) {
bf.WriteBool(true)
}
bf.WriteUint16(0) // Unk
if s.server.erupeConfig.RealClientMode >= _config.G2 {
if s.server.erupeConfig.RealClientMode >= cfg.G2 {
bf.WriteUint32(mark)
}
bf.WriteUint16(0) // Unk
@@ -602,23 +602,23 @@ func handleMsgMhfEnumerateQuest(s *Session, p mhfpacket.MHFPacket) {
tuneValues = temp
tuneLimit := tuneLimitZZ
if s.server.erupeConfig.RealClientMode <= _config.G1 {
if s.server.erupeConfig.RealClientMode <= cfg.G1 {
tuneLimit = tuneLimitG1
} else if s.server.erupeConfig.RealClientMode <= _config.G3 {
} else if s.server.erupeConfig.RealClientMode <= cfg.G3 {
tuneLimit = tuneLimitG3
} else if s.server.erupeConfig.RealClientMode <= _config.GG {
} else if s.server.erupeConfig.RealClientMode <= cfg.GG {
tuneLimit = tuneLimitGG
} else if s.server.erupeConfig.RealClientMode <= _config.G61 {
} else if s.server.erupeConfig.RealClientMode <= cfg.G61 {
tuneLimit = tuneLimitG61
} else if s.server.erupeConfig.RealClientMode <= _config.G7 {
} else if s.server.erupeConfig.RealClientMode <= cfg.G7 {
tuneLimit = tuneLimitG7
} else if s.server.erupeConfig.RealClientMode <= _config.G81 {
} else if s.server.erupeConfig.RealClientMode <= cfg.G81 {
tuneLimit = tuneLimitG81
} else if s.server.erupeConfig.RealClientMode <= _config.G91 {
} else if s.server.erupeConfig.RealClientMode <= cfg.G91 {
tuneLimit = tuneLimitG91
} else if s.server.erupeConfig.RealClientMode <= _config.G101 {
} else if s.server.erupeConfig.RealClientMode <= cfg.G101 {
tuneLimit = tuneLimitG101
} else if s.server.erupeConfig.RealClientMode <= _config.Z2 {
} else if s.server.erupeConfig.RealClientMode <= cfg.Z2 {
tuneLimit = tuneLimitZ2
}
if len(tuneValues) > tuneLimit {

View File

@@ -4,7 +4,7 @@ import (
"encoding/binary"
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
)
func TestBackportQuest_Basic(t *testing.T) {
@@ -20,7 +20,7 @@ func TestBackportQuest_Basic(t *testing.T) {
data[i] = byte(i & 0xFF)
}
result := BackportQuest(data, _config.ZZ)
result := BackportQuest(data, cfg.ZZ)
if result == nil {
t.Fatal("BackportQuest returned nil")
}
@@ -43,7 +43,7 @@ func TestBackportQuest_S6Mode(t *testing.T) {
// Set some values at data[8:12] so we can check they get copied to data[16:20]
binary.LittleEndian.PutUint32(data[8:12], 0xDEADBEEF)
result := BackportQuest(data, _config.S6)
result := BackportQuest(data, cfg.S6)
if result == nil {
t.Fatal("BackportQuest returned nil")
}
@@ -67,7 +67,7 @@ func TestBackportQuest_G91Mode_PatternReplacement(t *testing.T) {
data[offset+2] = 0x01
data[offset+3] = 0x33
result := BackportQuest(data, _config.G91)
result := BackportQuest(data, cfg.G91)
// After BackportQuest, the pattern's last 2 bytes should be replaced
if result[offset+2] != 0xD7 || result[offset+3] != 0x00 {
@@ -80,7 +80,7 @@ func TestBackportQuest_F5Mode(t *testing.T) {
data := make([]byte, 512)
binary.LittleEndian.PutUint32(data[0:4], 0)
result := BackportQuest(data, _config.F5)
result := BackportQuest(data, cfg.F5)
if result == nil {
t.Fatal("BackportQuest returned nil")
}
@@ -90,7 +90,7 @@ func TestBackportQuest_G101Mode(t *testing.T) {
data := make([]byte, 512)
binary.LittleEndian.PutUint32(data[0:4], 0)
result := BackportQuest(data, _config.G101)
result := BackportQuest(data, cfg.G101)
if result == nil {
t.Fatal("BackportQuest returned nil")
}

View File

@@ -4,7 +4,7 @@ import (
"bytes"
"encoding/binary"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"os"
"path/filepath"
@@ -62,7 +62,7 @@ func TestBackportQuestBasic(t *testing.T) {
}
}()
result := BackportQuest(data, _config.ZZ)
result := BackportQuest(data, cfg.ZZ)
if result != nil && !tc.verify(result) {
t.Errorf("BackportQuest verification failed for result: %d bytes", len(result))
}
@@ -686,7 +686,7 @@ func BenchmarkBackportQuest(b *testing.B) {
binary.LittleEndian.PutUint32(data[0:4], 100)
for i := 0; i < b.N; i++ {
_ = BackportQuest(data, _config.ZZ)
_ = BackportQuest(data, cfg.ZZ)
}
}

View File

@@ -5,7 +5,7 @@ import (
"testing"
"time"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/mhfitem"
"erupe-ce/network/mhfpacket"
"erupe-ce/server/channelserver/compression/nullcomp"
@@ -215,7 +215,7 @@ func TestSaveLoad_Warehouse(t *testing.T) {
}
// Serialize and save to warehouse
serializedEquip := mhfitem.SerializeWarehouseEquipment(equipment, _config.ZZ)
serializedEquip := mhfitem.SerializeWarehouseEquipment(equipment, cfg.ZZ)
// Initialize warehouse row then update
_, _ = db.Exec("INSERT INTO warehouse (character_id) VALUES ($1) ON CONFLICT DO NOTHING", charID)
@@ -426,7 +426,7 @@ func TestSaveLoad_CraftedEquipment(t *testing.T) {
}
equipment := []mhfitem.MHFEquipment{equip}
serialized := mhfitem.SerializeWarehouseEquipment(equipment, _config.ZZ)
serialized := mhfitem.SerializeWarehouseEquipment(equipment, cfg.ZZ)
// Save to warehouse
_, _ = db.Exec("INSERT INTO warehouse (character_id) VALUES ($1) ON CONFLICT DO NOTHING", charID)

View File

@@ -8,7 +8,7 @@ import (
"erupe-ce/common/mhfmon"
ps "erupe-ce/common/pascalstring"
"erupe-ce/common/stringsupport"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"fmt"
"io"
@@ -422,7 +422,7 @@ const (
func handleMsgSysRecordLog(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgSysRecordLog)
if s.server.erupeConfig.RealClientMode == _config.ZZ {
if s.server.erupeConfig.RealClientMode == cfg.ZZ {
bf := byteframe.NewByteFrameFromBytes(pkt.Data)
_, _ = bf.Seek(killLogHeaderSize, 0)
var val uint8
@@ -580,7 +580,7 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) {
resp.WriteUint16(uint16(len(r.userBin3)))
// TODO: This case might be <=G2
if s.server.erupeConfig.RealClientMode <= _config.G1 {
if s.server.erupeConfig.RealClientMode <= cfg.G1 {
resp.WriteBytes(make([]byte, 8))
} else {
resp.WriteBytes(make([]byte, 40))
@@ -610,7 +610,7 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) {
case 0:
values := bf.ReadUint8()
for i := uint8(0); i < values; i++ {
if s.server.erupeConfig.RealClientMode >= _config.Z1 {
if s.server.erupeConfig.RealClientMode >= cfg.Z1 {
findPartyParams.RankRestriction = bf.ReadInt16()
} else {
findPartyParams.RankRestriction = int16(bf.ReadInt8())
@@ -619,7 +619,7 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) {
case 1:
values := bf.ReadUint8()
for i := uint8(0); i < values; i++ {
if s.server.erupeConfig.RealClientMode >= _config.Z1 {
if s.server.erupeConfig.RealClientMode >= cfg.Z1 {
findPartyParams.Targets = append(findPartyParams.Targets, bf.ReadInt16())
} else {
findPartyParams.Targets = append(findPartyParams.Targets, int16(bf.ReadInt8()))
@@ -629,7 +629,7 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) {
values := bf.ReadUint8()
for i := uint8(0); i < values; i++ {
var value int16
if s.server.erupeConfig.RealClientMode >= _config.Z1 {
if s.server.erupeConfig.RealClientMode >= cfg.Z1 {
value = bf.ReadInt16()
} else {
value = int16(bf.ReadInt8())
@@ -650,7 +650,7 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) {
case 3: // Unknown
values := bf.ReadUint8()
for i := uint8(0); i < values; i++ {
if s.server.erupeConfig.RealClientMode >= _config.Z1 {
if s.server.erupeConfig.RealClientMode >= cfg.Z1 {
findPartyParams.Unk0 = append(findPartyParams.Unk0, bf.ReadInt16())
} else {
findPartyParams.Unk0 = append(findPartyParams.Unk0, int16(bf.ReadInt8()))
@@ -659,7 +659,7 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) {
case 4: // Looking for n or already have n
values := bf.ReadUint8()
for i := uint8(0); i < values; i++ {
if s.server.erupeConfig.RealClientMode >= _config.Z1 {
if s.server.erupeConfig.RealClientMode >= cfg.Z1 {
findPartyParams.Unk1 = append(findPartyParams.Unk1, bf.ReadInt16())
} else {
findPartyParams.Unk1 = append(findPartyParams.Unk1, int16(bf.ReadInt8()))
@@ -668,7 +668,7 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) {
case 5:
values := bf.ReadUint8()
for i := uint8(0); i < values; i++ {
if s.server.erupeConfig.RealClientMode >= _config.Z1 {
if s.server.erupeConfig.RealClientMode >= cfg.Z1 {
findPartyParams.QuestID = append(findPartyParams.QuestID, bf.ReadInt16())
} else {
findPartyParams.QuestID = append(findPartyParams.QuestID, int16(bf.ReadInt8()))
@@ -705,15 +705,15 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) {
_, _ = sb3.Seek(4, 0)
stageDataParams := 7
if s.server.erupeConfig.RealClientMode <= _config.G10 {
if s.server.erupeConfig.RealClientMode <= cfg.G10 {
stageDataParams = 4
} else if s.server.erupeConfig.RealClientMode <= _config.Z1 {
} else if s.server.erupeConfig.RealClientMode <= cfg.Z1 {
stageDataParams = 6
}
var stageData []int16
for i := 0; i < stageDataParams; i++ {
if s.server.erupeConfig.RealClientMode >= _config.Z1 {
if s.server.erupeConfig.RealClientMode >= cfg.Z1 {
stageData = append(stageData, sb3.ReadInt16())
} else {
stageData = append(stageData, int16(sb3.ReadInt8()))
@@ -790,7 +790,7 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) {
resp.WriteUint8(uint8(len(sr.rawBinData1)))
for i := range sr.stageData {
if s.server.erupeConfig.RealClientMode >= _config.Z1 {
if s.server.erupeConfig.RealClientMode >= cfg.Z1 {
resp.WriteInt16(sr.stageData[i])
} else {
resp.WriteInt8(int8(sr.stageData[i]))

View File

@@ -3,7 +3,7 @@ package channelserver
import (
"erupe-ce/common/byteframe"
ps "erupe-ce/common/pascalstring"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/mhfpacket"
"go.uber.org/zap"
@@ -25,11 +25,11 @@ type ShopItem struct {
RoadFatalis uint16 `db:"road_fatalis"`
}
func writeShopItems(bf *byteframe.ByteFrame, items []ShopItem, mode _config.Mode) {
func writeShopItems(bf *byteframe.ByteFrame, items []ShopItem, mode cfg.Mode) {
bf.WriteUint16(uint16(len(items)))
bf.WriteUint16(uint16(len(items)))
for _, item := range items {
if mode >= _config.Z2 {
if mode >= cfg.Z2 {
bf.WriteUint32(item.ID)
}
bf.WriteUint32(item.ItemID)
@@ -37,19 +37,19 @@ func writeShopItems(bf *byteframe.ByteFrame, items []ShopItem, mode _config.Mode
bf.WriteUint16(item.Quantity)
bf.WriteUint16(item.MinHR)
bf.WriteUint16(item.MinSR)
if mode >= _config.Z2 {
if mode >= cfg.Z2 {
bf.WriteUint16(item.MinGR)
}
bf.WriteUint8(0) // Unk
bf.WriteUint8(item.StoreLevel)
if mode >= _config.Z2 {
if mode >= cfg.Z2 {
bf.WriteUint16(item.MaxQuantity)
bf.WriteUint16(item.UsedQuantity)
}
if mode == _config.Z1 {
if mode == cfg.Z1 {
bf.WriteUint8(uint8(item.RoadFloors))
bf.WriteUint8(uint8(item.RoadFatalis))
} else if mode >= _config.Z2 {
} else if mode >= cfg.Z2 {
bf.WriteUint16(item.RoadFloors)
bf.WriteUint16(item.RoadFatalis)
}
@@ -87,7 +87,7 @@ func handleMsgMhfEnumerateShop(s *Session, p mhfpacket.MHFPacket) {
switch pkt.ShopType {
case 1: // Running gachas
// Fundamentally, gacha works completely differently, just hide it for now.
if s.server.erupeConfig.RealClientMode <= _config.G7 {
if s.server.erupeConfig.RealClientMode <= cfg.G7 {
doAckBufSucceed(s, pkt.AckHandle, make([]byte, 4))
return
}
@@ -112,7 +112,7 @@ func handleMsgMhfEnumerateShop(s *Session, p mhfpacket.MHFPacket) {
ps.Uint8(bf, g.Name, true)
ps.Uint8(bf, g.URLBanner, false)
ps.Uint8(bf, g.URLFeature, false)
if s.server.erupeConfig.RealClientMode >= _config.G10 {
if s.server.erupeConfig.RealClientMode >= cfg.G10 {
bf.WriteBool(g.Wide)
ps.Uint8(bf, g.URLThumbnail, false)
}
@@ -122,7 +122,7 @@ func handleMsgMhfEnumerateShop(s *Session, p mhfpacket.MHFPacket) {
bf.WriteUint16(0)
}
bf.WriteUint8(g.GachaType)
if s.server.erupeConfig.RealClientMode >= _config.G10 {
if s.server.erupeConfig.RealClientMode >= cfg.G10 {
bf.WriteBool(g.Hidden)
}
}
@@ -286,7 +286,7 @@ func handleMsgMhfGetFpointExchangeList(s *Session, p mhfpacket.MHFPacket) {
exchanges = append(exchanges, exchange)
}
}
if s.server.erupeConfig.RealClientMode <= _config.Z2 {
if s.server.erupeConfig.RealClientMode <= cfg.Z2 {
bf.WriteUint8(uint8(len(exchanges)))
bf.WriteUint8(uint8(buyables))
} else {

View File

@@ -4,14 +4,14 @@ import (
"testing"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
)
func TestWriteShopItems_Empty(t *testing.T) {
bf := byteframe.NewByteFrame()
items := []ShopItem{}
writeShopItems(bf, items, _config.ZZ)
writeShopItems(bf, items, cfg.ZZ)
result := byteframe.NewByteFrameFromBytes(bf.Data())
count1 := result.ReadUint16()
@@ -44,7 +44,7 @@ func TestWriteShopItems_SingleItem(t *testing.T) {
},
}
writeShopItems(bf, items, _config.ZZ)
writeShopItems(bf, items, cfg.ZZ)
result := byteframe.NewByteFrameFromBytes(bf.Data())
count1 := result.ReadUint16()
@@ -118,7 +118,7 @@ func TestWriteShopItems_MultipleItems(t *testing.T) {
{ID: 3, ItemID: 300, Cost: 2000, Quantity: 1},
}
writeShopItems(bf, items, _config.ZZ)
writeShopItems(bf, items, cfg.ZZ)
result := byteframe.NewByteFrameFromBytes(bf.Data())
count1 := result.ReadUint16()

View File

@@ -1,7 +1,7 @@
package channelserver
import (
_config "erupe-ce/config"
cfg "erupe-ce/config"
"math"
"strings"
"time"
@@ -76,7 +76,7 @@ func handleMsgMhfGetTowerInfo(s *Session, p mhfpacket.MHFPacket) {
towerInfo.Level[1].Floors = td.Block2
}
if s.server.erupeConfig.RealClientMode <= _config.G7 {
if s.server.erupeConfig.RealClientMode <= cfg.G7 {
towerInfo.Level = towerInfo.Level[:1]
}

View File

@@ -2,7 +2,7 @@ package channelserver
import (
"encoding/binary"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"sync"
"testing"
@@ -45,8 +45,8 @@ func IntegrationTest_PacketQueueFlow(t *testing.T) {
s := &Session{
sendPackets: make(chan packet, 100),
server: &Server{
erupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
},
},
@@ -119,8 +119,8 @@ func IntegrationTest_ConcurrentQueueing(t *testing.T) {
s := &Session{
sendPackets: make(chan packet, 200),
server: &Server{
erupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
},
},
@@ -217,8 +217,8 @@ func IntegrationTest_AckPacketFlow(t *testing.T) {
s := &Session{
sendPackets: make(chan packet, 100),
server: &Server{
erupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
},
},
@@ -282,8 +282,8 @@ func IntegrationTest_MixedPacketTypes(t *testing.T) {
s := &Session{
sendPackets: make(chan packet, 100),
server: &Server{
erupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
},
},
@@ -338,8 +338,8 @@ func IntegrationTest_PacketOrderPreservation(t *testing.T) {
s := &Session{
sendPackets: make(chan packet, 100),
server: &Server{
erupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
},
},
@@ -395,8 +395,8 @@ func IntegrationTest_QueueBackpressure(t *testing.T) {
s := &Session{
sendPackets: make(chan packet, 5),
server: &Server{
erupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
},
LoopDelay: 50, // Slower processing to create backpressure
@@ -599,22 +599,22 @@ func IntegrationTest_ClientVersionCompatibility(t *testing.T) {
tests := []struct {
name string
clientVersion _config.Mode
clientVersion cfg.Mode
shouldSucceed bool
}{
{
name: "version_z2",
clientVersion: _config.Z2,
clientVersion: cfg.Z2,
shouldSucceed: true,
},
{
name: "version_s6",
clientVersion: _config.S6,
clientVersion: cfg.S6,
shouldSucceed: true,
},
{
name: "version_g32",
clientVersion: _config.G32,
clientVersion: cfg.G32,
shouldSucceed: true,
},
}
@@ -625,7 +625,7 @@ func IntegrationTest_ClientVersionCompatibility(t *testing.T) {
s := &Session{
sendPackets: make(chan packet, 100),
server: &Server{
erupeConfig: &_config.Config{
erupeConfig: &cfg.Config{
RealClientMode: tt.clientVersion,
},
},

View File

@@ -5,7 +5,7 @@ import (
"erupe-ce/common/bfutil"
"erupe-ce/common/stringsupport"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/server/channelserver/compression/nullcomp"
)
@@ -35,7 +35,7 @@ type CharacterSaveData struct {
CharID uint32
Name string
IsNewCharacter bool
Mode _config.Mode
Mode cfg.Mode
Pointers map[SavePointer]int
Gender bool
@@ -57,10 +57,10 @@ type CharacterSaveData struct {
decompSave []byte
}
func getPointers(mode _config.Mode) map[SavePointer]int {
func getPointers(mode cfg.Mode) map[SavePointer]int {
pointers := map[SavePointer]int{pGender: 81, lBookshelfData: 5576}
switch mode {
case _config.ZZ:
case cfg.ZZ:
pointers[pPlaytime] = 128356
pointers[pWeaponID] = 128522
pointers[pWeaponType] = 128789
@@ -74,9 +74,9 @@ func getPointers(mode _config.Mode) map[SavePointer]int {
pointers[pGardenData] = 142424
pointers[pRP] = 142614
pointers[pKQF] = 146720
case _config.Z2, _config.Z1, _config.G101, _config.G10, _config.G91, _config.G9, _config.G81, _config.G8,
_config.G7, _config.G61, _config.G6, _config.G52, _config.G51, _config.G5, _config.GG, _config.G32, _config.G31,
_config.G3, _config.G2, _config.G1:
case cfg.Z2, cfg.Z1, cfg.G101, cfg.G10, cfg.G91, cfg.G9, cfg.G81, cfg.G8,
cfg.G7, cfg.G61, cfg.G6, cfg.G52, cfg.G51, cfg.G5, cfg.GG, cfg.G32, cfg.G31,
cfg.G3, cfg.G2, cfg.G1:
pointers[pPlaytime] = 92356
pointers[pWeaponID] = 92522
pointers[pWeaponType] = 92789
@@ -90,7 +90,7 @@ func getPointers(mode _config.Mode) map[SavePointer]int {
pointers[pGardenData] = 106424
pointers[pRP] = 106614
pointers[pKQF] = 110720
case _config.F5, _config.F4:
case cfg.F5, cfg.F4:
pointers[pPlaytime] = 60356
pointers[pWeaponID] = 60522
pointers[pWeaponType] = 60789
@@ -102,7 +102,7 @@ func getPointers(mode _config.Mode) map[SavePointer]int {
pointers[pGalleryData] = 72064
pointers[pGardenData] = 74424
pointers[pRP] = 74614
case _config.S6:
case cfg.S6:
pointers[pPlaytime] = 12356
pointers[pWeaponID] = 12522
pointers[pWeaponType] = 12789
@@ -115,9 +115,9 @@ func getPointers(mode _config.Mode) map[SavePointer]int {
pointers[pGardenData] = 26424
pointers[pRP] = 26614
}
if mode == _config.G5 {
if mode == cfg.G5 {
pointers[lBookshelfData] = 5548
} else if mode <= _config.GG {
} else if mode <= cfg.GG {
pointers[lBookshelfData] = 4520
}
return pointers
@@ -145,10 +145,10 @@ func (save *CharacterSaveData) Decompress() error {
func (save *CharacterSaveData) updateSaveDataWithStruct() {
rpBytes := make([]byte, 2)
binary.LittleEndian.PutUint16(rpBytes, save.RP)
if save.Mode >= _config.F4 {
if save.Mode >= cfg.F4 {
copy(save.decompSave[save.Pointers[pRP]:save.Pointers[pRP]+saveFieldRP], rpBytes)
}
if save.Mode >= _config.G10 {
if save.Mode >= cfg.G10 {
copy(save.decompSave[save.Pointers[pKQF]:save.Pointers[pKQF]+saveFieldKQF], save.KQF)
}
}
@@ -179,7 +179,7 @@ func (save *CharacterSaveData) updateStructWithSaveData() {
save.Gender = false
}
if !save.IsNewCharacter {
if save.Mode >= _config.S6 {
if save.Mode >= cfg.S6 {
save.RP = binary.LittleEndian.Uint16(save.decompSave[save.Pointers[pRP] : save.Pointers[pRP]+saveFieldRP])
save.HouseTier = save.decompSave[save.Pointers[pHouseTier] : save.Pointers[pHouseTier]+saveFieldHouseTier]
save.HouseData = save.decompSave[save.Pointers[pHouseData] : save.Pointers[pHouseData]+saveFieldHouseData]
@@ -191,12 +191,12 @@ func (save *CharacterSaveData) updateStructWithSaveData() {
save.WeaponType = save.decompSave[save.Pointers[pWeaponType]]
save.WeaponID = binary.LittleEndian.Uint16(save.decompSave[save.Pointers[pWeaponID] : save.Pointers[pWeaponID]+saveFieldWeaponID])
save.HR = binary.LittleEndian.Uint16(save.decompSave[save.Pointers[pHR] : save.Pointers[pHR]+saveFieldHR])
if save.Mode >= _config.G1 {
if save.Mode >= cfg.G1 {
if save.HR == uint16(999) {
save.GR = grpToGR(int(binary.LittleEndian.Uint32(save.decompSave[save.Pointers[pGRP] : save.Pointers[pGRP]+saveFieldGRP])))
}
}
if save.Mode >= _config.G10 {
if save.Mode >= cfg.G10 {
save.KQF = save.decompSave[save.Pointers[pKQF] : save.Pointers[pKQF]+saveFieldKQF]
}
}

View File

@@ -6,7 +6,7 @@ import (
"testing"
"time"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/mhfitem"
"erupe-ce/network/clientctx"
"erupe-ce/network/mhfpacket"
@@ -176,7 +176,7 @@ func TestSessionLifecycle_WarehouseDataPersistence(t *testing.T) {
createTestEquipmentItem(102, 3),
}
serializedEquip := mhfitem.SerializeWarehouseEquipment(equipment, _config.ZZ)
serializedEquip := mhfitem.SerializeWarehouseEquipment(equipment, cfg.ZZ)
// Save to warehouse directly (simulating a save handler)
_, _ = db.Exec("INSERT INTO warehouse (character_id) VALUES ($1) ON CONFLICT DO NOTHING", charID)
@@ -586,8 +586,8 @@ func createTestServerWithDB(t *testing.T, db *sqlx.DB) *Server {
userBinaryParts: make(map[userBinaryPartID][]byte),
minidataParts: make(map[uint32][]byte),
semaphore: make(map[string]*Semaphore),
erupeConfig: &_config.Config{
RealClientMode: _config.ZZ,
erupeConfig: &cfg.Config{
RealClientMode: cfg.ZZ,
},
isShuttingDown: false,
done: make(chan struct{}),

View File

@@ -8,7 +8,7 @@ import (
"time"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/binpacket"
"erupe-ce/network/mhfpacket"
@@ -24,7 +24,7 @@ type Config struct {
Logger *zap.Logger
DB *sqlx.DB
DiscordBot *discordbot.DiscordBot
ErupeConfig *_config.Config
ErupeConfig *cfg.Config
Name string
Enable bool
}
@@ -62,7 +62,7 @@ type Server struct {
achievementRepo *AchievementRepository
shopRepo *ShopRepository
cafeRepo *CafeRepository
erupeConfig *_config.Config
erupeConfig *cfg.Config
acceptConns chan net.Conn
deleteConns chan net.Conn
sessions map[net.Conn]*Session

View File

@@ -7,7 +7,7 @@ import (
"testing"
"time"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
"erupe-ce/network/mhfpacket"
@@ -60,8 +60,8 @@ func createTestServer() *Server {
semaphore: make(map[string]*Semaphore),
questCacheData: make(map[int][]byte),
questCacheTime: make(map[int]time.Time),
erupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
LogInboundMessages: false,
},
@@ -98,8 +98,8 @@ func TestNewServer(t *testing.T) {
config := &Config{
ID: 1,
Logger: logger,
ErupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{},
ErupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{},
},
Name: "test-server",
}

View File

@@ -3,12 +3,12 @@ package channelserver
import (
"testing"
_config "erupe-ce/config"
cfg "erupe-ce/config"
)
func TestGetLangStrings_English(t *testing.T) {
server := &Server{
erupeConfig: &_config.Config{
erupeConfig: &cfg.Config{
Language: "en",
},
}
@@ -39,7 +39,7 @@ func TestGetLangStrings_English(t *testing.T) {
func TestGetLangStrings_Japanese(t *testing.T) {
server := &Server{
erupeConfig: &_config.Config{
erupeConfig: &cfg.Config{
Language: "jp",
},
}
@@ -52,7 +52,7 @@ func TestGetLangStrings_Japanese(t *testing.T) {
// Verify Japanese strings are different from English
enServer := &Server{
erupeConfig: &_config.Config{
erupeConfig: &cfg.Config{
Language: "en",
},
}
@@ -65,7 +65,7 @@ func TestGetLangStrings_Japanese(t *testing.T) {
func TestGetLangStrings_DefaultToEnglish(t *testing.T) {
server := &Server{
erupeConfig: &_config.Config{
erupeConfig: &cfg.Config{
Language: "unknown_language",
},
}
@@ -80,7 +80,7 @@ func TestGetLangStrings_DefaultToEnglish(t *testing.T) {
func TestGetLangStrings_EmptyLanguage(t *testing.T) {
server := &Server{
erupeConfig: &_config.Config{
erupeConfig: &cfg.Config{
Language: "",
},
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/binary"
"io"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"sync"
"testing"
@@ -60,8 +60,8 @@ func createTestSession(mock network.Conn) *Session {
sendPackets: make(chan packet, 20),
cryptConn: mock,
server: &Server{
erupeConfig: &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig: &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogOutboundMessages: false,
},
},

View File

@@ -4,7 +4,7 @@ import (
"net"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/clientctx"
@@ -39,7 +39,7 @@ func createMockServer() *Server {
logger, _ := zap.NewDevelopment()
s := &Server{
logger: logger,
erupeConfig: &_config.Config{},
erupeConfig: &cfg.Config{},
stages: make(map[string]*Stage),
sessions: make(map[net.Conn]*Session),
handlerTable: buildHandlerTable(),

View File

@@ -1,7 +1,7 @@
package discordbot
import (
_config "erupe-ce/config"
cfg "erupe-ce/config"
"regexp"
"github.com/bwmarrin/discordgo"
@@ -41,7 +41,7 @@ var Commands = []*discordgo.ApplicationCommand{
// messages between the game server and a configured Discord channel.
type DiscordBot struct {
Session *discordgo.Session
config *_config.Config
config *cfg.Config
logger *zap.Logger
MainGuild *discordgo.Guild
RelayChannel *discordgo.Channel
@@ -49,7 +49,7 @@ type DiscordBot struct {
// Options holds the configuration and logger required to create a DiscordBot.
type Options struct {
Config *_config.Config
Config *cfg.Config
Logger *zap.Logger
}

View File

@@ -8,7 +8,7 @@ import (
"strings"
"sync"
"erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"github.com/jmoiron/sqlx"
"go.uber.org/zap"
@@ -18,7 +18,7 @@ import (
type Server struct {
sync.Mutex
logger *zap.Logger
erupeConfig *_config.Config
erupeConfig *cfg.Config
db *sqlx.DB
listener net.Listener
isShuttingDown bool
@@ -28,7 +28,7 @@ type Server struct {
type Config struct {
Logger *zap.Logger
DB *sqlx.DB
ErupeConfig *_config.Config
ErupeConfig *cfg.Config
}
// NewServer creates a new Server type.

View File

@@ -5,7 +5,7 @@ import (
"testing"
"time"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"go.uber.org/zap"
)
@@ -14,7 +14,7 @@ func TestNewServer(t *testing.T) {
cfg := &Config{
Logger: nil,
DB: nil,
ErupeConfig: &_config.Config{},
ErupeConfig: &cfg.Config{},
}
s := NewServer(cfg)
@@ -67,7 +67,7 @@ func TestConfigFields(t *testing.T) {
func TestServerShutdownFlag(t *testing.T) {
cfg := &Config{
ErupeConfig: &_config.Config{},
ErupeConfig: &cfg.Config{},
}
s := NewServer(cfg)
@@ -85,12 +85,12 @@ func TestServerShutdownFlag(t *testing.T) {
}
func TestServerConfigStorage(t *testing.T) {
erupeConfig := &_config.Config{
erupeConfig := &cfg.Config{
Host: "192.168.1.100",
Entrance: _config.Entrance{
Entrance: cfg.Entrance{
Enabled: true,
Port: 53310,
Entries: []_config.EntranceServerInfo{
Entries: []cfg.EntranceServerInfo{
{
Name: "Test Server",
IP: "127.0.0.1",
@@ -115,13 +115,13 @@ func TestServerConfigStorage(t *testing.T) {
}
func TestServerEntranceEntries(t *testing.T) {
entries := []_config.EntranceServerInfo{
entries := []cfg.EntranceServerInfo{
{
Name: "World 1",
IP: "10.0.0.1",
Type: 1,
Recommended: 1,
Channels: []_config.EntranceChannelInfo{
Channels: []cfg.EntranceChannelInfo{
{Port: 54001, MaxPlayers: 100},
{Port: 54002, MaxPlayers: 100},
},
@@ -131,14 +131,14 @@ func TestServerEntranceEntries(t *testing.T) {
IP: "10.0.0.2",
Type: 2,
Recommended: 0,
Channels: []_config.EntranceChannelInfo{
Channels: []cfg.EntranceChannelInfo{
{Port: 54003, MaxPlayers: 50},
},
},
}
erupeConfig := &_config.Config{
Entrance: _config.Entrance{
erupeConfig := &cfg.Config{
Entrance: cfg.Entrance{
Enabled: true,
Port: 53310,
Entries: entries,
@@ -274,7 +274,7 @@ func TestCalcSum32LargeInput(t *testing.T) {
}
func TestServerMutexLocking(t *testing.T) {
cfg := &Config{ErupeConfig: &_config.Config{}}
cfg := &Config{ErupeConfig: &cfg.Config{}}
s := NewServer(cfg)
s.Lock()
@@ -292,8 +292,8 @@ func TestServerMutexLocking(t *testing.T) {
func TestServerStartAndShutdown(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Entrance: _config.Entrance{
erupeConfig := &cfg.Config{
Entrance: cfg.Entrance{
Enabled: true,
Port: 0,
},
@@ -331,8 +331,8 @@ func TestServerStartAndShutdown(t *testing.T) {
func TestServerStartWithInvalidPort(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Entrance: _config.Entrance{
erupeConfig := &cfg.Config{
Entrance: cfg.Entrance{
Port: 1,
},
}
@@ -352,8 +352,8 @@ func TestServerStartWithInvalidPort(t *testing.T) {
func TestServerListenerAddress(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Entrance: _config.Entrance{
erupeConfig := &cfg.Config{
Entrance: cfg.Entrance{
Enabled: true,
Port: 0,
},
@@ -388,8 +388,8 @@ func TestServerListenerAddress(t *testing.T) {
func TestServerAcceptClientsExitsOnShutdown(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Entrance: _config.Entrance{
erupeConfig := &cfg.Config{
Entrance: cfg.Entrance{
Enabled: true,
Port: 0,
},
@@ -421,8 +421,8 @@ func TestServerAcceptClientsExitsOnShutdown(t *testing.T) {
func TestServerHandleConnectionImmediateClose(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Entrance: _config.Entrance{
erupeConfig := &cfg.Config{
Entrance: cfg.Entrance{
Enabled: true,
Port: 0,
},
@@ -452,8 +452,8 @@ func TestServerHandleConnectionImmediateClose(t *testing.T) {
func TestServerHandleConnectionShortInit(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Entrance: _config.Entrance{
erupeConfig := &cfg.Config{
Entrance: cfg.Entrance{
Enabled: true,
Port: 0,
},
@@ -484,8 +484,8 @@ func TestServerHandleConnectionShortInit(t *testing.T) {
func TestServerMultipleConnections(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Entrance: _config.Entrance{
erupeConfig := &cfg.Config{
Entrance: cfg.Entrance{
Enabled: true,
Port: 0,
},

View File

@@ -4,7 +4,7 @@ import (
"encoding/binary"
"encoding/hex"
"erupe-ce/common/stringsupport"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"net"
"erupe-ce/common/byteframe"
@@ -12,18 +12,18 @@ import (
"go.uber.org/zap"
)
func encodeServerInfo(config *_config.Config, s *Server, local bool) []byte {
func encodeServerInfo(config *cfg.Config, s *Server, local bool) []byte {
serverInfos := config.Entrance.Entries
bf := byteframe.NewByteFrame()
for serverIdx, si := range serverInfos {
// Prevent MezFes Worlds displaying on Z1
if config.RealClientMode <= _config.Z1 {
if config.RealClientMode <= cfg.Z1 {
if si.Type == 6 {
continue
}
}
if config.RealClientMode <= _config.G6 {
if config.RealClientMode <= cfg.G6 {
if si.Type == 5 {
continue
}
@@ -42,22 +42,22 @@ func encodeServerInfo(config *_config.Config, s *Server, local bool) []byte {
bf.WriteUint16(uint16(len(si.Channels)))
bf.WriteUint8(si.Type)
bf.WriteUint8(uint8(((gametime.Adjusted().Unix() / 86400) + int64(serverIdx)) % 3))
if s.erupeConfig.RealClientMode >= _config.G1 {
if s.erupeConfig.RealClientMode >= cfg.G1 {
bf.WriteUint8(si.Recommended)
}
fullName := append(append(stringsupport.UTF8ToSJIS(si.Name), []byte{0x00}...), stringsupport.UTF8ToSJIS(si.Description)...)
if s.erupeConfig.RealClientMode >= _config.G1 && s.erupeConfig.RealClientMode <= _config.G5 {
if s.erupeConfig.RealClientMode >= cfg.G1 && s.erupeConfig.RealClientMode <= cfg.G5 {
bf.WriteUint8(uint8(len(fullName)))
bf.WriteBytes(fullName)
} else {
if s.erupeConfig.RealClientMode >= _config.G51 {
if s.erupeConfig.RealClientMode >= cfg.G51 {
bf.WriteUint8(0) // Ignored
}
bf.WriteBytes(stringsupport.PaddedString(string(fullName), 65, false))
}
if s.erupeConfig.RealClientMode >= _config.GG {
if s.erupeConfig.RealClientMode >= cfg.GG {
bf.WriteUint32(si.AllowedClientFlags)
}
@@ -119,11 +119,11 @@ func makeHeader(data []byte, respType string, entryCount uint16, key byte) []byt
return bf.Data()
}
func makeSv2Resp(config *_config.Config, s *Server, local bool) []byte {
func makeSv2Resp(config *cfg.Config, s *Server, local bool) []byte {
serverInfos := config.Entrance.Entries
// Decrease by the number of MezFes Worlds
var mf int
if config.RealClientMode <= _config.Z1 {
if config.RealClientMode <= cfg.Z1 {
for _, si := range serverInfos {
if si.Type == 6 {
mf++
@@ -132,7 +132,7 @@ func makeSv2Resp(config *_config.Config, s *Server, local bool) []byte {
}
// and Return Worlds
var ret int
if config.RealClientMode <= _config.G6 {
if config.RealClientMode <= cfg.G6 {
for _, si := range serverInfos {
if si.Type == 5 {
ret++
@@ -146,7 +146,7 @@ func makeSv2Resp(config *_config.Config, s *Server, local bool) []byte {
}
respType := "SV2"
if config.RealClientMode <= _config.G32 {
if config.RealClientMode <= cfg.G32 {
respType = "SVR"
}

View File

@@ -7,7 +7,7 @@ import (
"go.uber.org/zap"
_config "erupe-ce/config"
cfg "erupe-ce/config"
)
// TestEncodeServerInfo_EmptyClanMemberLimits verifies the crash is FIXED when ClanMemberLimits is empty
@@ -15,13 +15,13 @@ import (
// From erupe.log.1:659922
// After fix: Should handle empty array gracefully with default value (60)
func TestEncodeServerInfo_EmptyClanMemberLimits(t *testing.T) {
config := &_config.Config{
RealClientMode: _config.Z1,
config := &cfg.Config{
RealClientMode: cfg.Z1,
Host: "127.0.0.1",
Entrance: _config.Entrance{
Entrance: cfg.Entrance{
Enabled: true,
Port: 53310,
Entries: []_config.EntranceServerInfo{
Entries: []cfg.EntranceServerInfo{
{
Name: "TestServer",
Description: "Test",
@@ -29,7 +29,7 @@ func TestEncodeServerInfo_EmptyClanMemberLimits(t *testing.T) {
Type: 0,
Recommended: 0,
AllowedClientFlags: 0xFFFFFFFF,
Channels: []_config.EntranceChannelInfo{
Channels: []cfg.EntranceChannelInfo{
{
Port: 54001,
MaxPlayers: 100,
@@ -38,7 +38,7 @@ func TestEncodeServerInfo_EmptyClanMemberLimits(t *testing.T) {
},
},
},
GameplayOptions: _config.GameplayOptions{
GameplayOptions: cfg.GameplayOptions{
ClanMemberLimits: [][]uint8{}, // Empty array - should now use default (60) instead of panicking
},
}
@@ -117,13 +117,13 @@ func TestClanMemberLimitsBoundsChecking(t *testing.T) {
// Previously panicked: runtime error: index out of range [1]
// After fix: Should handle missing column gracefully with default value (60)
func TestEncodeServerInfo_MissingSecondColumnClanMemberLimits(t *testing.T) {
config := &_config.Config{
RealClientMode: _config.Z1,
config := &cfg.Config{
RealClientMode: cfg.Z1,
Host: "127.0.0.1",
Entrance: _config.Entrance{
Entrance: cfg.Entrance{
Enabled: true,
Port: 53310,
Entries: []_config.EntranceServerInfo{
Entries: []cfg.EntranceServerInfo{
{
Name: "TestServer",
Description: "Test",
@@ -131,7 +131,7 @@ func TestEncodeServerInfo_MissingSecondColumnClanMemberLimits(t *testing.T) {
Type: 0,
Recommended: 0,
AllowedClientFlags: 0xFFFFFFFF,
Channels: []_config.EntranceChannelInfo{
Channels: []cfg.EntranceChannelInfo{
{
Port: 54001,
MaxPlayers: 100,
@@ -140,7 +140,7 @@ func TestEncodeServerInfo_MissingSecondColumnClanMemberLimits(t *testing.T) {
},
},
},
GameplayOptions: _config.GameplayOptions{
GameplayOptions: cfg.GameplayOptions{
ClanMemberLimits: [][]uint8{
{1}, // Only 1 element, code used to panic accessing [1]
},

View File

@@ -5,7 +5,7 @@ import (
"testing"
"time"
"erupe-ce/config"
cfg "erupe-ce/config"
"github.com/DATA-DOG/go-sqlmock"
"github.com/jmoiron/sqlx"
"go.uber.org/zap"
@@ -304,7 +304,7 @@ func newTestServerWithMock(t *testing.T) (*Server, sqlmock.Sqlmock) {
server := &Server{
logger: zap.NewNop(),
db: sqlxDB,
erupeConfig: &_config.Config{},
erupeConfig: &cfg.Config{},
}
return server, mock

View File

@@ -4,7 +4,7 @@ import (
"erupe-ce/common/byteframe"
ps "erupe-ce/common/pascalstring"
"erupe-ce/common/stringsupport"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/common/gametime"
"fmt"
"strings"
@@ -83,7 +83,7 @@ func (s *Session) makeSignResponse(uid uint32) []byte {
bf.WriteBool(true) // Use uint16 GR, no reason not to
bf.WriteBytes(stringsupport.PaddedString(char.Name, 16, true)) // Character name
bf.WriteBytes(stringsupport.PaddedString(char.UnkDescString, 32, false)) // unk str
if s.server.erupeConfig.RealClientMode >= _config.G7 {
if s.server.erupeConfig.RealClientMode >= cfg.G7 {
bf.WriteUint16(char.GR)
bf.WriteUint8(0) // Unk
bf.WriteUint8(0) // Unk

View File

@@ -7,7 +7,7 @@ import (
"go.uber.org/zap"
_config "erupe-ce/config"
cfg "erupe-ce/config"
)
// TestMakeSignResponse_EmptyCapLinkValues verifies the crash is FIXED when CapLink.Values is empty
@@ -15,16 +15,16 @@ import (
// From erupe.log.1:659796 and 659853
// After fix: Should handle empty array gracefully with defaults
func TestMakeSignResponse_EmptyCapLinkValues(t *testing.T) {
config := &_config.Config{
DebugOptions: _config.DebugOptions{
CapLink: _config.CapLinkOptions{
config := &cfg.Config{
DebugOptions: cfg.DebugOptions{
CapLink: cfg.CapLinkOptions{
Values: []uint16{}, // Empty array - should now use defaults instead of panicking
Key: "test",
Host: "localhost",
Port: 8080,
},
},
GameplayOptions: _config.GameplayOptions{
GameplayOptions: cfg.GameplayOptions{
MezFesSoloTickets: 100,
MezFesGroupTickets: 100,
ClanMemberLimits: [][]uint8{
@@ -69,16 +69,16 @@ func TestMakeSignResponse_EmptyCapLinkValues(t *testing.T) {
// Previously panicked: runtime error: index out of range [1]
// After fix: Should handle small array gracefully with defaults
func TestMakeSignResponse_InsufficientCapLinkValues(t *testing.T) {
config := &_config.Config{
DebugOptions: _config.DebugOptions{
CapLink: _config.CapLinkOptions{
config := &cfg.Config{
DebugOptions: cfg.DebugOptions{
CapLink: cfg.CapLinkOptions{
Values: []uint16{51728}, // Only 1 element, code used to panic accessing [1]
Key: "test",
Host: "localhost",
Port: 8080,
},
},
GameplayOptions: _config.GameplayOptions{
GameplayOptions: cfg.GameplayOptions{
MezFesSoloTickets: 100,
MezFesGroupTickets: 100,
ClanMemberLimits: [][]uint8{
@@ -118,16 +118,16 @@ func TestMakeSignResponse_InsufficientCapLinkValues(t *testing.T) {
// Previously panicked: runtime error: index out of range [2/3/4]
// After fix: Should handle small array gracefully with defaults
func TestMakeSignResponse_MissingCapLinkValues234(t *testing.T) {
config := &_config.Config{
DebugOptions: _config.DebugOptions{
CapLink: _config.CapLinkOptions{
config := &cfg.Config{
DebugOptions: cfg.DebugOptions{
CapLink: cfg.CapLinkOptions{
Values: []uint16{100, 200}, // Only 2 elements, code used to panic accessing [2][3][4]
Key: "test",
Host: "localhost",
Port: 8080,
},
},
GameplayOptions: _config.GameplayOptions{
GameplayOptions: cfg.GameplayOptions{
MezFesSoloTickets: 100,
MezFesGroupTickets: 100,
ClanMemberLimits: [][]uint8{

View File

@@ -9,7 +9,7 @@ import (
"time"
"erupe-ce/common/byteframe"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"go.uber.org/zap"
@@ -75,7 +75,7 @@ func TestSessionStruct(t *testing.T) {
logger: logger,
server: nil,
rawConn: conn,
cryptConn: network.NewCryptConn(conn, _config.ZZ, nil),
cryptConn: network.NewCryptConn(conn, cfg.ZZ, nil),
}
if s.logger != logger {
@@ -132,7 +132,7 @@ func TestSessionMutex(t *testing.T) {
func TestHandlePacketUnknownRequest(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{}
erupeConfig := &cfg.Config{}
server := &Server{
logger: logger,
@@ -144,7 +144,7 @@ func TestHandlePacketUnknownRequest(t *testing.T) {
logger: logger,
server: server,
rawConn: conn,
cryptConn: network.NewCryptConn(conn, _config.ZZ, nil),
cryptConn: network.NewCryptConn(conn, cfg.ZZ, nil),
}
bf := byteframe.NewByteFrame()
@@ -159,8 +159,8 @@ func TestHandlePacketUnknownRequest(t *testing.T) {
func TestHandlePacketWithDevModeLogging(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig := &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogInboundMessages: true,
},
}
@@ -175,7 +175,7 @@ func TestHandlePacketWithDevModeLogging(t *testing.T) {
logger: logger,
server: server,
rawConn: conn,
cryptConn: network.NewCryptConn(conn, _config.ZZ, nil),
cryptConn: network.NewCryptConn(conn, cfg.ZZ, nil),
}
bf := byteframe.NewByteFrame()
@@ -202,7 +202,7 @@ func TestHandlePacketRequestTypes(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{}
erupeConfig := &cfg.Config{}
server := &Server{
logger: logger,
erupeConfig: erupeConfig,
@@ -213,7 +213,7 @@ func TestHandlePacketRequestTypes(t *testing.T) {
logger: logger,
server: server,
rawConn: conn,
cryptConn: network.NewCryptConn(conn, _config.ZZ, nil),
cryptConn: network.NewCryptConn(conn, cfg.ZZ, nil),
}
bf := byteframe.NewByteFrame()
@@ -323,7 +323,7 @@ func TestMockConnDeadlines(t *testing.T) {
func TestSessionWithCryptConn(t *testing.T) {
conn := newMockConn()
cryptConn := network.NewCryptConn(conn, _config.ZZ, nil)
cryptConn := network.NewCryptConn(conn, cfg.ZZ, nil)
if cryptConn == nil {
t.Fatal("NewCryptConn() returned nil")
@@ -341,8 +341,8 @@ func TestSessionWithCryptConn(t *testing.T) {
func TestSessionWorkWithDevModeLogging(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
DebugOptions: _config.DebugOptions{
erupeConfig := &cfg.Config{
DebugOptions: cfg.DebugOptions{
LogInboundMessages: true,
},
}
@@ -360,7 +360,7 @@ func TestSessionWorkWithDevModeLogging(t *testing.T) {
logger: logger,
server: server,
rawConn: serverConn,
cryptConn: network.NewCryptConn(serverConn, _config.ZZ, nil),
cryptConn: network.NewCryptConn(serverConn, cfg.ZZ, nil),
}
_ = clientConn.Close()
@@ -370,7 +370,7 @@ func TestSessionWorkWithDevModeLogging(t *testing.T) {
func TestSessionWorkWithEmptyRead(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{}
erupeConfig := &cfg.Config{}
server := &Server{
logger: logger,
@@ -384,7 +384,7 @@ func TestSessionWorkWithEmptyRead(t *testing.T) {
logger: logger,
server: server,
rawConn: serverConn,
cryptConn: network.NewCryptConn(serverConn, _config.ZZ, nil),
cryptConn: network.NewCryptConn(serverConn, cfg.ZZ, nil),
}
_ = clientConn.Close()

View File

@@ -6,7 +6,7 @@ import (
"net"
"sync"
"erupe-ce/config"
cfg "erupe-ce/config"
"erupe-ce/network"
"github.com/jmoiron/sqlx"
"go.uber.org/zap"
@@ -16,14 +16,14 @@ import (
type Config struct {
Logger *zap.Logger
DB *sqlx.DB
ErupeConfig *_config.Config
ErupeConfig *cfg.Config
}
// Server is a MHF sign server.
type Server struct {
sync.Mutex
logger *zap.Logger
erupeConfig *_config.Config
erupeConfig *cfg.Config
db *sqlx.DB
listener net.Listener
isShuttingDown bool

View File

@@ -6,7 +6,7 @@ import (
"testing"
"time"
_config "erupe-ce/config"
cfg "erupe-ce/config"
"go.uber.org/zap"
)
@@ -263,8 +263,8 @@ func TestConfigFields(t *testing.T) {
func TestServerStartAndShutdown(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Sign: _config.Sign{
erupeConfig := &cfg.Config{
Sign: cfg.Sign{
Port: 0,
},
}
@@ -305,8 +305,8 @@ func TestServerStartAndShutdown(t *testing.T) {
func TestServerStartWithInvalidPort(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Sign: _config.Sign{
erupeConfig := &cfg.Config{
Sign: cfg.Sign{
Port: -1,
},
}
@@ -351,8 +351,8 @@ func TestServerMutex(t *testing.T) {
func TestServerShutdownIdempotent(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Sign: _config.Sign{
erupeConfig := &cfg.Config{
Sign: cfg.Sign{
Port: 0,
},
}
@@ -379,8 +379,8 @@ func TestServerShutdownIdempotent(t *testing.T) {
func TestServerAcceptClientsExitsOnShutdown(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Sign: _config.Sign{
erupeConfig := &cfg.Config{
Sign: cfg.Sign{
Port: 0,
},
}
@@ -411,8 +411,8 @@ func TestServerAcceptClientsExitsOnShutdown(t *testing.T) {
func TestServerHandleConnection(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Sign: _config.Sign{
erupeConfig := &cfg.Config{
Sign: cfg.Sign{
Port: 0,
},
}
@@ -447,8 +447,8 @@ func TestServerHandleConnection(t *testing.T) {
func TestServerHandleConnectionWithShortInit(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Sign: _config.Sign{
erupeConfig := &cfg.Config{
Sign: cfg.Sign{
Port: 0,
},
}
@@ -479,8 +479,8 @@ func TestServerHandleConnectionWithShortInit(t *testing.T) {
func TestServerHandleConnectionImmediateClose(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Sign: _config.Sign{
erupeConfig := &cfg.Config{
Sign: cfg.Sign{
Port: 0,
},
}
@@ -509,8 +509,8 @@ func TestServerHandleConnectionImmediateClose(t *testing.T) {
func TestServerMultipleConnections(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Sign: _config.Sign{
erupeConfig := &cfg.Config{
Sign: cfg.Sign{
Port: 0,
},
}
@@ -550,8 +550,8 @@ func TestServerMultipleConnections(t *testing.T) {
func TestServerListenerAddress(t *testing.T) {
logger := zap.NewNop()
erupeConfig := &_config.Config{
Sign: _config.Sign{
erupeConfig := &cfg.Config{
Sign: cfg.Sign{
Port: 0,
},
}