Commit graph

28 commits

Author SHA1 Message Date
Anon
c6ca3dc13d Formatted the code and removed logs from Auto Attack 2026-06-04 11:42:41 +02:00
Anon
c94be261fd Added Book Support 2026-05-02 17:52:17 +02:00
copilot-swe-agent[bot]
c5df6a49c6 Modernize null-check patterns: use 'is null' and 'is not null'
Replace '== null' with 'is null' and '!= null' with 'is not null'
across 19 core files following modern C# pattern matching conventions.

Only literal null comparisons are changed. Assignments, value
comparisons, and LINQ expressions are left untouched.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-24 00:28:02 +00:00
BruceChen
8eac21b4a4 Wire up 1.20.6 structured components to Item and fix GetItemSlot serialization
In 1.20.6+, items use structured components instead of NBT for metadata.
Previously, ReadNextItemSlot parsed the components but never stored them
on the Item instance, leaving DisplayName/Lores/Damage/Enchantments all
empty. GetItemSlot also still used the pre-1.20.6 format (bool + VarInt +
byte + NBT), causing the server to reject any item operation packets.

Changes:

Item.cs:
- Add List<StructuredComponent>? Components field to hold the raw
  component list for round-trip serialization
- DisplayName property: read from CustomNameComponent (with
  ItemNameComponent as fallback) when Components is present
- Lores property: read from LoreNameComponent1206 when Components is
  present
- Damage property: read from DamageComponent when Components is present
- Add EnchantmentList property: read from EnchantmentsComponent (covers
  both normal and StoredEnchantmentsComponent for enchanted books)
- ToFullString(): use EnchantmentList with EnchantmentMapping for display
  when available, fall back to NBT path for older versions
- Add CloneWithCount() method that preserves both NBT and Components

DataTypes.cs - ReadNextItemSlot:
- Assign parsed strcturedComponentsToAdd to item.Components

DataTypes.cs - GetItemSlot:
- Add 1.20.6+ branch: write VarInt(count) + VarInt(itemId) + component
  counts + serialized components (using each component's TypeId and
  Serialize() method)
- Empty slot sends VarInt(0) per the 1.20.6 protocol spec

StructuredComponent.cs:
- Add int TypeId property (default -1) to store the registry type ID
  assigned during parsing, enabling round-trip serialization

StructuredComponentRegistry.cs:
- Set component.TypeId = id after instantiation in ParseComponent()

McClient.cs:
- Replace manual Item constructor calls (new Item(type, count, nbt))
  with Item.CloneWithCount() to preserve Components during inventory
  operations like slot moves, stack splits, and right-click placement

Made-with: Cursor
2026-03-19 00:34:10 +08:00
Anon
6891d446a5 Added 1.8 Item Mappings and Support 2024-03-12 11:15:05 +01:00
Anon
df6eeb9b4a Added item lore/description to be displayed in the list of items in the inventory 2023-04-30 15:18:33 +02:00
BruceChen
84cf749344 Implement command completion suggestions. 2022-12-06 15:50:17 +08:00
BruceChen
077e3a5e9f
Crowdin localization support (#2310)
* Switching to use resource files

* Update Crowdin configuration file

* Code cleanup
2022-10-28 11:13:20 +08:00
BruceChen
d4f8dd0bfb Upgrade AutoFishing & Bug fix 2022-10-21 19:05:49 +08:00
BruceChen
117a38b5f9 Better translation 2022-10-17 20:00:33 +08:00
BruceChen
bce2bc8b7f Support displaying caught items 2022-10-17 17:42:00 +08:00
BruceChen
bdcc22b465 Add update detection 2022-10-06 14:53:05 +08:00
BruceChen
53898f3446 Fix xxx.Parse 2022-10-04 11:53:07 +08:00
BruceChen
1d52d1eadd
Fix all warnings & Trim (#2226)
* Fix AutoFishing crash
* Fix all warnings
* Remove DotNetZip.
* Fix the usage of HttpClient.
2022-10-02 18:31:08 +08:00
BruceChen
a8bbb1ac76
Basic support for minecraft 1.19 (#2084)
* merge commit from milutinke
* chat signature & encrypted login
* Bug fix :EncryptionResponse format error below 1.18.2
* Implemented chat command signature
* Chat message parsing and verification for 1.19
* Add signature settings
* Update Simplified Chinese Translation
* Clear up comments
* Fix wrong variable naming
* Bug fix: SignatureV2 Processing
2022-08-15 17:55:44 +02:00
ReinforceZwei
073458f5f2
Improve inventory command output (#1582)
* Improve inventory command output

* Remove unused code

* Sort item list before printing

* Fix incorrect container slot count

* Update Container.IsHotbar method
2021-05-11 14:02:47 +08:00
Рома Данилов
896cabb6ce
Improve /entity, add entity equipment and item lore (#1238)
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Color fix
* Update Entitycmd.cs
* Update Entitycmd.cs
* Entities list CustomName fix
* Update Entity.cs
* Update McClient.cs
* Update Entity.cs
* Update Entity.cs
* Update Entitycmd.cs
* Crash fixes
* Update Entitycmd.cs
* Update McClient.cs
* Update Entitycmd.cs
* Remove extra space
* Space add
* Update Item.cs
* Update McClient.cs
* Update Entitycmd.cs
* Replace item slot if already set
2020-08-26 18:58:45 +02:00
ReinforceZwei
6bbb7236e3
Add support for Minecraft 1.16.2 (#1214)
* Implement MC version 1.16.2 basic support
All packets ID update done
Tested in 1.16.2 craftbukkit server
* Implement MC 1.16.2 entity handling
New EntityPalette
* Add back protocol version checking for entity handling
Was removed during testing and forgot to add it back
* Implement inventory handling for MC 1.16+
Item ID got changed in 1.16+ so a palette is needed.
* Fix ChangeSlot command
What a joke
* Handle 1.16 new entity properties name
Convert new naming style to old style
* Revert "Handle 1.16 new entity properties name"
This reverts commit 52c7d29062.
* Update AutoAttack to use the new entity properties key
* Fix item type to ID conversion
* Sort item types by name
* Remove ZombiePigmanSpawnEgg
User ZombifiedPiglinSpawnEgg instead (new name for same item)
* Add missing 1.16.2 version strings
* Remove old ItemTypeGenerator
* Sort entity types by name
* Palette loading, instructions, NotImplemented err
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
2020-08-17 17:08:50 +02:00
Рома Данилов
33781c5de5
Inventory: Show item Damage (#1213)
* /inventory add show item Damage
* Removing unnecessary using
* Upgrade
* Fix
* Update Inventory.cs
* add Damage
* Done
* Done, Fix
* Remove extra space, Fix documentation
2020-08-17 12:27:15 +02:00
ORelio
4cc29a6ee6 Adjust dig block API
Attempt to automate dig start and dig complete (#1077)
2020-06-20 21:30:26 +02:00
ReinforceZwei
3f9b084a45 Remove IsFood method from Item class 2020-04-09 20:50:34 +02:00
ReinforceZwei
2e1e79bcef Add AutoEat
#923
2020-04-09 20:50:34 +02:00
ORelio
dbe02c063c Inventory handling improvements
Fix click issue for item with NBT
Show custom display names in inventory
See issues #910 #912 #914
2020-04-01 22:05:44 +02:00
ORelio
e04f06cece Interact with inventories
The /inventory command allow listing inventory and clicking on items
Should be enough for operating GUI menus such as Server chooser/teleporter
2020-03-29 18:41:26 +02:00
ORelio
bc3d6aba00 Implement item types
Github discussion on commit 6929ae236a
2020-03-28 23:30:42 +01:00
ORelio
03023c8059 Fix unspecified Item slot ID
Item must have a slot ID when created
2020-03-28 17:56:19 +01:00
ORelio
6929ae236a Add code documentation for inventories 2020-03-28 15:01:08 +01:00
ReinforceZwei
bc449b404e Inventory handling 2020-03-27 13:10:37 +01:00