diff --git a/docs/guides/Building from Source.md b/docs/guides/Building from Source.md deleted file mode 100644 index 557dc3c3..00000000 --- a/docs/guides/Building from Source.md +++ /dev/null @@ -1,8 +0,0 @@ -###Building from Source -For easy setup and no programming knowledge, you can use [Updater](https://github.com/Kwoth/NadekoUpdater/releases/latest) or download release from [Releases](https://github.com/Kwoth/NadekoBot/releases) and follow the [Windows Guide](Windows Guide.md) - -In your bin/debug folder (or next to your exe if you are using release version), you must have a file called 'credentials.json' in which you will store all the necessary data to make the bot know who the owner is, and your api keys. - -When you clone the project, make sure to run `git submodule init` and `git submodule update` to get the correct discord.net version - -Make sure you've read ComprehensiveGuide to get a grasp of basic config/credentials setup and then look at "Credentials and config" chapter. diff --git a/docs/guides/Linux Guide.md b/docs/guides/Linux Guide.md index c60eb5c3..f32f39f1 100644 --- a/docs/guides/Linux Guide.md +++ b/docs/guides/Linux Guide.md @@ -1,16 +1,14 @@ ##Setting up NadekoBot on Linux ####Setting up NadekoBot on Linux Digital Ocean Droplet -If you want Nadeko to play music for you 24/7 without having to hosting it on your PC and want to keep it cheap, reliable and convenient as possible, you can try Nadeko on Linux Digital Ocean Droplet using the link [DigitalOcean][DigitalOcean] (and using this link will be supporting Nadeko and will give you **$10 credit**) - -Keep this helpful video handy [Linux Setup Video][Linux Setup Video] (thanks to klincheR) it contains how to set up the Digital Ocean droplet aswell. +If you want Nadeko to play music for you 24/7 without having to hosting it on your PC and want to keep it cheap, reliable and convenient as possible, you can try Nadeko on Linux Digital Ocean Droplet using the link [DigitalOcean](http://m.do.co/c/46b4d3d44795/) (and using this link will be supporting Nadeko and will give you **$10 credit**) ####Setting up NadekoBot Assuming you have followed the link above to created an account in Digital Ocean and video to set up the bot until you get the `IP address and root password (in email)` to login, its time to begin. #### Prerequisites -- Download [PuTTY][PuTTY] -- Download [CyberDuck][CyberDuck] +- Download [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) +- Download [CyberDuck](https://cyberduck.io) #### Follow these steps @@ -20,78 +18,46 @@ If you entered your Droplets IP address correctly, it should show **login as:** - It should then, ask for password, type the `root password` you have received in your **email address registered with Digital Ocean**, then hit Enter. *(as you are running it for the first time, it will most likely to ask you to change your root password, for that, type the "password you received through email", hit Enter, enter a "new password", hit Enter and confirm that "new password" again.* -**SAVE that new password somewhere safe not just in mind**. After you done that, you are ready to write commands. +**SAVE that new password somewhere safe, not just in your mind**. After you've done that, you are ready to write commands. -**Copy and just paste** using **mouse right-click** (it should paste automatically) - -####Installing Mono -MONO (Source: [Mono Source][Mono Source]) +**Copy the messages as normal, and just paste** by using **mouse right-click** (it should paste automatically) +####Installing git and dotnet **1)** - -`sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF` -`echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list` -`sudo apt-get update` +`sudo apt-get install git -y` Note if the command is not being initiated, hit **Enter** +Go to [this link](https://www.microsoft.com/net/core#ubuntu) provided by microsoft for instructions on how to get the most up to date version of the dotnet core sdk! +Make sure that you're on the correct page for your distribution of linux as the guides are different for the various distributions + +We'll go over the steps here for Ubuntu 16.04 anyway (these will **only** work on Ubuntu 16.04), accurate as of 16/10/2016 + **2)** +``` +sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list' -`echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo -tee -a /etc/apt/sources.list.d/mono-xamarin.list` +sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893 -####Mono on Debian 8 and later -**2.5)** +sudo apt-get update && sudo apt-get install dotnet-dev-1.0.0-preview2-003131 -y +``` -`echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | sudo -tee -a /etc/apt/sources.list.d/mono-xamarin.list` - -####Mono on CentOS 7, Fedora 19 (and later) and later -**2.6)** - -`yum install yum-util` -`rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"` -`yum-config-manager --add-repo http://download.mono-project.com/repo/centos/` - -####Mono Devel +####Installing Opus Voice Codec and libsodium **3)** - -`apt-get install mono-devel` - -**Type** `y` **hit Enter** - -####Mono Fix -**In case you are having issues with Mono where you get a random string and the bot won't run, do this:** - -`sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF` -`echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list` -`apt-get install ca-certificates-mono` -`mozroots --import --sync` - -####Installing Opus Voice Codec -**4)** -`sudo apt-get install libopus0 opus-tools` - -**Type** `y` **hit Enter** - -**5)** -`sudo apt-get install libopus-dev` +`sudo apt-get install libopus0 opus-tools libopus-dev libsodium-dev -y` ####FFMPEG +**4)** +`apt-get install ffmpeg -y` -**6)** -`apt-get install ffmpeg` - -**Type** `y` **hit Enter** - -NOTE: if its "not installing" then, follow the guide here: [FFMPEG Help Guide][FFMPEG Help Guide] - -**All you need to do, if you are running UBUNTU 14.04 is initiate these:** - -`sudo add-apt-repository ppa:mc3man/trusty-media` -`sudo apt-get update` -`sudo apt-get dist-upgrade` +NOTE: if its "not installing" then, follow the guide here: [FFMPEG Help Guide](http://www.faqforge.com/linux/how-to-install-ffmpeg-on-ubuntu-14-04/) +**If you are running UBUNTU 14.04, you must run these first:** +``` +sudo add-apt-repository ppa:mc3man/trusty-media +sudo apt-get update +sudo apt-get dist-upgrade +``` *Before executing* `sudo apt-get install ffmpeg` **If you are running Debian 8 Jessie, please, follow these steps:** @@ -100,78 +66,50 @@ NOTE: if its "not installing" then, follow the guide here: [FFMPEG Help Guide][F In case you are not able to install it with installer ^up there, follow these steps: -`sudo apt-get update` -`echo "deb http://ftp.debian.org/debian jessie-backports main" | tee /etc/apt/sources.list.d/debian-backports.list` -`sudo apt-get update` -`sudo apt-get install ffmpeg -y` +``` +sudo apt-get update +echo "deb http://ftp.debian.org/debian jessie-backports main" | tee /etc/apt/sources.list.d/debian-backports.list +sudo apt-get update && sudo apt-get install ffmpeg -y` +``` ####Uncomplicated Firewall UFW -**7)** +**5)** `apt-get install ufw` -**it is most likely to have it already installed so if you see it is already installed, check with following command, and/or enable it** +**It is likely to have been pre-installed so if you see that it is installed, check it works with the following command, and/or enable it** -**8)** +**6)** `ufw status` -**9)** +**7)** `ufw enable` -**Type** `y` **hit Enter** +**Type** `y` ** and hit Enter** -**10)** +**8)** `sudo ufw allow ssh` -####Installing Unzip -**11)** -`apt-get install unzip` - ####Installing TMUX +**9)** +`sudo apt-get install tmux -y` + +####Getting NadekoBot + +**10)** +`git clone -b 1.0 --recursive https://github.com/Kwoth/NadekoBot.git` + +####Building NadekoBot +**11)** `cd /NadekoBot/discord.net/src/Discord.Net` +`dotnet restore && dotnet build --configuration Release` + **12)** -`apt-get install tmux` +`cd ../Discord.Net.Commands/ && dotnet restore && dotnet build --configuration Release` -**Type** `y` **hit Enter** - -####Importing Discord certs **13)** -`certmgr -ssl https://discordapp.com` -**14)** -`certmgr -ssl https://gateway.discord.gg` +`cd ../../../src/NadekoBot/ && dotnet restore && dotnet build --configuration Release` -Type `yes` and hit Enter **(three times - as it will ask for three times)** - -####Creating Nadeko folder -**15)** -Create a new folder “nadeko” or anything you prefer - -`mkdir nadeko` - -**16)** -Move to “nadeko” folder (note `cd --` to go back the directory) - -`cd nadeko` - -####Getting NadekoBot from Releases - -Go to this link: [Releases][Releases] and **copy the zip file address** of the lalest version available, -it should look like `https://github.com/Kwoth/NadekoBot/releases/download/vx.xx/NadekoBot.vx.x.zip` - -**17)** -Get the correct link, type `wget`, then *paste the link*, then hit **Enter**. - -`wget https://github.com/Kwoth/NadekoBot/releases/download/vx.xx/NadekoBot.vx.x.zip` - -**^Do not copy-paste it** - -**18)** -Now we need to `unzip` the downloaded zip file and to do that, type the file name as it showed in your screen or just copy from the screen, should be like ` NadekoBot.vx.x.zip` - -`unzip NadekoBot.vx.x.zip` - -**^Do not copy-paste it** - -####Setting up NadekoBot +####Setting up NadekoBot - Open **CyberDuck** - Click on **Open Connection** (top-left corner), a new window should appear. @@ -181,75 +119,62 @@ Now we need to `unzip` the downloaded zip file and to do that, type the file nam - In **Username:** type `root` - In **Password:** type `the new root password (you changed at the start)` - Click on **Connect** -- It should show you the new folder you created. -- Open it. +- It should show you the NadekoBot folder which was created by git earlier +- Open that folder, then open the `src` folder, followed by another `NadekoBot` folder and you should see `credentials_example.json` here ####Renaming Credentials.json - Copy the `credentials_example.json` to desktop -- EDIT it as it is guided here: [Setting up Credentials.json](Windows Guide.md#setting-up-credentialsjson-file) -- Read here how to [Create DiscordBot application](https://github.com/miraai/NadekoBot/blob/dev/docs/guides/Windows%20Guide.md#creating-discordbot-application) +- EDIT it as it is guided here: [Setting up Credentials.json](http://nadekobot.readthedocs.io/en/1.0/guides/Windows%20Guide/#setting-up-credentialsjson-file) +- Read here how to [create a DiscordBot application](http://nadekobot.readthedocs.io/en/1.0/guides/Windows%20Guide/#creating-discordbot-application) - Rename it to `credentials.json` and paste/put it back in the folder. `(Yes, using CyberDuck)` - You should see two files `credentials_example.json` and `credentials.json` -- Also if you already have nadeko setup and have `credentials.json`, `config.json`, `nadekobot.sqlite`, and `"permissions" folder`, you can just copy and paste it to the Droplets folder using CyberDuck. +- Also if you already have nadeko setup and have `credentials.json` and `NadekoBot.db`, you can just copy and paste the `credentials.json` to `NadekoBot/src/NadekoBot` and `NadekoBot.db` to `NadekoBot/src/NadekoBot/bin/Release/netcoreapp1.0/data` using CyberDuck. ####Running NadekoBot Go back to **PuTTY**, `(hope its still running xD)` -**19)** +**14)** Type/ Copy and hit **Enter**. -`tmux new -s nadeko` +`tmux new -s nadeko` +`cd NadekoBot/src/NadekoBot/` +**^this will create a new session named “nadeko”** *(you can replace “nadeko” with anything you prefer and remember its your session name)* so you can run the bot in background without having to keep running PuTTY in the background. -**^this will create a new session named “nadeko”** `(you can replace “nadeko” with anything you prefer and remember -its your session name) so you can run the bot in background without having to keep running PuTTY in the background.` - -`cd nadeko` - -**20)** -`mono NadekoBot.exe` +**15)** +`dotnet run --configuration Release` **CHECK THE BOT IN DISCORD, IF EVERYTHING IS WORKING** ####Setting up Nadeko Music -For how to set up Nadeko for music and Google API Keys, follow [Setting up NadekoBot for Music](Windows Guide.md#setting-up-nadekobot-for-music) +For how to set up Nadeko for music and Google API Keys, follow [Setting up NadekoBot for Music](http://nadekobot.readthedocs.io/en/1.0/guides/Windows%20Guide/#setting-up-nadekobot-for-music) Now time to **move bot to background** and to do that, press **CTRL+B+D** (this will detach the nadeko session using TMUX), and you can finally close PuTTY now. -Copy your CLIENT ID (that's in the same Developer page where you brought your token) and replace `12345678` in this link: `https://discordapp.com/oauth2/authorize?client_id=12345678&scope=bot&permissions=66186303` with it. Go to that link and you will be able to add your bot to your server. +Copy your CLIENT ID (In the same Developer page where you got your token!) and replace `12345678` in this link: `https://discordapp.com/oauth2/authorize?client_id=12345678&scope=bot&permissions=66186303` with it. + Go to that link and you will be able to add your bot to your server. **NOW YOU HAVE YOUR OWN NADEKO BOT** `Thanks to Kwoth <3` ####Some more Info (just in case) --If you want to **see the sessions** after logging back again, type `tmux ls`, and that will give you the list of sessions running. --If you want to **switch to/ see that session**, type `tmux a -t nadeko` (**nadeko** is the name of the session we created before so, replace **“nadeko”** with the session name you created.) --If you want to **kill** NadekoBot **session**, type `tmux kill-session -t nadeko` +- If you want to **see the sessions** after logging back again, type `tmux ls`, and that will give you the list of sessions running. +- If you want to **switch to/ see that session**, type `tmux a -t nadeko` (**nadeko** is the name of the session we created before so, replace **“nadeko”** with the session name you created.) +- If you want to **kill** NadekoBot **session**, type `tmux kill-session -t nadeko` ####Restarting Nadeko with the Server Open **PuTTY** and login as you have before, type `reboot` and hit Enter. ####Updating Nadeko -**FOLLOW THESE STEPS SERIALLY** - -- **-16** -- **-17** -- **-18** -- **-19** -- **-20** +- Make sure the bot is **not** running +- Connect to the terminal +- `cd NadekoBot` +- `git init && git pull` +- Run the bot again as normal, and you've updated! HIT **CTRL+B+D** and close **PuTTY** -`IF YOU FACE ANY TROUBLE ANYWHERE IN THE GUIDE JUST FIND US IN NADEKO'S DISCORD SERVER` - -[PuTTY]: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html -[CyberDuck]: https://cyberduck.io -[Linux Setup Video]: https://www.youtube.com/watch?v=icV4_WPqPQk&feature=youtu.be -[Releases]: https://github.com/Kwoth/NadekoBot/releases -[Readme]: https://github.com/Kwoth/NadekoBot/blob/master/README.md -[FFMPEG Help Guide]: http://www.faqforge.com/linux/how-to-install-ffmpeg-on-ubuntu-14-04/ -[Mono Source]: http://www.mono-project.com/docs/getting-started/install/linux/ -[DigitalOcean]: http://m.do.co/c/46b4d3d44795/ +*IF YOU FACE ANY TROUBLE ANYWHERE IN THE GUIDE JUST FIND US IN [NADEKO'S DISCORD SERVER](https://discord.gg/0ehQwTK2RBjAxzEY)* diff --git a/docs/guides/OSX Guide.md b/docs/guides/OSX Guide.md index 4fed4867..1d1fade9 100644 --- a/docs/guides/OSX Guide.md +++ b/docs/guides/OSX Guide.md @@ -1,10 +1,9 @@ ### Setting Up NadekoBot on OSX #### Prerequisites - 1) [Homebrew][Homebrew] -- 2) Mono -- 3) Google Account -- 4) Soundcloud Account (if you want soundcloud support) -- 5) Text Editor (TextWrangler, or equivalent) or outside editor such as [Atom][Atom] +- 2) Google Account +- 3) Soundcloud Account (if you want soundcloud support) +- 4) Text Editor (TextWrangler, or equivalent) or outside editor such as [Atom][Atom] ####Installing Homebrew @@ -16,6 +15,7 @@ Run `brew update` to fetch the latest package data. brew install git brew install ffmpeg brew update && brew upgrade ffmpeg +brew install openssl brew install opus brew install opus-tools brew install opusfile @@ -24,6 +24,12 @@ brew install libsodium brew install tmux ``` +####Installing .NET Core SDK +- `ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/` +- `ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/` +- Download the .NET Core SDK, found [here.](https://go.microsoft.com/fwlink/?LinkID=827526) +- Open the `.pkg` and install it. + ####Check your `FFMPEG` **In case your `FFMPEG` wasnt installed properly** @@ -42,124 +48,104 @@ Xcode command line tools. You will do this in Terminal.app by running the follow A dialog box will open asking if you want to install `xcode-select`. Select install and finish the installation. -####Installing Mono -- Building Mono dependencies: - -`brew install autoconf automake libtool pkg-config` - -- Building Mono from Source: - -To build Mono from a Git Source Code checkout, you will want to have the official Mono installed on the system, as the build requires a working C# compiler to run. Once you do this, run the following commands, remember to replace PREFIX with your installation prefix that you selected: - -``` -PATH=$PREFIX/bin:$PATH -git clone https://github.com/mono/mono.git -cd mono -CC='cc -m32' ./autogen.sh --prefix=$PREFIX --disable-nls --build=i386-apple-darwin11.2.0 -make -make install -``` -To build Mono in 64 bit mode instead use this to configure the build: - -`./autogen.sh --prefix=$PREFIX --disable-nls` - -####Nadeko Setup -- Create a new folder and name it `Nadeko`. -- Move to our `Nadeko` folder - -`cd Nadeko` -- Go to [Releases][Releases] and copy the zip file address of the lalest version available, it should look like `https://github.com/Kwoth/NadekoBot/releases/download/vx.xx/NadekoBot.vx.x.zip` -- Get the correct link, type `curl -O` and past the link, then hit `Enter` -- It should be something like this: - -`curl -O https://github.com/Kwoth/NadekoBot/releases/download/vx.xx/NadekoBot.vx.x.zip` - -^ do not copy-paste it - -- Unzip the downloaded file in our `Nadeko` folder +####Downloading and building Nadeko +- `cd ~` +- `git clone -b 1.0 --recursive https://github.com/Kwoth/NadekoBot.git` +- `cd /NadekoBot/discord.net/src/Discord.Net` +- `dotnet restore && dotnet build --configuration Release` +- `cd ../Discord.Net.Commands/` +- `dotnet restore && dotnet build --configuration Release` +- `cd ../../../src/NadekoBot/` +- `dotnet restore && dotnet build --configuration Release` +- `dotnet run --configuration Release` +- The above step **will** crash, giving you an error, which will say that `credentials_example.json` has been generated, we'll use this soon ####Creating DiscordBot application -- Go to [DiscordApp][DiscordApp]. +- Go to [the Discord developer application page.][DiscordApp] - Log in with your Discord account. - On the left side, press `New Application`. - Fill out the `App Name` (your bot's name, in this case), put the image you want, and add an app description(optional). - Create the application. -- Once the application is created, click on `Create a Bot User` and confirm it. +- Click on `Create a Bot User` and confirm it. - Keep this window open for now. ####Setting up Credentials.json file +- Open up the `NadekoBot` folder, which should be in your home directory, then the `src` folder and then the additonal `NadekoBot` folder. - In our `NadekoBot` folder you should have `.json` file named `credentials_example.json`. (Note: If you do not see a **.json** after `credentials_example.json `, do not add the `**.json**`. You most likely have `"Hide file extensions"` enabled.) - Rename `credentials_example.json` to `credentials.json`. - Open the file with your Text editor. -- In there you will see fields like `Token`, `ClientId`, `BotId`, `OwnerIDs`. -- In your [DiscordApp][DiscordApp], under `Bot User` part, you will see the `Token:click to reveal` part, click to reveal it. -- Copy your bot's token, and put it between `" "` in your `credentials.json` file. -- Copy `Client ID` and replace it with the example one in your `credentials.json` in `Client ID` **and** `BotID` field. -- Save your `credentials.json` but keep it open. We need to put your `User ID` and owner. +- In your [applications page][DiscordApp] (the window you were asked to keep open earlier), under the `Bot User` section, you will see `Token:click to reveal`, click to reveal the token. +- Copy your bot's token, and on the `"Token"` line of your `credentials.json`, replace `null` with your bot token and put quotation marks before and after the token, like so `"Example.Token"` +- Copy the `Client ID` on the page and replace the null part of the `ClientId` line with it, and put quotation marks before and after, like earlier. +- Again, copy the same `Client ID` and replace the null part of the `BotId` line with it, and do **not** put quotation marks before and after the ID. +- Save your `credentials.json` but keep it open. We need to add your `User ID` as one of the `OwnerIds` shortly. ####Running NadekoBot -- Copy/past and hit `Enter` `tmux new -s nadeko` -^this will create a new session named “nadeko” `(you can replace “nadeko” with anything you prefer and remember its your -session name)`. +^this will create a new session named “nadeko” +`(you can replace “nadeko” with anything you prefer and remember its your session name)`. or if you want to use Screen, run: `screen -S nadeko` -^this will create a new screen named “nadeko” `(you can replace “nadeko” with anything you prefer and remember its your -screen name)`. +^this will create a new screen named “nadeko” +`(you can replace “nadeko” with anything you prefer and remember its your screen name)`. -`cd nadeko` +`cd ~/NadekoBot/src/NadekoBot/` -- Start NadekoBot.exe using Mono: +- Start Nadeko using dotnet: -`mono NadekoBot.exe` +`dotnet run --configuration Release` CHECK THE BOT IN DISCORD, IF EVERYTHING IS WORKING Now time to move bot to background and to do that, press CTRL+B+D (this will ditach the nadeko session using TMUX) -*if you used Screen press CTRL+A+D (this will detach the nadeko screen)* +*If you used Screen press CTRL+A+D (this will detach the nadeko screen)* ####Inviting your bot to your server - [Invite Guide][Invite Guide] - Create a new server in Discord. -- Copy your `Client ID` from your [DiscordApp][DiscordApp]. -- Replace `12345678` in this link `https://discordapp.com/oauth2/authorize?client_id=12345678&scope=bot&permissions=66186303` with your `Client ID`. -- Link should look like this: `https://discordapp.com/oauth2/authorize?client_id=**YOUR_CLENT_ID**&scope=bot&permissions=66186303`. +- Copy your `Client ID` from your [Discord bot applications page.][DiscordApp] +- Replace the `12345678` in this link `https://discordapp.com/oauth2/authorize?client_id=12345678&scope=bot&permissions=66186303` with your `Client ID`. +- Your edited link should look like this: `https://discordapp.com/oauth2/authorize?client_id=**YOUR_CLENT_ID**&scope=bot&permissions=66186303`. - Go to newly created link and pick the server we created, and click `Authorize`. - Bot should be added to your server. ####Setting up OwnerIds - In the server where your bot is, in a text channel, type `.uid` - Your `User ID` should show, copy it. -- Close `NadekoBot.exe` -- Replace your `User ID` in the `credentials.json` between `[ ]` and save the changes. -- Run `NadekoBot.exe` again. -- Now you are the bot owner. -- You can add `User IDs` from the other users by separating IDs with a comma if you want to have more owners. +- Stop NadekoBot from running by presing `Ctrl + C` in the terminal that the bot is running in +- Replace the `null` section on the `OwnerIds` line with your user ID shown earlier and put a square bracket around each end of the ID like so, `[105635576866156544]` +- Run Nadeko again, as guided above. +- If done correctly, you are now the bot owner. +- You can add multiple owner IDs by seperating them with a comma within the square brackets. ####Setting NadekoBot Music -For Music Setup and API keys check [Setting up NadekoBot for Music](Windows Guide.md#setting-up-nadekobot-for-music) and [JSON Explanations](JSON Explanations.md). +For Music Setup and API keys check [Setting up NadekoBot for Music](http://nadekobot.readthedocs.io/en/1.0/guides/Windows%20Guide/#setting-up-nadekobot-for-music) and [JSON Explanations](http://nadekobot.readthedocs.io/en/1.0/JSON%20Explanations/). + +####Updating Nadeko + +Nadeko is really easy to update as of version 1.0! just copy and paste the command below to update Nadeko to the latest version + +`cd ~/NadekoBot/ && git init && git pull` ####Some more Info - TMUX --If you want to see the sessions after logging back again, type `tmux ls`, and that will give you the list of sessions running. --If you want to switch to/ see that session, type `tmux a -t nadeko` (nadeko is the name of the session we created before so, replace `“nadeko”` with the session name you created.) --If you want to kill NadekoBot session, type `tmux kill-session -t nadeko` +- If you want to see the sessions after logging back again, type `tmux ls`, and that will give you the list of sessions running. +- If you want to switch to/ see that session, type `tmux a -t nadeko` (nadeko is the name of the session we created before so, replace `“nadeko”` with the session name you created.) +- If you want to kill NadekoBot session, type `tmux kill-session -t nadeko` ####Some more Info - Screen --If you want to see the sessions after logging back again, type `screen -ls`, and that will give you the list of screens. --If you want to switch to/ see that screen, type `screen -r nadeko` (nadeko is the name of the screen we created before so, replace `“nadeko”` with the screen name you created.) --If you want to kill the NadekoBot screen, type `screen -X -S nadeko quit` +- If you want to see the sessions after logging back again, type `screen -ls`, and that will give you the list of screens. +- If you want to switch to/ see that screen, type `screen -r nadeko` (nadeko is the name of the screen we created before so, replace `“nadeko”` with the screen name you created.) +- If you want to kill the NadekoBot screen, type `screen -X -S nadeko quit` [Homebrew]: http://brew.sh/ -[Mono]: http://www.mono-project.com/docs/compiling-mono/mac/ -[Releases]: https://github.com/Kwoth/NadekoBot/releases [DiscordApp]: https://discordapp.com/developers/applications/me [Atom]: https://atom.io/ [Invite Guide]: http://discord.kongslien.net/guide.html diff --git a/docs/guides/Upgrading Guide.md b/docs/guides/Upgrading Guide.md new file mode 100644 index 00000000..b45c47fb --- /dev/null +++ b/docs/guides/Upgrading Guide.md @@ -0,0 +1,10 @@ +###Upgrading Nadeko from an older release + +- Navigate to your old nadeko folder +- Follow the correct install process for your operating system, linked on the left hand side. Nadeko has some new dependencies, so make sure you get these as guided! +- For upgrading, you can use your old credentials file without any issues and most data can also be migrated +- Copy both the data folder and `credentials.json` from your old Nadeko installation, to the following folder +- `NadekoBot\src\NadekoBot` - This may ask if you want to overwrite some files, this is perfectly fine to do. +- Now launch the new Nadeko as the guide describes - it should now start. +- In any channel, run the `.migratedata` command - nadeko will now attempt to migrate your old data to nadeko's new storage system +- Your data should now have been migrated succesfully, restart nadeko and everything should be working as expected diff --git a/docs/guides/Windows Guide.md b/docs/guides/Windows Guide.md index 5d1a680d..1cb54cd9 100644 --- a/docs/guides/Windows Guide.md +++ b/docs/guides/Windows Guide.md @@ -4,73 +4,68 @@ ________________________________________________________________________________ ### Setting Up NadekoBot on Windows #### Prerequisites -- 1) [NET Framework][NET Framework] 4.5.2 (or 4.6) -- 2) [FFMPEG][FFMPEG] -- 3) Google Account -- 4) Soundcloud Account (if you want soundcloud support) -- 5) [7zip][7zip] (or whatever you are using, WinRar) -- 6) [Notepad++][Notepad++] +- 1) [.NET Core SDK][.NET Core SDK] +- 2) [Git][Git] +- 3) [FFMPEG][FFMPEG] +- 4) Google Account +- 5) Soundcloud Account (if you want soundcloud support) +- 6) [7zip][7zip] (or whatever you are using, WinRar) +- 7) [Notepad++][Notepad++] +- 8) Windows 8 or newer ####Guide - -- Create a folder, name it `Nadeko`. -- Head to [Updater Releases Page][Updater] and download `WINDOWS.-.nadeupdater.7z`. -- Copy `WINDOWS.-.nadeupdater.7z` to the `Nadeko` (folder we created before) and extract everything. -- You will see a file `NadekoUpdater.bat ` and a folder `publish ` after extraction. -- Run/Launch/Open the file `NadekoUpdater.bat ` and you will see it running in cmd.exe asking you with **3 options** *1-3*. - - 1) Stable release - current stable release, but might not contain all the newest Nadeko updates. - - 2) Newest release - release with all features/upgrades. - - 3) Exit -- Press `2` on your keyboard and hit `Enter`. Type `y` and hit `Enter` again. Downloading might take a while, so just be patient and wait. When download is done, press `3` on your keyboard and close the updater. -- You should have a new folder named `NadekoBot` inside the `Nadeko` folder we previously created. +- Make sure you have installed both [Git][Git] and the [.NET Core SDK][.NET Core SDK]. +- Create a folder somewhere and name it `Nadeko`. +- Head to the [Windows Installer releases page][WinInstaller] and download the latest source code zip. +- Extract the contents of the zip you just downloaded to the `Nadeko` folder that we created earlier. +- You will see a few files, most importantly, `NadekoInstaller.bat ` after extraction (You may not see the `.bat` part of the filename). +- Run/Launch/Open `NadekoInstaller.bat ` and you will see it running in the command prompt. +- Wait a while for the file to finish installing, it'll say when it's done in the command prompt. +- You should now have a new folder named `NadekoBot` inside the `Nadeko` folder we previously created. +- You can safely delete the `NadekoInstall_Temp` folder if you so choose. ####Creating DiscordBot application -- Go to [DiscordApp][DiscordApp]. +- Go to [the Discord developer application page][DiscordApp]. - Log in with your Discord account. - On the left side, press `New Application`. - Fill out the `App Name` (your bot's name, in this case), put the image you want, and add an app description(optional). - Create the application. -- Once the application is created, click on `Create a Bot User` and confirm it. +- Click on `Create a Bot User` and confirm that you do want to add a bot to this app. - Keep this window open for now. ####Setting up Credentials.json file -- In our `NadekoBot` folder you should have `.json` file named `credentials_example.json`. (Note: If you do not see a **.json** after `credentials_example.json `, do not add the `**.json**`. You most likely have `"Hide file extensions"` enabled.) +- In our `NadekoBot` folder you should see a `src` folder, then *another* `NadekoBot` folder, in this final folder, you should see a `.json` file named `credentials_example.json`. (Note: If you do not see a **.json** after `credentials_example.json `, do not add the `**.json**`. You most likely have `"Hide file extensions"` enabled.) - Rename `credentials_example.json` to `credentials.json`. -- Open the file with your [Notepad++][Notepad++]. -- In there you will see fields like `Token`, `ClientId`, `BotId`, `OwnerIDs`. -- In your [DiscordApp][DiscordApp], under `Bot User` part, you will see the `Token:click to reveal` part, click to reveal it. -- Copy your bot's token, and put it between `" "` in your `credentials.json` file. -- Copy `Client ID` and replace it with the example one in your `credentials.json` in `Client ID` **and** `BotID` field. -- Save your `credentials.json` but keep it open. We need to put your `User ID` and owner. +- Open the file with [Notepad++][Notepad++]. +- In there you will see fields such as `Token`, `ClientId`, `BotId` and `OwnerIDs`. +- In your [applications page][DiscordApp] (the window you were asked to keep open earlier), under the `Bot User` section, you will see `Token:click to reveal`, click to reveal the token. +- Copy your bot's token, and on the `"Token"` line of your `credentials.json`, paste your bot token between the quotation marks. +- Copy the `Client ID` on the page and replace the `12312123` part of the `ClientId` line with it. +- Again, copy the same `Client ID` and replace the `null` part of the `BotId` line with it. +- Save your `credentials.json` but keep it open. We need to add your `User ID` as one of the `OwnerIds` shortly. ####Inviting your bot to your server - [Invite Guide][Invite Guide] - Create a new server in Discord. -- Copy your `Client ID` from your [DiscordApp][DiscordApp]. -- Replace `12345678` in this link `https://discordapp.com/oauth2/authorize?client_id=12345678&scope=bot&permissions=66186303` with your `Client ID`. -- Link should look like this: `https://discordapp.com/oauth2/authorize?client_id=**YOUR_CLENT_ID**&scope=bot&permissions=66186303`. -- Go to newly created link and pick the server we created, and click `Authorize`. -- Bot should be added to your server. +- Copy your `Client ID` from your [applications page][DiscordApp]. +- Replace the `12345678` in this link `https://discordapp.com/oauth2/authorize?client_id=12345678&scope=bot&permissions=66186303` with your `Client ID`. +- The link should now look like this: `https://discordapp.com/oauth2/authorize?client_id=**YOUR_CLENT_ID**&scope=bot&permissions=66186303`. +- Go to the newly created link and pick the server we created, and click `Authorize`. +- The bot should have been added to your new server. ####Starting the bot -- Enter your `NadekoBot` folder that should be (hopefully) in your `Nadeko` folder. -- Run `NadekoBot.exe` (Note: There is `NadekoBot.exe` and `NadekoBot.exe.config`, dont run the second one) -- Your bot should now be online in the server we added him to. -- Note: Your bot will be offline in case you close `NadekoBot.exe`. +- Go to the folder which you extracted the zip to earlier, and run the `NadekoRun.bat` file +- Your bot should now be online in the server we added her to. +- Note: Your bot will be offline in case you close the `NadekoBot` command prompt window. ####Setting up OwnerIds - In the server where your bot is, in a text channel, type `.uid` - Your `User ID` should show, copy it. -- Close `NadekoBot.exe` -- Replace your `User ID` in the `credentials.json` between `[ ]` and save the changes. -- Run `NadekoBot.exe` again. -- Now you are the bot owner. -- You can add `User IDs` from the other users by separating IDs with a comma if you want to have more owners. - -`*Alternatively, you can download nadekobot from` [Releases][Releases] `and extract the zip yourself. -That is what updater does, except it makes it easier for you to update because it doesn't overwrite -important files.If you are downloading releases you will have to be careful about your config, -credentials, and other files you edited in order to preserve your data every time you update.` +- Close `NadekoBot` +- Replace the `0` on the `OwnerIds` section with your user ID shown earlier. +- Run `NadekoRun.bat` again. +- If done correctly, you are now the bot owner. +- You can add multiple owner IDs by seperating them with a comma within the square brackets. ________________________________________________________________________________ @@ -86,13 +81,13 @@ ________________________________________________________________________________ - On the left tab, access `Credentials`. Click `Create Credentials` button. Click on `API Key`. A new window will appear with your `Google API key`. - Copy the key. - Open up `credentials.json`. - - For `"GoogleAPIKey"`, fill in with the new key we copied. + - For `"GoogleAPIKey"`, replace `null` with the new key we copied and put quotation marks before and after the API key, like how the `Token` and `ClientId` should be set up. - Follow these steps on how to setup Soundcloud API key: - Go to [Soundcloud][Soundcloud]. - Enter a name for the app and create it. - - You will see a page with the title of your app, and a field labeled `Client ID`. Copy the ID. - - In `credentials.json`, fill in `"SoundcloudClientID"` with the copied ID. -- Restart your computer. + - You will need to fill out an application form to request access to the Soundcloud API. + - All requests for an API key must go through the review process, where applications will be reviewed on a case by case basis, in line with Soundcloud API Terms of Use. If your application is successful, you will receive an API key. +- **Restart your computer**. ####Manual `ffmpeg` setup **Do this step in case you were not able to install `ffmpeg` with the installer.** @@ -100,16 +95,16 @@ ________________________________________________________________________________ - Create a folder named `ffmpeg` in your main Windows directory. We will use **C:\ffmpeg** (for our guide) - Download FFMPEG through the link https://ffmpeg.zeranoe.com/builds/ (download static build) - Extract it using `7zip` and place the folder `ffmpeg-xxxxx-git-xxxxx-xxxx-static` inside **C:\ffmpeg** -- Before proceeding, check out this gif to set up `ffmpeg` PATH correctly http://i.imgur.com/aR5l1Hn.gif *(thanks to PooPeePants#7135)* +- Before proceeding, check out this gif to set up `ffmpeg` PATH correctly [http://i.imgur.com/aR5l1Hn.gif](http://i.imgur.com/aR5l1Hn.gif) *(thanks to PooPeePants#7135)* - Go to My Computer, right click and select Properties. On the left tab, select Advanced System Settings. Under the Advanced tab, select Environmental Variables near the bottom. One of the variables should be called "Path". Add a semi-colon (;) to the end followed by your FFMPEG's **bin** install location (**for example C:\ffmpeg\ffmpeg-xxxxx-git-xxxxx-xxxx-static\bin**). Save and close. - Setup your API keys as explained above. - Restart your computer. -[NET Framework]: https://www.microsoft.com/en-us/download/details.aspx?id=48130 -[FFMPEG]: https://github.com/Soundofdarkness/FFMPEG-Installer +[.NET Core SDK]: https://go.microsoft.com/fwlink/?LinkID=827524 +[Git]: https://git-scm.com/download/win +[WinInstaller]: https://github.com/fearnlj01/NadekoBotInstallerWin/releases +[FFMPEG]: https://github.com/Soundofdarkness/FFMPEG-Inst/releases [7zip]: http://www.7-zip.org/download.html -[Updater]: https://github.com/Kwoth/NadekoUpdater/releases -[Releases]: https://github.com/Kwoth/NadekoBot/releases [DiscordApp]: https://discordapp.com/developers/applications/me [Notepad++]: https://notepad-plus-plus.org/ [Invite Guide]: http://discord.kongslien.net/guide.html diff --git a/mkdocs.yml b/mkdocs.yml index a23be7e7..494b6243 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -8,6 +8,7 @@ pages: - Linux Guide: guides/Linux Guide.md - OSX Guide: guides/OSX Guide.md - Building from Source: guides/Building from Source.md + - Upgrading Guide: guides/Upgrading Guide.md - Docker Guide: guides/Docker Guide.md - Commands: - Readme: Readme.md diff --git a/src/NadekoBot/Modules/Permissions/Permissions.cs b/src/NadekoBot/Modules/Permissions/Permissions.cs index 1ebb4433..e56fd060 100644 --- a/src/NadekoBot/Modules/Permissions/Permissions.cs +++ b/src/NadekoBot/Modules/Permissions/Permissions.cs @@ -110,7 +110,7 @@ namespace NadekoBot.Modules.Permissions using (var uow = DbHandler.UnitOfWork()) { var perms = uow.GuildConfigs.PermissionsFor(channel.Guild.Id).RootPermission; - var i = 1; + var i = 1 + 20 * (page - 1); toSend = Format.Code($"Permissions page {page}") + "\n\n" + String.Join("\n", perms.AsEnumerable().Skip((page - 1) * 20).Take(20).Select(p => $"`{(i++)}.` {(p.Next == null ? Format.Bold(p.GetCommand(channel.Guild) + " [uneditable]") : (p.GetCommand(channel.Guild)))}")); } diff --git a/src/NadekoBot/Resources/CommandStrings.resx b/src/NadekoBot/Resources/CommandStrings.resx index 1ef8f630..e8016c21 100644 --- a/src/NadekoBot/Resources/CommandStrings.resx +++ b/src/NadekoBot/Resources/CommandStrings.resx @@ -2332,7 +2332,7 @@ allusrmdls aum - Moves permission from one position to another. + Moves permission from one position to another in Permissions list. `{0}mp 2 4` @@ -2341,7 +2341,7 @@ moveperm mp - Removes a permission from a given position + Removes a permission from a given position in Permissions list. `{0}rp 1` @@ -2484,4 +2484,4 @@ `{0}setstream https://www.twitch.tv/masterkwoth Developing Nakedo` - \ No newline at end of file +