Commit graph

102 commits

Author SHA1 Message Date
Рома Данилов
ccc364df34
Add OnTimeUpdate() and OnRespawn() to ChatBot API 2020-08-07 10:35:23 +02:00
ReinforceZwei
4a8fb08f4b
Add player join/leave event to ChatBot API (#1181)
* Add player join/leave event to ChatBot API (#1180)
* Add method documentation
* Dispatch Join/Leave after updating player list
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
2020-08-06 15:57:23 +02:00
Daenges
92e776cebc
Add Mailer bot (#1108)
* Update for the mail script.

As requested, I added the synchronization between the config debugmessage bool and the one in the script. Furthermore, I added a way to send anonymous mails by writing "tellonym". The messages are saved as normal mails, which lets them count to the mail cap, due to the fact that the host knows the sender.

I added the script to the chat bots because of the problems, that the scripts have with serialization. Instead of rewriting the whole serialization part, my idea was to add the script to the other chat bots, to avoid the compiling issues. Then the serialization would work perfectly fine. Then you could remove the option class at some point and move all the settings to the config file with the addition to activate the whole script.

* Correction of debug message loading.

The object was missing and the change would be overridden a few lines later.

* Update McClient.cs

* Add Mail to config file

* Correcting the safe file.

* Small correction of Settings.c

* Update Mailscript

Added a failsafe version of the path changing commands. If a path could not be found, an error will be created and the path will be reseted to standart, to avoid endless chains of errors.

* Fix for the mail script

Removed a wrong option call. Removed the debug_msg condition around the path functions. => Users are aware of what happened (if they see the error) although they turned off debug_msg.

* Added some features.

Added a try statement to all number changing commands. Added a command to list all moderators to the console.

* Serialization Fix

There was a chance, that if two bots work on one file, and two users send messages in a short time period, that one bot deserializes the message and then the other bot deserialize the same file, before the other one could save its changes. This would lead to one message disappearing, because one bot never deserialized this message. For this I changed the whole serialization process. 
All changes are now committed after the interval and not after an incoming mail command directly. All mails are safed temporarily in cache and get serialized after the interval. Due to this changes, you can determit when the individual bot changes the file (there are no more direct interactions with the file after a command, which lead to a certain randomness). Furthermore you can now set an interval of e.g. 2 mins and reset the interval of one bot with "resettimer" after one minute so that the bots won't disturb eachother and no files get lost.

* My idea of a manual.

This is my idea of a manual for the bot. Improvements of my language / further ideas are welcome! :D

* addIgnored [NAME] and removeIgnored[NAME]

Added an ignored list. Moderators can add players to the list. The bot won't react to them and just log to the console that they are ignored, everytime they are sending a message, to ensure that they are not accidently ignored. (Just if debug_msg is active.)
 Especially useful if there are other chat bots on the server, which spam many messages that aren't useful for the mail system. Or block spammers etc.

* Add the three commands to the manual.

Added addignored, removeignored and getignored to the manual.

* Remove moderators. Implement Console Control.

Due to security concerns, I converted all moderator commands to console internal commands. Thereby only the host can change crucial settings. Special thanks to ORelio for the hint!

* Added empty statement check

Added if to all commands, where the syntax is not already protected by a try, so that an incorrect syntax (Empty args[] due to missing statement) won't crash the script.

* Changed the serialization fail

If the programm can't safe the file, because of some strange character for instance, it first tries to change the path back to normal and if this not helps, it creates a new, file.

* toggle mail sending/receiving

Add an option to turn mailsending and the listening to commands in chat on/off.

* Updated manual.

- Removed moderator commands.
- Removed moderator part in the network manual
+ added the two new commands
+ added a waring for nick plugins and minecraft renames
+ added a small syntax example

* Updated the Settings.cs file.

* Smaller fixes and additions

+ improved command reading of 'mail' & 'tellonym'
+ sorted internal commands alphabetically
+ host can set a maximum message length
+ host can accept commands from public chat
+ host can decide if 'self mailing' (mailing yourself) is accepted
+ new order makes 'getsettings' easier to read
+ new internal commands to toggle 'publiccommands' and 'selfmailing' as well as the maximum mail size
- removed the old command interpreter

* Small improvements and additions

Added a few commands and settings

* Completing getsettings

+ added 'publiccomands'

* Completed getsettings

+ Added 'publiccommand' to 'getsettings'

* Removed single bolean, added Dictionary

- removed all boleans in the option class
- removed all functions relating them
+ added Dictionary for the booleans
+ added a single function to set/toggle all booleans

* Removed Commands, added interpreter

- Removed all Register commands
- removed all integer methods
+ added a single mail command
+ added integer dictionary
+ added integer handling similar like bool handling

* Small fix

+ Changed the numbers in several methods to adjust them to the new syntax.
- removed parameters in several methods, because they got unneccesary

* Even smaller fix

+ Sorted 'getsettings' alphabetically
+ corrected a typo

* New Serialization method.

Now serializing through the .INI format! Thanks to ORelio, who helped me a lot! :)

* Added different time

Added the option to switch between utc and the time of the local machine for timestamps.

* Made timeinutc serializable

Added the bool to the serialization method.

* Adding the INIFile.cs

For Dictionary serialization.

* Reworked ignore feature

Ignored players are now serialized in a file and reloaded, after the bot enters a server.

* Mailer bot refactoring

Rename Mail to Mailer
Move options to MinecraftClient.ini
Make the bot much simpler by removing some settings
Create specific MailDatabase and IgnoreList classes
However the core functionality for users is the same

Settings removed:
 - allow_sendmail: Cannot use Mailer if it's disabled
 - allow_receivemail: Cannot use Mailer if it's disabled
 - path_setting: Settings moved to MinecraftClient.ini
 - debug_msg: MCC already has a setting for that with LogDebugToConsole()
 - auto_respawn: MCC already has a built-in auto-respawn feature
 - allow_selfmail: Is it really necessary to block self mails? ;)
 - maxcharsinmsg: Automatically calculated based on max chat message length
 - timeinutc: DateTime is not show to the recipient so I think it's not absolutely necessary
 - interval_sendmail: Set to 10 seconds for now

Internal Commands removed:
 - changemailpath: Now a static setting in config
 - changesettingspath: Now a static setting in config
 - updatemails: Already updated every 10 seconds
 - getsettings: Shown on startup with debugmessages=true
 - resettimer: Seems only useful for debugging
 - setbool: Settings are static in config file
 - setinteger: Settings are static in config file

All user commands are retained:
 - mail
 - tellonym

* Reload database for mailer network feature

* Merge Mail documentation to Readme.md

Co-authored-by: ORelio <oreliogitantispam.l0gin@spamgourmet.com>
2020-08-03 21:44:39 +02:00
Рома Данилов
712875251e
Add UnLoadBot to ChatBot API (#1164)
Add UnloadBot
Add BotList
Update VkMessager
Remove debug info
2020-08-01 14:24:17 +02:00
ReinforceZwei
97d7325939 Finish AutoCraft core functional part 2020-07-23 19:19:32 +02:00
ReinforceZwei
f2816c3fee Add inventory related ChatBot event
Added OnInventoryOpen and OnInventoryClose
Updated some method summary
2020-07-07 19:32:49 +02:00
ReinforceZwei
500e7f1bec Fix crafting result slot not being handled correctly
Added new ChatBot event OnInventoryUpdate
2020-07-07 19:32:49 +02:00
ORelio
d2125bebb3 BotLoad ChatBot API (#1106) 2020-07-06 13:10:37 +02:00
ORelio
855bdade0b Fixes following pull requests (#1101, #1097)
Fix coding style issues and compile errors
2020-07-04 11:12:27 +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
ReinforceZwei
64643af89d Add command register for ChatBot
ChatBot can register their own command for interacting with user
2020-07-04 10:39:57 +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
ORelio
6df5076d19 DigBlock/PlaceBlock: Use Direction enum
Still work in progress (#1071)
2020-06-20 16:07:59 +02:00
ORelio
f30dc4464c Reorganize methods in McClient.cs
Tyding up the class as it is becoming quite large
2020-06-20 15:18:35 +02:00
ORelio
2add4030f4 Rename McTcpClient to McClient for clarity
+ Fix compile error in #1071
2020-06-20 15:01:17 +02:00
Рома Данилов
b52435f0ce
Implement OnMapData, OnTitle, UpdateSign, OnEntityEquipment, Useblock (#1071)
* + Fix null PlayerInventory

+ Fix null PlayerInventory

* Update Protocol18.cs

* Update McTcpClient.cs

+ Fix https://github.com/ORelio/Minecraft-Console-Client/issues/1022

* Update Protocol18.cs

+ MapData

* Update PacketIncomingType.cs

+ MapData

* Update Protocol18PacketTypes.cs

* Update IMinecraftComHandler.cs

+ OnMapData

* Update McTcpClient.cs

+ OnMapData

* Update ChatBot.cs

+ OnMapData

* Update Protocol18.cs

* Update Protocol18PacketTypes.cs

+ Fix

* Update PacketIncomingType.cs

+ Title

* Update Protocol18PacketTypes.cs

* Update Protocol18.cs

* Update IMinecraftComHandler.cs

+ OnTitle

* Update McTcpClient.cs

* Update ChatBot.cs

+ OnTitle

* Update Protocol18.cs

Fix

* Update IMinecraftComHandler.cs

* Update McTcpClient.cs

* add ClearInventories()

* add ClearInventories()

* Update McTcpClient.cs

+ OnTitle

* Preparing to Add BlockAction

* Update PacketOutgoingType.cs

* Update PacketOutgoingType.cs

* Update Protocol18.cs

+ SendUpdateSign

* Update Protocol16.cs

+ SendUpdateSign

* Update IMinecraftCom.cs

+ SendUpdateSign

* Update McTcpClient.cs

+ UpdateSign

* Update ChatBot.cs

+ UpdateSign

* Update McTcpClient.cs

Update PlaceBlock

* Update ChatBot.cs

* Update McTcpClient.cs

* add SendCreativeInventoryAction nbt

add SendCreativeInventoryAction nbt

* Update Protocol18.cs

* Update Protocol16.cs

* Update McTcpClient.cs

* Update ChatBot.cs

* Update Inventory.cs

* Update Protocol18PacketTypes.cs

* Update PacketIncomingType.cs

* Update Protocol18PacketTypes.cs

* Update Protocol18PacketTypes.cs

Fix

* Update Protocol18PacketTypes.cs

Fix

* Update IMinecraftComHandler.cs

* Update IMinecraftComHandler.cs

* Update ChatBot.cs

* Update McTcpClient.cs

+ OnEntityEquipment

* Update Protocol18.cs

* Update McTcpClient.cs

* Update McTcpClient.cs

* Update McTcpClient.cs

* Update ChatBot.cs

* Update McTcpClient.cs

* Update McTcpClient.cs

* Update ChatBot.cs

* Update McTcpClient.cs

* Update McTcpClient.cs

* Update ChatBot.cs

* Update McTcpClient.cs

* Update McTcpClient.cs

* Update Protocol18.cs

* Update McTcpClient.cs

* Update ChatBot.cs

* Update ChatBot.cs

* Update McTcpClient.cs

* Update McTcpClient.cs

* Update McTcpClient.cs

* Update Protocol18.cs

* Create Useblock.cs

* Update MinecraftClient.csproj

* Update McTcpClient.cs
2020-06-20 14:57:07 +02:00
ORelio
ee8bc7f308 Allow bots to perform small teleports (#1067)
Small teleport jumps within a 4-block ranges.
May cause invalid moves and/or trigger anti-cheat plugins.
2020-06-14 15:41:34 +02:00
ReinforceZwei
ab05d697ef
Fix AutoEat crash (#1068)
* Fix AutoEat keep eating after player dead
* Fix null reference on GetInventory method
* Add error handle for ChatBot API events
* Fix minor mistakes
2020-06-14 15:14:51 +02:00
Рома Данилов
87302bafab
Keep track of current game mode (#1053)
* GetGamemode()

* GetGamemode()

* ChangeGamemode()

* GetGamemode()

* Update ChatBot.cs

code refractor

* Update Inventory.cs

Gamemode check added

* Update Protocol18.cs

* Update Protocol18.cs

* Update Protocol18.cs

code refractor

* Update IMinecraftComHandler.cs

code refractor

* Update IMinecraftComHandler.cs

* Update McTcpClient.cs

fix

* Update McTcpClient.cs

fix

* Fix duplicate gamemode event

Co-authored-by: ORelio <oreliogitantispam.l0gin@spamgourmet.com>
2020-06-13 15:00:30 +02:00
Рома Данилов
b800bbcb37
ConsoleIcon support Windows 10 on new Console & OnLatencyUpdate Event (#1044)
* new ConsoleIcon support

* Update ChatBot.cs

+ OnLatencyUpdate

* Update McTcpClient.cs

+ OnLatencyUpdate

* Update Protocol18.cs

+ OnLatencyUpdate

* Update IMinecraftComHandler.cs

+ OnLatencyUpdate

* Update Protocol18.cs

+ BugFix

* Update ConsoleIcon.cs
2020-06-07 13:16:49 +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
Рома Данилов
cf9bc4c3d5
Add SendPlaceBlock, PlayerDigging, OnExplosion, OnGamemodeUpdate, OnSetExperience (#1027)
* Update ChatBot.cs

+ PlaceBlock

* Update AutoAttack.cs

+ HitAnimation

* Update PacketIncomingType.cs

+ Explosion,

* Update McTcpClient.cs

+ OnExplosion

* Update ChatBot.cs

+ OnExplosion

* Update IMinecraftComHandler.cs

+ OnExplosion

* Update Protocol18PacketTypes.cs

+ PacketIncomingType.Explosion

* Update ChatBot.cs

+ Fix

* Update AutoAttack.cs

+ Fix

* Update ChatBot.cs

+ Fix

* Update Protocol18PacketTypes.cs

+ Old versions

* Update Protocol18PacketTypes.cs

+ 1.7 - 1.8 Explosion ID

* Update Protocol18PacketTypes.cs

+ Fix

* Update McTcpClient.cs

+ int ExplosionRecordCount

* Update ChatBot.cs

+ recordcount

* Update IMinecraftComHandler.cs

+ ExplosionRecordCount

* Update Protocol18.cs

* Update CSharpRunner.cs

+ using MinecraftClient.Inventory;

* add OnGamemodeUpdate

+ OnGamemodeUpdate

* + OnGamemodeUpdate(playername, uuid, gamemode)

+ OnGamemodeUpdate

* Update Protocol18.cs

* Update IMinecraftComHandler.cs

* Update McTcpClient.cs

Fix

* Update McTcpClient.cs

* Update Protocol18.cs

+ Location explodelocation

* Update McTcpClient.cs

+ Location explode

* Update ChatBot.cs

+ Fix

* Update ChatBot.cs

Remove excess +

* Update Plays animation

* Improve documentation

* ItemType fix

* OnExplosion(Location explod);

* Update PacketIncomingType.cs add SetExperience,

* + Old versions

* Update IMinecraftComHandler.cs

* Update McTcpClient.cs

* Update Protocol18.cs

* add GetLevel & GetTotalExperience

* Fix

* add GetLevel & GetTotalExperience

* OnSetExpience

* Update ChatBot.cs

Fix

* Update McTcpClient.cs

+ bot.OnSetExperience

* Update Protocol18.cs

+ Fix

* Update McTcpClient.cs

+ PlayerDigging

* Update PacketOutgoingType.cs

+ PlayerDigging

* Update Protocol18PacketTypes.cs

+ case PacketOutgoingType.PlayerDigging

* Update Protocol18.cs

+ SendPlayerDigging

* Update IMinecraftCom.cs

+ SendPlayerDigging

* Update McTcpClient.cs

+ PlayerDigging

* Update Protocol16.cs

+ SendPlayerDigging

* Update ChatBot.cs

+ PlayerDigging

* Update ChatBot.cs

+ Fix

* Update McTcpClient.cs

+ Fix

* Update ChatBot.cs

Add WindowAction

* ChatBot.cs Fixes

* Further ChatBot.cs fixes

* Further ChatBot.cs fixes

* Protocol Handler fixes

* Protocol Handler fixes

* IMinecraftCom fixes

* documentation fixes

Co-authored-by: ORelio <oreliogitantispam.l0gin@spamgourmet.com>
2020-05-29 20:18:34 +02:00
ORelio
efb49fd05d Improve documentation, fix file encoding (#1026) 2020-05-26 11:20:12 +02:00
Рома Данилов
87b2d3bf4a
new command /animation (#1026) 2020-05-26 11:02:09 +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
5tanly
a018304f99
Strip Minecraft Color Codes (§) in BasicIO-NoColor mode (#995)
Strip Minecraft color codes and formatting (§) if in BasicIO mode by using BasicIO-NoColor.
2020-05-14 19:36:56 +02:00
CarbonNeuron
0cd7f2043b Rename Action to EntityActionType, Apply Rename refactoring. 2020-05-03 11:21:34 -05:00
CarbonNeuron
a78623bf84 Rename SendAction to SendEntityAction in ChatBot.cs 2020-05-03 10:52:58 -05:00
CarbonNeuron
add1dd2dcd Merge Unseak and sneak into one function 2020-05-03 10:51:50 -05:00
CarbonNeuron
7207a9ea0e Get rid of UseItemOnHand, in ChatBot.cs, function called UseItemInHand already does this (Same function). 2020-05-03 10:48:02 -05:00
CarbonNeuron
799bc814c5 Add Chatbot API for Sneaking / Unsneaking without using SendAction 2020-05-02 03:55:23 -05:00
CarbonNeuron
b2075bb811 Add Chatbot API for accessing SendAction for things like Shift/Unshift 2020-05-02 03:53:39 -05:00
CarbonNeuron
89c97c794c Add Chatbot API for accessing Using Hand and changing slot 2020-05-02 03:52:17 -05:00
CarbonNeuron
8b57b657e6 Add ChatBot methods to get inventories. 2020-05-01 10:52:43 -05:00
CarbonNeuron
02ebf067b9 Add Internal command logging. 2020-05-01 09:37:15 -05:00
ORelio
9dae40153c Implement pull request #982
LookAtLocation and AutoLook
2020-05-01 14:02:23 +02:00
ReinforceZwei
3e76baeeb1 Fix AutoAttack stop working with AutoEat enabled and no food on hotbar
#934
2020-04-13 17:49:24 +02:00
ReinforceZwei
8e32c3747c Revert "Improve AutoEat"
This reverts commit 51f54979da.
2020-04-13 17:49:24 +02:00
ReinforceZwei
e9d91ce572 Improve AutoEat 2020-04-13 17:49:24 +02:00
ReinforceZwei
97b0b03c33 Move AutoEat to a ChatBot 2020-04-09 20:50:34 +02:00
ReinforceZwei
2e1e79bcef Add AutoEat
#923
2020-04-09 20:50:34 +02:00
ORelio
c5b0f447c9 AutoRelog: Allow any kick message
Set ignorekickmessage=true in config
See issues #880 #921
2020-04-02 18:27:18 +02:00
ORelio
00112e4c6a Give access to AutoRespond matches inside scripts
Available as %match_u%, %match_1% and so on
See #770 for initial suggestion
See #772 for in-progress implementation
2020-03-27 21:39:06 +01:00
ReinforceZwei
bc449b404e Inventory handling 2020-03-27 13:10:37 +01:00
ReinforceZwei
7fbf9443a1 Made ChatBotAPI OnEntityDespawn to pass Entity object instead of EntityID 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
ORelio
52d98538b3 Fix AutoRelog running twice on disconnection
Bug introduced in commit aaf1e8311b
Implement User-Initiated logout reason to ignore the second logout event
See #817
2019-12-08 22:24:20 +01:00
TheSnoozer
d4aa63d1d3 fix some doc strings 2019-10-03 09:46:08 +02:00
TheSnoozer
3393e7e402 report the full path when loading any files which might help in troubleshooting files not found properly 2019-09-23 22:32:28 +02:00