NinjaBot is a Discord bot written in C#.
Its primary focus was to help out guilds in World of Warcraft. I will be shifting to more administrative / Discord tasks for the time being as I am no longer actively playing World of Warcraft.
This project has been an awesome way for me to learn C#, feel free to toss in a pull request if there's a better way to do something!
10.2.x updates coming soon
The first thing you'll need to do is invite the bot to your server. It will need permissions to read and post messages at the very minimum. If you wish to use NinjaBot to assist with admin tasks (kicking/banning users, message management, etc), please use this link.
This bot is now using slash commands, be sure to use the updated invites above to invite it to your discord server. If it is already on your server, you may need to ensure users can use the commands:
Go to Server Settings → Integrations, and then 'Manage' (next to NinjaBot).
There are a limited number of classic WoW commands now available. You can associate your guild, and watch/get logs from Warcraft logs. Currently there is no way to get classic armory or guild information via the API, and I'll be watching to see when/if things get added!
More information on the bot and getting started here.
Associating a WoW guild with your Discord server allows you to use the Warcraft Logs watching command, as well as some autocomplete features for guild member names when using various WoW commands.
To associate your guild with NinjaBot, use the following command:
/setguild realmName, guildName, region
Here are some examples of using the command:
/setguild Blackwater Raiders, Raiders of the Lost Ark, us
/setguild Silvermoon, Rome in a Day, eu
/setguild Ревущий фьорд, Порейдим месяц, ru
To associate your classic WoW guild with NinjaBot, use the following command:
/setclassicguild "guild name" "realm" "region"
Valid regions: US, EU, KR, TW, and CN
NinjaBot will associate what you enter as the guild attached to your server. That data will then be used to watch / retrieve logs from Warcraft Logs.
Example:
/setclassicguild "Disorder" "Rattlegore"
Warcraft Logs Auto Log Poster (Retail and Classic)
To use the auto log poster, use this command in the channel you want them automatically posted to:
/watchlogs
You can use the same exact command to disable the auto log posting, and then use it again to enable it (in the channel you want them posted to).
Warcraft Logs Last Three Logs
To get the last three of your guild's logs, use:
/logs
Warcraft Logs Last Three Logs (Classic WoW)
To get the last three of your guild's logs, use:
/logsclassic
Raider.IO Player Information Lookup
Command Help:
/rio
Try to find character (first in guild, then best guess)
/rio characterName
Long form version to try to find someone not in the same region
/rio characterName realmName region(us or eu)
Raider.IO Guild Information
/ginfo
NinjaBot can greet people joining the server, and notify the server when someone leaves. The messages the bot uses are customizable.
In the channel you'd like to have the greetings in (this will either enable or disable, as a toggle):
/toggle-greetings
If greetings are enabled, and you'd like to set a different channel to handle leaving/parting messages, use (in the channel you want it to be):
/set-parting-channel
When setting greetings, you can use emojis the bot has access to. For example, you can use 😂, and it will translate to 😂.
If you'd like to link to a specific channel, you'd use:
Please check out this channel for information: <#channel-id-here>
(to get the ID, just right click a text channel and click "Copy Channel ID")
To change the greeting message, use:
/set-join-message
To change the leaving/parting message, use:
/set-part-message
Server members with kick permissions and above can set a server wide note via:
/set-note
Anyone in the server can retrieve the note via:
/get-note
(note: updating the website in the mere future!) Visit the NinjaBot website for more information.
If you're having trouble using any of the WoW commands, the first thing to try is re-associating your WoW guild with your Discord server. If that doesn't help, check out the following resources below:
Feel free to open an issue here for any bugs or problems you come across!
Enjoy.