Code Monkey home page Code Monkey logo

ninjabotcore's Introduction

NinjaBot

NinjaBot

Build status License: MIT

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

Getting Started

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.

Slash commands

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 your guild (Retail WoW)

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:

US (also the default if no region is specified)

/setguild Blackwater Raiders, Raiders of the Lost Ark, us

EU

/setguild Silvermoon, Rome in a Day, eu

RU

/setguild Ревущий фьорд, Порейдим месяц, ru

Associating your guild (Classic WoW)

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:

US (also the default if no region is specified)

/setclassicguild "Disorder" "Rattlegore"

WoW Commands

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

World of Warcraft Commands

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

Server Enhancement Commands

NinjaBot can greet people joining the server, and notify the server when someone leaves. The messages the bot uses are customizable.

Greetings:

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 wide note

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.

Help!

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:

Discord Chat

NinjaBot Website

Feel free to open an issue here for any bugs or problems you come across!

Enjoy.

ninjabotcore's People

Contributors

dependabot[bot] avatar gngrninja avatar xmate420x avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ninjabotcore's Issues

!rpi RedW always gives me the result of !rpi RedWH

Hello,

First of all, thank you very much for your rather wonderful work.

I am installing your BOT on several of my discord servers and I am constantly coming across the same problem.

I'm setting up my guild, no worries.
I'm doing a !rpi RedWH, no problem.
Every time I do a !rpi RedW (a character that exists) it doesn't work anymore and give me the RedWH result.

2019-10-02_17h33_10

So I looked in the code to see where the error can come from and I therefore step by step into GetCharMythicPlusInfo I come across this URL:
https://raider.io/api/v1/characters/profile?region=eu&realm=confrerie-du-thorium&name=redw&fields=mythic_plus_scores%2Cmythic_plus_ranks%2Cmythic_plus_scores%2Cmythic_plus_highest_level_runs%2Cmythic_plus_recent_runs%2Cmythic_plus_best_runs%2Craid_progression

And this URL works perfectly.

So I'm wondering if your BOT is not installed behind a proxy that will do a bad management with the cache?

Thank you for your time on this issue.

Have a nice day.

question?

can you assign a certain channel for the ninja bot to announce leaves and joins?

Partition 2 support for rankings and possibly reports?

Currently, the discord bot pulls the rankings from the 1st partition in warcraftlogs for ToS, but unfortunately that isn't the current patch.

I wasn't quite sure how to implement this as I am not so versed in the warcaftlogs api. However, I didn't see anything that got the latest partition and it seemed to me that the partitions had to be manually handled. I could be completely wrong because like I said I don't know warcraftlogs api that well.

Personally, I was thinking maybe it could be handled as something we could pass in "7.3" = 2 and "7.2.5" =1 for ToS zone and if not expressly passed in that the code would take the highest value in the list for that encounter.

I wasn't sure how to message you on here, but if you have any questions @Fiolated#9828 is my discord.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.