Commit graph

46 commits

Author SHA1 Message Date
Рома Данилов
02e294e3e8
Fix entity handling crash (#1241)
Fix #1237
* Fix crash
* Update Entity.cs
* Update Entitycmd.cs
* Update McClient.cs
2020-08-27 19:33:45 +02: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
ORelio
70c991cd30 Calulate dig range using eyes location (#1228) 2020-08-24 00:06:52 +02:00
ORelio
ee164dfcc2 Replace ZombiePigman with ZombifiedPiglin
Use "ZombifiedPiglin" in place of "ZombiePigman" for older versions of Minecraft.
2020-08-23 23:48:22 +02:00
ReinforceZwei
dc5ca8c79a Update hostile mobs list 2020-08-23 23:48:22 +02:00
Рома Данилов
c2e2e85063
Add Entity.Item, Entity.CustomName, OnEntityMetadata event (#1222)
* Add New Event
* new Event
* Add OnEntityMetadaTa
* Update ChatBot.cs
* Update Protocol18.cs
* Update Entity.cs
* EntityCMD Update
* Update IMinecraftComHandler.cs
* Update Protocol18.cs
* Update IMinecraftComHandler.cs
* Update McClient.cs
* Update IMinecraftComHandler.cs
* Update McClient.cs
* Update McClient.cs
* Update McClient.cs
* Update McClient.cs
* Update ChatBot.cs
* Update McClient.cs
* Update Entity.cs
* Create EntityPose.cs
* Update MinecraftClient.csproj
* Update McClient.cs
* Update EntityPose.cs
* Update Entity.cs
* Update McClient.cs
* Remove debug line
* Update Entitycmd.cs
* Update Entity.cs
* Update McClient.cs
* Update Entity.cs
* Update McClient.cs
* Update McClient.cs
* Update Entity.cs
* Update McClient.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update McClient.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entity.cs
* Update McClient.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Update Entitycmd.cs
* Crash Fix on Item
* Crashes Fix
* Update McClient.cs
* Crashes fix
* Update McClient.cs
* Update Entity.cs
* Update Entity.cs
* Update McClient.cs
* Update McClient.cs
* Update McClient.cs
* Update McClient.cs
* Update McClient.cs
* Update McClient.cs
* Update McClient.cs
* Update ChatBot.cs
* Update IMinecraftComHandler.cs
* Update McClient.cs
* Update Protocol18.cs
* Update ChatBot.cs
* Update IMinecraftComHandler.cs
* Update Protocol18.cs
* Update McClient.cs
* Fix unaddressed issues
Co-authored-by: ORelio <oreliogitantispam.l0gin@spamgourmet.com>
2020-08-20 18:36:50 +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
ReinforceZwei
2c8ec4aa4a
Implemented entity metadata to keep track of entity health (#1205)
* Implement entity metadata protocol handling
* Add health information for entity
* Make AutoAttack check entity health
* LivingEntity: Default health is 1.0 as per https://wiki.vg/Entity_metadata#Living_Entity
* Fix entity metadata for lower MC versions
* Fix commit  888297d (1.0f instead of 1.0)
* Add OnEntityHealth ChatBot event (Remove protocol-dependant stuff from McClient (undo part of 85c32b9))
* Remove OnEntityMetadata in favor of OnEntityHealth
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
2020-08-15 15:32:46 +02:00
ReinforceZwei
e6d34c3cf1
Add entity handling for 1.10 to 1.12.2 (#1195)
* Fix entity type data type for 1.13 below
* Add entity handling for 1.10 to 1.12.2
* Update comments for EntityPalette113
2020-08-11 13:44:18 +02:00
Рома Данилов
8fedd59f0a
Add FindBlock on GetWorld (#1152)
* Add FindBlock
* Add FindBlock Array
* Update World.cs
* Factorize FindBlock methods
2020-07-29 21:49:16 +02:00
ORelio
61ac5bb3d1 Small fixes for (#1149) 2020-07-29 21:40:16 +02:00
Dusan Milutinovic
d7259a49db Added Piglin and Hoglin to hostile mobs list and removed Pigman/ZombifiedPiglin from it 2020-07-29 21:40:16 +02:00
Dusan Milutinovic
e9bb68c717 Added a missing comment which I have removed by accident 2020-07-29 21:40:16 +02:00
Dusan Milutinovic
a58e975630 Updated the protocol for 1.16/1.16.1. Fixed Auto Attack (Added a new field (sneaking) to the Interact Entity event (Only 1.16 and above)). Added Entity Pallete for 1.16/1.16.1. 2020-07-29 21:40:16 +02:00
ReinforceZwei
c3dd0209c8 Fix spider not considered as hostile mob 2020-07-07 19:32:49 +02:00
ORelio
5eea7441b7 Add details on how to use BlockPaletteGenerator.cs (#1111) 2020-07-06 22:59:24 +02:00
Рома Данилов
fb50b0d5cb
ChatBot API: OnScoreboardObjective, OnEntityEffect, OnUpdateScore, EntityInteract, Hand list (#1097)
* Create Effect.cs
* Rename Effect.cs to Effects.cs
* Update MinecraftClient.csproj
* Update Effects.cs
* Update Effects.cs
* add EntityEffect
* Update McClient.cs
* Update Protocol18.cs + EntityEffect
* Update IMinecraftComHandler.cs
* Update Protocol18PacketTypes.cs + EntityEffect
* Update ChatBot.cs + OnEntityEquipment
* Update PacketIncomingType.cs + ScoreboardObjective
* Update Protocol18PacketTypes.cs
* Update Protocol18.cs
* Update IMinecraftComHandler.cs + OnScoreboardObjective
* Update McClient.cs + OnScoreboardObjective
* Update ChatBot.cs + OnScoreboardObjective event
* Update Protocol18.cs: fix scoreboard
* Update McClient.cs
* Update ChatBot.cs
* Update PacketIncomingType.cs
* Update ChatBot.cs + OnUpdateScore
* Update McClient.cs + OnUpdateScore
* Update IMinecraftComHandler.cs + OnUpdateScore
* Update Protocol18.cs
* Update Protocol18PacketTypes.cs
* Update Protocol18.cs + fix micro lags
* Update Protocol18.cs
* Update Protocol18.cs
* Update Protocol18.cs
* Update Protocol16.cs
* Update Protocol18.cs
* Update McClient.cs
* Update IMinecraftCom.cs
* Update McClient.cs
* Update McClient.cs
* Update McClient.cs
* Update ChatBot.cs + GetEntities()
* Create Hand.cs
* Update MinecraftClient.csproj
* Update McClient.cs
* Update ChatBot.cs
* Update Protocol18.cs
* Update ChatBot.cs
* Update ChatBot.cs
* Update ChatBot.cs
* Update ChatBot.cs
* Update ChatBot.cs: fix
* Update AutoAttack.cs: Fix
* Update McClient.cs: compile fix
* Update ChatBot.cs
* Update AutoAttack.cs
* Update ChatBot.cs
* Update Protocol18.cs
* Update IMinecraftComHandler.cs
* Update McClient.cs
* Update ChatBot.cs
* Update Protocol18.cs
* Update IMinecraftComHandler.cs
* Update ChatBot.cs
* Update McClient.cs
* Update McClient.cs: remove check distance
* Update EntityActionType.cs: more actions
* Create CommandBlockMode.cs
* Create CommandBlockFlags.cs
* Update IMinecraftCom.cs
* Update McClient.cs
* Update ChatBot.cs
* Update Protocol18.cs
* Update Protocol16.cs
* Update PacketOutgoingType.cs
* Update Protocol18PacketTypes.cs
* Update Protocol18.cs
2020-07-04 10:45:51 +02:00
ORelio
20fb2323a4 Read all files as UTF-8 (#1035)
Fix encoding issues with some languages such as Chinese
by forcing UTF-8 everywhere. Configuration files written
in ANSI/Latin-1 and other encodings will need conversion.
2020-05-29 20:23:03 +02:00
ORelio
23870711a0 Code refactoring (related to #1024) 2020-05-25 21:39:24 +02:00
Рома Данилов
d120001d70
Add Entity.Name & /inventory 0 creative <slot> <itemtype> <count> (#1024)
* Update Program.cs

* Update Entity.cs

Add Entity.Name

* Update Program.cs
* Update Entity.cs

Add break;

* Update Entity.cs

* Update Inventory.cs

Add /inventory 0 creative <slot> <item> <count>

* Update PacketOutgoingType.cs

+ CreativeInventoryAction

* Update Protocol16.cs

+ SendCreativeInventorAction

* Update Protocol18.cs

+ SendCreativeInventorAction

* Update IMinecraftCom.cs

+ SendCreativeInventorAction

* Update McTcpClient.cs

+ DoCreativeInventorAction

* Update ChatBot.cs

+ CreativeInventorAction

* Update McTcpClient.cs
* Update ChatBot.cs
* Update Inventory.cs

Add show count

* Update ChatBot.cs

+ ChatBot fix

* Update Inventory.cs

Inventory update and Fix

* Update Entity.cs
* Update McTcpClient.cs
* Update Program.cs
* Update Protocol16.cs
* Update Protocol18.cs
* Update IMinecraftCom.cs
* Update Entity.cs
2020-05-25 21:16:53 +02:00
ORelio
3996f72d23 Remove leftover files in EntityPalettes 2020-05-24 18:27:02 +02:00
ORelio
bd85c46663 Implement entity types (#1001)
Implement palette generation and investigate palette changes between
versions. Turns out 1.13- has legacy IDs, 1.14 switches to entity
palette and 1.15 refreshes the whole palette just to insert Bee.

Also refactor entity handling code here and there.
2020-05-24 18:21:22 +02:00
CarbonNeuron
2f1b99c064 Added UUID initializers for the functions that support it in McTcpClient.cs, Also Fixed some redundant Object creation. 2020-04-30 23:40:07 +02:00
CarbonNeuron
1c2e4ab6d8 Added UUID to spawning players. And UUID property to Entity.cs 2020-04-30 23:40:07 +02:00
ORelio
bc3d6aba00 Implement item types
Github discussion on commit 6929ae236a
2020-03-28 23:30:42 +01:00
ORelio
195e162c7d Add code documentation, move and rename a few methods 2020-03-28 00:48:41 +01:00
ReinforceZwei
bc449b404e Inventory handling 2020-03-27 13:10:37 +01:00
ReinforceZwei
dbf5334758 Moved Auto attack and auto fishing to ChatBots and added ChatBotAPI for entity handling 2020-03-24 19:23:59 +01:00
ORelio
f82b09af5a Remove unnecessary Material115.cs 2019-12-14 14:44:53 +01:00
ORelio
c6f00ce686 Add support for Minecraft 1.15
See #834
2019-12-14 14:22:24 +01:00
ORelio
4c1640bc5b Fix Block.cs constructor ambiguity
World.cs GetBlock() was calling the wrong one (id+meta),
causing InvalidOperationException when global Palette
does not support setting metadata. See #716
2019-05-01 23:15:24 +02:00
ORelio
0d58fb9063 MC 1.14 Terrain support (#703)
Minecraft 1.14 is now fully supported.

- Implement NBT parsing to skip NBT field in chunk data
- Update lighting data format in Chunk Data parsing
- Move Chunk Data parsing into Protocol18Terrain.cs
- Improve PaletteGenerator to greatly reduce palette files sizes
- Re-Generate Palette113.cs to reduce its size (378 Kib -> 50 Kib)
- Generate Palette114.cs (57 Kib instead of 516 Kib with prev format)
- Update Material.cs and MaterialExtensions.cs for new block types
2019-05-01 15:31:34 +02:00
ORelio
295d6546b8 MC 1.14 Basic/Chat support (#703)
Implement MC 1.14 baseline protocol support
Terrain and movements not supported yet for 1.14
2019-04-29 00:26:32 +02:00
ORelio
a6e660c974 Enable/Disable TerrainAndMovements while logged in
Feature requested in #705
2019-04-28 21:32:03 +02:00
ORelio
5f83ff0958 Fix dev build numbering, add update notes
Add newline in AssemblyInfo to fix dev build number in exe (#456)
Add remarks on how to implement newer MC versions (from #145, #599)
2019-04-28 15:58:10 +02:00
ORelio
c04b17cabc Implement Terrain and Movements for MC 1.13
Special thanks to @TheSnoozer and @vkorn for their help!

 - Implement global block Palette mechanism
 - Add class generation tool from blocks.json
 - Regenerate Material.cs and redefine solid blocks
 - Migrate previous Material.cs into Palette112
 - Generate Palette113 from MC 1.13.2 blocks.json
 - Improve Block class to handle up to 65535 block states
 - Adjust terrain parsing, small fixes in packets
 - Remove unused snapshot-related protocol cases

Solves #599
2019-04-25 22:19:50 +02:00
ORelio
a344ac4101 Implement more realisic fall to ground
Should help moving around in servers using anti-cheat plugins.

See #195
2017-03-10 23:40:02 +01:00
ORelio
b99edee642 Fix index out of bound when height < 0 or > 255
Bug report by TNTUP, see #173
2016-07-22 23:47:36 +02:00
ORelio
71277362be Add timeout when calculating unreachable path
5s timeout, assuming destination is unreachable otherwise.
2015-12-17 17:40:26 +01:00
ORelio
902b04656c Fix pathfinding to coordinates
- Now possible to walk to given coordinates
- Fix sending location before it is received
2015-12-13 21:58:55 +01:00
ORelio
b0c8f82697 Add simple movements with /move command
- Determine if we can move to the specified direction
 - Add moving ability to the specified direction
 - Add /move command for triggering moves
 - Add move decomp. into steps (more natural)
 - Add pathfinding routines (still WIP)
 - SO YES YOU CAN NOW WALK USING MCC!!!
2015-12-12 16:48:38 +01:00
ORelio
00131de08b Fix CanHarmPlayers in Material.cs
- Add flowing lava
- Remove stationary water

Reported by Pokechu22 :)
2015-12-10 18:33:01 +01:00
ORelio
49702e30b8 Add block material database
Taken from Bukkit's Material class, with credits.
Allows to know types and properties of blocks.
+ Use database for "is solid" checks
+ Add "can harm players" method
+ Faster movements, falling seems natural now
+ Shorter error message when ping failed
2015-12-09 23:04:00 +01:00
ORelio
5d8d42e3d1 Terrain: Fix coordinate parsing (negative coords)
- Optimize readNextUShortsLittleEndian network reading method
- Various coordinate computation issues, negative chunk offsets
- Properly parse negative coordinates for block change events
- Properly reach ground if less than 1 block over the ground
2015-12-08 00:34:40 +01:00
ORelio
cb00c28b6e Add world handling (and fall to ground)
- World is now properly parsed and stored from chunk data
- Block changes are also handled and world updated accordingly
- Added ground checking, the player will move down to reach the ground
- Performance tweaking in Protocol18, using lists instead of arrays
- Fix player look not properly skipped causing invalid location after
teleport
2015-11-30 15:30:49 +01:00
ORelio
72bd485e67 Add basic location handling
- Retrieve player location from the server
- Send back player location from the server
- Requires that a specific setting is enabled
- Should allow items to be picked up by the player
- May also trigger some anti chead plugins
2015-11-27 17:16:37 +01:00