Skynet (beta)
A Minecraft bot for logging player activity from multiplayer servers.
Installation
- (
npm install skynet-minecraft@1.0.3
) - Create the database using the:
NOT EXISTS `skynet`;USE `skynet`; NOT EXISTS `player` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(32) NOT NULL, `timestamp` timestamp NOT NULL DEFAULT 0, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), UNIQUE KEY `unique_username` (`username`), KEY `index_username` (`username`)); NOT EXISTS `event_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, PRIMARY KEY (`id`)); INSERT INTO event_type (name) VALUES ('login');INSERT INTO event_type (name) VALUES ('logout'); NOT EXISTS `event` ( `id` int(11) NOT NULL AUTO_INCREMENT, `event_type_id` int(11) NOT NULL, `player_id` int(32) NOT NULL, `timestamp` timestamp NOT NULL DEFAULT 0, PRIMARY KEY (`id`), KEY `fk_event_type` (`event_type_id`), KEY `fk_event_player` (`player_id`)); `event` ADD CONSTRAINT `fk_event_player` FOREIGN KEY (`player_id`) REFERENCES `player` (`id`), ADD CONSTRAINT `fk_event_type` FOREIGN KEY (`event_type_id`) REFERENCES `event_type` (`id`); NOT EXISTS `session` ( `id` int(11) NOT NULL AUTO_INCREMENT, `player_id` int(11) NOT NULL, `login` int(11) NOT NULL, `login_timestamp` timestamp NULL DEFAULT 0, `logout` int(11) DEFAULT NULL, `logout_timestamp` timestamp NULL DEFAULT 0, `duration` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `unique_login` (`login`), UNIQUE KEY `unique_logout` (`logout`), KEY `index_player` (`player_id`)); `session` ADD CONSTRAINT `fk_login_event` FOREIGN KEY (`login`) REFERENCES `event` (`id`), ADD CONSTRAINT `fk_logout_event` FOREIGN KEY (`logout`) REFERENCES `event` (`id`), ADD CONSTRAINT `fk_session_player` FOREIGN KEY (`player_id`) REFERENCES `player` (`id`);
- Update /lib/config.js with your own MySQL connection settings:
var config = {}; configmysql = {};configmc = {};configsettings = {}; configmysqlhost = 'localhost';configmysqldatabase = 'skynet'configmysqluser = 'root';configmysqlpassword = ''; configmchost = 'mc.civcraft.vg';configmcport = 25565;configmcusername = '';configmcpassword = ''; configsettingsowner = '';configsettingsantiAfkMessage = 'Hello, I am skynet, this message is to avoid AFK.';configsettingsverboseLogging = false; moduleexports = config;
- If the server you are connecting to uses the plugin Herochat to manage its chat, overwrite
mineflayer/lib/plugins/chat.js with patch/chat.js (
mv chat.js ../node_modules/mineflayer/lib/plugins/
)
Website
- TODO documentation
Examples
Todo
TODO
Credits
Created by Jonathan Devine but standing on the shoulders of giants: thanks to superjoe30, caolan, ttk2, nickelpro ... and more