Commit graph

55 commits

Author SHA1 Message Date
ReinforceZwei
137855a71d Add GetShort() method in dataTypes 2020-03-27 13:10:37 +01:00
ReinforceZwei
13206614c4 Add inventory type convert 2020-03-27 13:10:37 +01:00
ReinforceZwei
bc449b404e Inventory handling 2020-03-27 13:10:37 +01:00
ReinforceZwei
364afdfc72 Update Inventory support version to 1.15.2 and Remove GetInventoryEnabled condition bypass 2020-03-24 19:23:59 +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
ReinforceZwei
51d03b9ced Added basic auto fishing 2020-03-24 19:23:59 +01:00
ReinforceZwei
850eae86d7 Add command to turn on and off auto attack 2020-03-24 19:23:59 +01:00
ReinforceZwei
0b0e3c334e auto attack 2020-03-24 19:23:59 +01:00
ORelio
c6f00ce686 Add support for Minecraft 1.15
See #834
2019-12-14 14:22:24 +01:00
xPenguinx
5895a4161f Started to implement inventory handling 2019-05-28 18:53:40 +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
d2cbc9f1c3 Split Protocol18 protocol into several classes
- Protocol18: Handles Vanilla packets
 - Protocol18Forge: Handles Forge packets
 - DataTypes: Handles packet field encoding/decoding
 - SocketWrapper: Handles encryption and basic R/W operations

This commit should not change anything for end users, only devs.
See also #704 for discussions about this.
2019-04-29 22:30:43 +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
2ebc8eded5 Implement file polling for disk session cache
For use in case FileSystemWatcher does not work, see #684
2019-04-17 05:18:19 +02:00
Stanley Powers
8bfdb2ab59 Look command 2019-04-12 16:25:15 +02:00
ORelio
143fcf7155 Move SessionToken.cs 2018-05-25 20:27:31 +02:00
ORelio
26716512c1 Fix Windows version detection for UTF-8 console
Built-in Environment.OSVersion does not work on Win10.
2018-02-11 15:43:58 +01:00
ORelio
dc09896959 Allow access to raw JSON messages from ChatBot
See #275
2017-05-31 20:54:16 +02:00
ORelio
9f1ef83680 Move Json class into main package
See #138
2017-05-06 21:08:56 +02:00
ORelio
6505fcccb3 Add 'Debug' command for toggling debug messages
See #223
2017-03-15 19:14:58 +01:00
ORelio
693073edfc Replace DnDns with HeijdenDns
HeijdenDns seems to do a better job at querying SRV records
2017-03-11 15:28:32 +01:00
ORelio
9cd983c50d Add support for Minecraft Service DNS Records
- Add DnDns library for performing DNS queries
 - Add query method for SRV record
 - Resolve Minecraft services

This allows resolving actual server addresses for
servers using SRV records on their domain names

SRV records are basically DNS redirection eg:

  myserver.net -> srv1.myserver.net:12345

Should solve #186 reported by sammyvsparks and many others.
2016-10-06 19:13:58 +02:00
ORelio
2a07fbbae6 Remove tab display name experiment (not working)
- Tab display names should hold display name but...
 - Server sends <UUID, name, null> x Player count
 - TabListPlus sends <SlotID, ???tab#01, SlotText> x Slot Count
 - So we don't have player display names, only worthless slots
 - So the whole feature was useless, reverting to name only.
2016-08-27 15:46:34 +02:00
ORelio
9a98a9d46f Store extended player info, list display names
- Add 1.10.1 and 1.10.2 in supported version list
 - Store both player name and player display names
 - List command will sort players by player name
 - List command will now display by display name
 - Ability to use /list raw to display by real name

Suggestion by Johngreen123
2016-08-22 19:40:58 +02:00
ORelio
d45f75f9f4 Reduce output verbosity, default session cache
- Memory session cache will be used by default
 - Verbose messages are now hidden by default
 - Improve ping procedure's Forge handling
 - Fix 1.8.9 and 1.9.0 in mcversion setting
 - SessionCache.cs: fix LF into CRLF
 - Use 1.9 translations instead of 1.8
2016-03-10 13:29:05 +01:00
initsuj
57c53be09f caching works. needs documentation and testing 2016-03-02 17:11:15 -07:00
initsuj
75f2f738a2 Added clientID to login call.
Updated project file to include Cache namespace.
2016-03-02 07:25:09 -07: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
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
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
Pokechu22
b154639a6b Handle forge handshake up to mod list sending. 2015-10-24 15:06:20 -07:00
Pokechu22
7cc87d8e71 Detect and store the list of forge mods. 2015-10-24 15:06:13 -07:00
ORelio
3e2622fbb7 Various C# Script improvements
Move handling code in a separate file
Add caching ability for low-power devices (rpi..)
Use a distinct API with MCC.MethodName()
Stop script execution only on specific API calls
2015-08-23 18:51:29 +02:00
ORelio
3a760240e4 Move 1.7 handling into 1.8 handler
Minecraft 1.7 handler was pretty similar
to 1.8 handler and lacking some features
such as packet prefetching.
2015-07-30 16:47:58 +02:00
ORelio
3224c59eab Remove padding mechanism
Not needed anymore since proper encryption is now used under Mono
2015-06-19 19:40:18 +02:00
ORelio
67affc6270 Fix 1.7+ server list ping by properly parsing Json
Separate Json and ChatParser classes
Use Json parser for retrieving Json fields
Will avoid wrong "name" field from being used
2015-06-19 19:29:23 +02:00
ORelio
53156bdf98 Normalize AutoRespond bot
Move FromFile method from bots to ChatBot class
Rename file and class, removing space and underscore.
2015-05-26 19:17:37 +02:00
Bancey
43fa3fb4b4 Auto Respond Bot
This bot allows users to add a bot that can detect and respond to
certain text.

The bot can be enabled/disabled via the ini file. (disabled by default)
The bot uses 2 files to let the user set what to pickup and what to
respond.
2015-05-19 15:36:20 +01:00
ORelio
c30d3025f7 Use BouncyCastle for handling AES on Mono Framework
Mono Framework does not handle CFB-8 AES encryption mode. So now MCC
will now use borrowed code from the BouncyCastle project for handling
AES when running on Mono framework, instead of using a dirty workaround
to try getting Mono encryption working. Regular .NET framework
encryption module will still be used when not running under Mono (eg on
Windows or using Wine)

Should hopefully fix all the issues encountered on Mono including #41
and finally achieve full compatibility of MCC with Mac and Linux.
2015-03-19 22:16:42 +01:00
ORelio
391eca102c Add 15 seconds timeout to session and login
Add AutoTimeout class for use on login and session requests.
Bug report by GamerCorey7.
2015-01-27 20:38:59 +01:00
lokulin
07fed5cd24 Added a player list command /list 2014-11-11 00:32:32 +11:00
ORelio
88b8399c5c Add support for MC 1.8 protocol
Lots of changes in 1.8 protocol so a new protocol handler was necessary
Packet (de)compression done with dotNetZip Zlib compression engine
1.4.6-1.7.10 support is still there thanks to app refactoring
2014-09-04 13:58:49 +02:00
ORelio
162a1414bf Add ChatBot logging to file and 'log' command
- log <text> will print '[BOT] text' to the console
- logged [BOT] lines can be written to a logfile
- chatbotlogfile INI setting is used to set the log file
2014-07-20 12:02:17 +02:00
ORelio
42e706d1a7 Player head as console icon
For Windows only
Idea from TNT-UP
2014-06-30 13:55:51 +02:00
ORelio
36690b8b34 Commands as separate classes
Each command is now in its own class in the 'Commands' namespace, and
loaded through reflection.
2014-06-18 13:32:17 +02:00
ORelio
d2ec2f48b7 App refactoring almost done
- Created specific namespaces and folders for each app brick
- Added proxy support using Starksoft's Biko Library
- App bricks: Main, ChatBots, Crypto, Protocol, Proxy
- Each class is now in its own file (Aes streams, chatbots)
- Used "Bridge" design pattern for Crypto, Protocol, Proxy
- Added back support for Minecraft 1.4.6 to 1.6.4 (MCC 1.6.2)
- Need to fully re-test everything and fix bugs
- To Fix : Server pinging is slow on SpigotMC
- To Do : Add Minecraft 1.2.5 (MCC 1.3) and maybe 1.3 to 1.4.5
2014-05-31 01:59:03 +02:00
ORelio
58d7b0734f Remove Java dependency for Encryption Key Request
Encryption Key Request is now fully processed using .NET RSA
capabilities
-> Good news, that was the last step for removing IKVM dependencies!
-> So now MCC does not need to use any external library. Yay! :)
-> MCC should now be compatible with Mono (Mac, Linux).
+ Removed no longed needed DLL files (9 MBytes!)
+ State MC 1.7.5 as a supported version.
+ Update version number to MCC 1.7.2
2014-03-16 23:04:43 +01:00
ORelio
bca2a4116c Support text pasting with Ctrl+V 2014-01-11 12:48:59 +01:00
bearbear12345
07ac3268cc BouncyCastle reference is still there 2013-11-04 18:48:48 +11:00