Commit graph

48 commits

Author SHA1 Message Date
Pokechu22
ad38154f8f Full forge (1.8) connection support! 2015-10-24 19:54:38 -07:00
Pokechu22
c1c1c10d26 Relocate forge handshake code into the main packet handler.
Also, handle handshake reset.
2015-10-24 15:06:22 -07: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
Pokechu22
f67a3e3384 Attempted to add basic forge support. This does not work, but it's a start. 2015-10-24 15:06:05 -07:00
ORelio
e8a8ca4e7a Catch exception while moving cursor in ConsoleIO
- ConsoleIO bug report by ibspa.
- Also: NullReferenceException when closing connection
2015-10-20 22:55:29 +02:00
ORelio
b25a665c82 Delay BrandInfo sending
Implement Game Join event and send Brand Info only when server
acknowledged game join, as ZizzyDizzyMC did before, else server may
generate an invalid packet error because it was still in "login" mode
and not in "playing" mode. Fix second issue in #95
2015-09-30 20:01:57 +02:00
ORelio
8bd130eb3a Add setting for hiding system/xpbar messages
Add settings for disabling:
- System Messages
- XP Bar Messages
Fix #95
2015-09-29 14:07:11 +02:00
ORelio
8560753949 Extend BrandInfo setting
Brand Information tells the server what client is being used to connect
to the server, possible values are the following:

- none (do not tell anything)
- vanilla (tells that you are using MC vanilla)
- mcc (tell that you are using MCC + version)

This will usually not do anything unless plugins developers use this
information for developing some MCC interoperability eg more chat
interactions instead of using GUIs. This could also be used to block
third party clients, that's why brand information can be disabled or
changed to vanilla.
2015-09-29 14:03:33 +02:00
ZizzyDizzyMC
1223c91d79 Added setting to make sending brand info optional.
sendbrandinfo=true|false was added so we can optionally send client
info.  Enabled by default.
Added sendbrandinfo into auto-generated ini file.
Edited Protocol18.cs to reflect this with an "if" statement before
SendBrandInfo() is called upon.

Fixed minor mistake of not adding chatbotmessages into Parsemode.
Parsemode.Default was being used.
2015-09-04 09:54:38 -04:00
Pokechu22
9fefcb40ef Send MC|Brand information upon joining the game 2015-08-22 14:26:56 -07:00
ORelio
344749ead2 Add 'accepted' response pour resource packs
An 'accepted' response is sent by vanilla minecraft before sending
'successfully loaded', so let's do the same thing here. See #91
2015-08-21 17:22:09 +02:00
ORelio
a0683e1c46 Add '/' as valid separator for detecting 1.8 proxies
Should work with "Requires 1.7/1.8 (protocol v4)"
server info, reported by Yoann166.
2015-08-21 17:16:31 +02:00
ORelio
86711adba8 Fake resource pack acceptance
Some server requires that players install a resource pack, and will kick
them if they doesn't. With this new feature MCC will automatically respond
"successfully loaded" for every "resource pack send" packet it receives.
Suggested by Yoann166 in issue #91
2015-08-21 16:54:24 +02:00
ORelio
67f17cbb3e Remove packet debugging code 2015-07-30 17:32:42 +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
c88d150976 Fix Offline BungeeCord 1.5.2 requiring encryption
Vanilla minecraft encryption can be unofficially bypassed on pre-1.7
minecraft when connecting to offline-mode servers (now it IS officially
bypassed in offline mode in 1.7+), but BungeeCord 1.5.2 requires
encryption even in offline-mode, so enable encryption even in
offline-mode. Bug report by xp9kus.
2015-07-23 21:38:58 +02:00
ORelio
a6a9814163 MC 1.7: Skip potential extra data in tab-list items
See issue #84 for more info
2015-07-07 22:43:27 +02:00
ORelio
3ce91188c7 Add support for C# scripts in scripting bot
- Now scripts can also be written in C#
- C# scripts can access ChatBot API
- Add more methods in ChatBot API
- Add an example of C# script file
- Coding style fixes: method names ucfirst
2015-06-20 22:58:18 +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
a7f0897f09 Add 1.8.5 - 1.8.7 as supported versions
+ Improve wording: answer -> respon[d|se]
2015-06-19 18:42:24 +02:00
ORelio
c957ed0efd Remove invalid disconnect packet (2)
Forgot to apply the same change to Protocol17, see #45
2015-06-16 10:59:18 +02:00
ORelio
365af032ad Remove invalid disconnect packet
... use TCP connection closing instead. See #45
2015-06-14 21:43:24 +02:00
ORelio
840ac01dc5 Fix crash on empty player list updates
Player list updates on MC 1.8 handler did not take into account the
amount of items in the list and were only processing the first item,
including when there wasn't any item to process. Unfortunately some
weird servers were sending useless empty tab-list updates, causing a
crash. Should fix issue #78 and forum posts 1267, 1269, 1284. Thanks
dbear20, link3321, gerik43, Darkaegis, k3ldon and Ryan6578 for their bug
reports! :)
2015-06-03 12:00:25 +02:00
ORelio
dd5e2f8e39 Rewrite translation rule processing
Improve speed and handling of %1$s tags
Fix prompt in ConsoleIO not being reset to gray
2015-05-17 21:45:00 +02:00
ORelio
93d58a8d81 Ignore invalid UUIDs for tab-list
If the server is sending invalid UUIDs, use an empty UUID instead
2015-05-17 21:10:01 +02:00
ORelio
ea17ec87f1 Better exception catching
- Better catch in proxy handler
- Better catch in StartClient (thx doranchak)
2015-04-06 11:42:43 +02:00
ORelio
2408b51d28 Fix BungeeCord 1.8 (2nd attempt) 2015-01-31 11:21:06 +01:00
ORelio
4752094f1f Fix server version detection for Bungeecord 1.8 2014-11-11 12:44:37 +01:00
ORelio
8e458f7ab9 Add /list support in Protocol16
Removed fallback to server /list command
2014-11-11 12:35:08 +01:00
ORelio
8d16f1ec89 Add /list support in Protocol17
Fake UUID using md5(username) since protocol17 does not have UUID in
player list item packet
2014-11-10 20:56:12 +01:00
ORelio
f82041288d /list command improvements
Coding style, Guid, interface, Fallback Command
2014-11-10 20:43:00 +01:00
lokulin
7fa2e0d02e fixed whitespace to fit with code style 2014-11-11 00:55:42 +11:00
lokulin
07fed5cd24 Added a player list command /list 2014-11-11 00:32:32 +11:00
ORelio
d6c286bfbf Remove useless ping method from Protocol18
ping method wasn't part of the interface so it can in fact be removed
without any issue.
2014-10-28 21:44:40 +01:00
ORelio
f0f8183182 Merge pull request #50 from ORelio/master
Import merged pull request from Master to Indev
2014-10-28 21:41:22 +01:00
ORelio
531aede9d5 Protocol18: Redirect ping to Protocol17
Removed duplicate ping code
2014-10-28 21:39:21 +01:00
Corban Mailloux
fef50a3d48 Handle the case where "name" exists twice in the result string, like when connecting to a server with another user logged in. 2014-10-24 09:30:10 -04: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
f99efb5177 Better connection lost detection
To detect that the TCP connection has been lost, try sending a small
packet every ~10 seconds. If the connection is lost, it will then throw
an exception which will allow MCC to detect that connection is lost, and
eventually properly trigger the AutoRelog bot.
- See issue #41 -
2014-08-11 12:38:39 +02:00
ORelio
cfb313fa01 Several fixes
Fix Alerts bot not displaying several occurences in a row
Fix Script bot not displaying in console what it is performing
Fix IOException not caught when connection is lost
2014-07-01 14:10:29 +02:00
ORelio
608eb8059c Unix slashes in file path when using Mono
Bug report by MousePak
2014-06-27 13:26:27 +02:00
ORelio
8b5ce567a6 Add setting for manually choosing MC version
- User can manually provide server version in config file
- Server is not pinged if a minecraft version was manually provided
- If the provided version isn't recognized, ping is re-enabled
2014-06-14 16:01:19 +02:00
ORelio
068b87a11a Variable engine done, catch bot exceptions
- %variable% variables can be declared in the INI file and used
elsewhere
- Default argument 'true' for WriteLineFormatted in ConsoleIO
- Exceptions thrown by bots no longer disconnect from the server, stack
trace is printed instead
2014-06-11 20:40:25 +02:00
ORelio
898a04a843 Various fixes
- Re-add support for MC 1.6 chat color names
- Re-add support for MC 1.5- vanilla whispers in ChatBot
- Add /connect in main chat prompt (reported by TNT-UP)
2014-06-03 13:05:53 +02:00
ORelio
850ff7ad0b Add timeout for SpigotMC, Fix bot update
- We need to send a MC 1.6 ping first but SpigotMC ignore them
- So a timeout is necessary. Too slow old servers might suffer
- Fix bots not beign updated by Protocol16 (MC 1.4 to 1.6)
2014-05-31 13:47:34 +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