From 9b6ddc51fdd6dba98c82e7c62102faa69f244550 Mon Sep 17 00:00:00 2001 From: AkmalFairuz Date: Wed, 2 Jul 2025 21:53:13 +0700 Subject: [PATCH] Refactor item mapping to use dragonflyMapping parameter and remove deleteDebugStick references --- legacyver/all.go | 31 ++++++++-------- .../data/dragonfly_latest_vanilla_items.nbt | Bin 0 -> 168422 bytes legacyver/v649.go | 6 ++-- legacyver/v662.go | 6 ++-- legacyver/v671.go | 6 ++-- legacyver/v685.go | 6 ++-- legacyver/v686.go | 6 ++-- legacyver/v712.go | 6 ++-- legacyver/v729.go | 6 ++-- legacyver/v748.go | 6 ++-- legacyver/v766.go | 6 ++-- legacyver/v776.go | 6 ++-- legacyver/v786.go | 6 ++-- legacyver/v800.go | 6 ++-- legacyver/v818.go | 33 ++++++++++++++---- mapping/item.go | 26 +++++--------- 16 files changed, 86 insertions(+), 76 deletions(-) create mode 100644 legacyver/data/dragonfly_latest_vanilla_items.nbt diff --git a/legacyver/all.go b/legacyver/all.go index d723556..ab33df4 100644 --- a/legacyver/all.go +++ b/legacyver/all.go @@ -4,22 +4,21 @@ import ( "github.com/sandertv/gophertunnel/minecraft" ) -// All returns a slice of all legacy protocol versions that are supported. deleteDebugStick -// must be set to true if you're using Dragonfly. deleteDebugStick must be set to false if you're using -// PocketMine, Nukkit, or other server software that includes the debug stick in the item registry. -func All(deleteDebugStick bool) []minecraft.Protocol { +// All returns a slice of all legacy protocol versions that are supported. dragonflyMapping +// must be set to true if you're using Dragonfly. +func All(dragonflyMapping bool) []minecraft.Protocol { return []minecraft.Protocol{ - New800(deleteDebugStick), - New786(deleteDebugStick), - New776(deleteDebugStick), - New766(deleteDebugStick), - New748(deleteDebugStick), - New729(deleteDebugStick), - New712(deleteDebugStick), - New686(deleteDebugStick), - New685(deleteDebugStick), - New671(deleteDebugStick), - New662(deleteDebugStick), - New649(deleteDebugStick), + New800(dragonflyMapping), + New786(dragonflyMapping), + New776(dragonflyMapping), + New766(dragonflyMapping), + New748(dragonflyMapping), + New729(dragonflyMapping), + New712(dragonflyMapping), + New686(dragonflyMapping), + New685(dragonflyMapping), + New671(dragonflyMapping), + New662(dragonflyMapping), + New649(dragonflyMapping), } } diff --git a/legacyver/data/dragonfly_latest_vanilla_items.nbt b/legacyver/data/dragonfly_latest_vanilla_items.nbt new file mode 100644 index 0000000000000000000000000000000000000000..a03fd4803a58d49d19d47b88422edce9b5db7590 GIT binary patch literal 168422 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 *debugStickRID { - data.RuntimeID-- // Shift all runtime IDs down by 1 - } - m[name] = data - } - } - for name, data := range m { rid := int32(data.RuntimeID) if name == "minecraft:air" { @@ -121,6 +106,13 @@ func NewItemMapping(requiredItemList []byte, itemVersion uint16, deleteDebugStic return &DefaultItemMapping{itemRuntimeIDsToNames: itemRuntimeIDsToNames, itemNamesToRuntimeIDs: itemNamesToRuntimeIDs, itemRuntimeIDToVersion: itemRuntimeIDToVersion, airRID: *airRID, itemVersion: itemVersion, itemRuntimeIDToData: itemRuntimeIDToData, itemEntries: itemEntries} } +func (m *DefaultItemMapping) SetItemRuntimeID(name string, runtimeID int32) { + m.mu.Lock() + defer m.mu.Unlock() + m.itemNamesToRuntimeIDs[name] = runtimeID + m.itemRuntimeIDsToNames[runtimeID] = name +} + func (m *DefaultItemMapping) ItemRuntimeIDToName(runtimeID int32) (name string, found bool) { defer m.mu.Unlock() m.mu.Lock()