Merge pull request #1158 from Kwoth/dev

1.26a
This commit is contained in:
Master Kwoth 2017-03-28 11:58:09 +02:00 committed by GitHub
commit 741ba48c23
38 changed files with 7736 additions and 1021 deletions

View File

@ -5,8 +5,8 @@
[![nadeko1](https://cdn.discordapp.com/attachments/266240393639755778/281920134967328768/part2.png)](https://discordapp.com/oauth2/authorize?client_id=170254782546575360&scope=bot&permissions=66186303)
[![nadeko2](https://cdn.discordapp.com/attachments/266240393639755778/281920161311883264/part3.png)](http://nadekobot.readthedocs.io/en/latest/Commands%20List/)
##For Update, Help and Guidelines
## For Updates, Help and Guidelines
| [![twitter](https://cdn.discordapp.com/attachments/155726317222887425/252192520094613504/twiter_banner.JPG)](https://twitter.com/TheNadekoBot) | [![discord](https://cdn.discordapp.com/attachments/266240393639755778/281920766490968064/discord.png)](https://discord.gg/nadekobot) | [![Wiki](https://cdn.discordapp.com/attachments/266240393639755778/281920793330581506/datcord.png)](http://nadekobot.readthedocs.io/en/latest/)
| --- | --- | --- |
| Follow me on Twitter for updates. | Join my Discord server if you need help. | Read the Docs for hosting guides. |
| **Follow me on Twitter.** | **Join my Discord server for help.** | **Read the Docs for self-hosting.** |

View File

@ -1,6 +1,6 @@
You can support the project on patreon: <https://patreon.com/nadekobot> or paypal: <https://paypal.me/Kwoth>
##Table Of Contents
##Table of contents
- [Help](#help)
- [Administration](#administration)
- [ClashOfClans](#clashofclans)
@ -16,7 +16,7 @@ You can support the project on patreon: <https://patreon.com/nadekobot> or paypa
### Administration
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`.resetperms` | Resets the bot's permissions module on this server to the default value. **Requires Administrator server permission.** | `.resetperms`
`.delmsgoncmd` | Toggles the automatic deletion of the user's successful command message to prevent chat flood. **Requires Administrator server permission.** | `.delmsgoncmd`
@ -40,27 +40,27 @@ Command and aliases | Description | Usage
`.prune` `.clr` | `.prune` removes all Nadeko's messages in the last 100 messages. `.prune X` removes last `X` number of messages from the channel (up to 100). `.prune @Someone` removes all Someone's messages in the last 100 messages. `.prune @Someone X` removes last `X` number of 'Someone's' messages in the channel. | `.prune` or `.prune 5` or `.prune @Someone` or `.prune @Someone X`
`.mentionrole` `.menro` | Mentions every person from the provided role or roles (separated by a ',') on this server. Requires you to have the mention everyone permission. **Requires MentionEveryone server permission.** | `.menro RoleName`
`.donators` | List of the lovely people who donated to keep this project alive. | `.donators`
`.donadd` | Add a donator to the database. **Bot Owner Only** | `.donadd Donate Amount`
`.donadd` | Add a donator to the database. **Bot owner only** | `.donadd Donate Amount`
`.autoassignrole` `.aar` | Automaticaly assigns a specified role to every user who joins the server. **Requires ManageRoles server permission.** | `.aar` to disable, `.aar Role Name` to enable
`.languageset` `.langset` | Sets this server's response language. If bot's response strings have been translated to that language, bot will use that language in this server. Reset by using `default` as the locale name. Provide no arguments to see currently set language. | `.langset de-DE ` or `.langset default`
`.langsetdefault` `.langsetd` | Sets the bot's default response language. All servers which use a default locale will use this one. Setting to `default` will use the host's current culture. Provide no arguments to see currently set language. | `.langsetd en-US` or `.langsetd default`
`.languageslist` `.langli` | List of languages for which translation (or part of it) exist atm. | `.langli`
`.logserver` | Enables or Disables ALL log events. If enabled, all log events will log to this channel. **Requires Administrator server permission.** **Bot Owner Only** | `.logserver enable` or `.logserver disable`
`.logignore` | Toggles whether the `.logserver` command ignores this channel. Useful if you have hidden admin channel and public log channel. **Requires Administrator server permission.** **Bot Owner Only** | `.logignore`
`.logevents` | Shows a list of all events you can subscribe to with `.log` **Requires Administrator server permission.** **Bot Owner Only** | `.logevents`
`.log` | Toggles logging event. Disables it if it is active anywhere on the server. Enables if it isn't active. Use `.logevents` to see a list of all events you can subscribe to. **Requires Administrator server permission.** **Bot Owner Only** | `.log userpresence` or `.log userbanned`
`.migratedata` | Migrate data from old bot configuration **Bot Owner Only** | `.migratedata`
`.logserver` | Enables or Disables ALL log events. If enabled, all log events will log to this channel. **Requires Administrator server permission.** **Bot owner only** | `.logserver enable` or `.logserver disable`
`.logignore` | Toggles whether the `.logserver` command ignores this channel. Useful if you have hidden admin channel and public log channel. **Requires Administrator server permission.** **Bot owner only** | `.logignore`
`.logevents` | Shows a list of all events you can subscribe to with `.log` **Requires Administrator server permission.** **Bot owner only** | `.logevents`
`.log` | Toggles logging event. Disables it if it is active anywhere on the server. Enables if it isn't active. Use `.logevents` to see a list of all events you can subscribe to. **Requires Administrator server permission.** **Bot owner only** | `.log userpresence` or `.log userbanned`
`.migratedata` | Migrate data from old bot configuration **Bot owner only** | `.migratedata`
`.setmuterole` | Sets a name of the role which will be assigned to people who should be muted. Default is nadeko-mute. **Requires ManageRoles server permission.** | `.setmuterole Silenced`
`.mute` | Mutes a mentioned user both from speaking and chatting. **Requires ManageRoles server permission.** **Requires MuteMembers server permission.** | `.mute @Someone`
`.mute` | Mutes a mentioned user both from speaking and chatting. You can also specify time in minutes (up to 1440) for how long the user should be muted. **Requires ManageRoles server permission.** **Requires MuteMembers server permission.** | `.mute @Someone` or `.mute 30 @Someone`
`.unmute` | Unmutes a mentioned user previously muted with `.mute` command. **Requires ManageRoles server permission.** **Requires MuteMembers server permission.** | `.unmute @Someone`
`.chatmute` | Prevents a mentioned user from chatting in text channels. **Requires ManageRoles server permission.** | `.chatmute @Someone`
`.chatunmute` | Removes a mute role previously set on a mentioned user with `.chatmute` which prevented him from chatting in text channels. **Requires ManageRoles server permission.** | `.chatunmute @Someone`
`.voicemute` | Prevents a mentioned user from speaking in voice channels. **Requires MuteMembers server permission.** | `.voicemute @Someone`
`.voiceunmute` | Gives a previously voice-muted user a permission to speak. **Requires MuteMembers server permission.** | `.voiceunmute @Someguy`
`.rotateplaying` `.ropl` | Toggles rotation of playing status of the dynamic strings you previously specified. **Bot Owner Only** | `.ropl`
`.addplaying` `.adpl` | Adds a specified string to the list of playing strings to rotate. Supported placeholders: `%servers%`, `%users%`, `%playing%`, `%queued%`, `%time%`, `%shardid%`, `%shardcount%`, `%shardguilds%`. **Bot Owner Only** | `.adpl`
`.listplaying` `.lipl` | Lists all playing statuses with their corresponding number. **Bot Owner Only** | `.lipl`
`.removeplaying` `.rmpl` `.repl` | Removes a playing string on a given number. **Bot Owner Only** | `.rmpl`
`.rotateplaying` `.ropl` | Toggles rotation of playing status of the dynamic strings you previously specified. **Bot owner only** | `.ropl`
`.addplaying` `.adpl` | Adds a specified string to the list of playing strings to rotate. Supported placeholders: `%servers%`, `%users%`, `%playing%`, `%queued%`, `%time%`, `%shardid%`, `%shardcount%`, `%shardguilds%`. **Bot owner only** | `.adpl`
`.listplaying` `.lipl` | Lists all playing statuses with their corresponding number. **Bot owner only** | `.lipl`
`.removeplaying` `.rmpl` `.repl` | Removes a playing string on a given number. **Bot owner only** | `.rmpl`
`.antiraid` | Sets an anti-raid protection on the server. First argument is number of people which will trigger the protection. Second one is a time interval in which that number of people needs to join in order to trigger the protection, and third argument is punishment for those people (Kick, Ban, Mute) **Requires Administrator server permission.** | `.antiraid 5 20 Kick`
`.antispam` | Stops people from repeating same message X times in a row. You can specify to either mute, kick or ban the offenders. Max message count is 10. **Requires Administrator server permission.** | `.antispam 3 Mute` or `.antispam 4 Kick` or `.antispam 6 Ban`
`.antispamignore` | Toggles whether antispam ignores current channel. Antispam must be enabled. | `.antispamignore`
@ -73,19 +73,19 @@ Command and aliases | Description | Usage
`.togglexclsar` `.tesar` | Toggles whether the self-assigned roles are exclusive. (So that any person can have only one of the self assignable roles) **Requires ManageRoles server permission.** | `.tesar`
`.iam` | Adds a role to you that you choose. Role must be on a list of self-assignable roles. | `.iam Gamer`
`.iamnot` `.iamn` | Removes a role to you that you choose. Role must be on a list of self-assignable roles. | `.iamn Gamer`
`.fwmsgs` | Toggles forwarding of non-command messages sent to bot's DM to the bot owners **Bot Owner Only** | `.fwmsgs`
`.fwtoall` | Toggles whether messages will be forwarded to all bot owners or only to the first one specified in the credentials.json file **Bot Owner Only** | `.fwtoall`
`.connectshard` | Try (re)connecting a shard with a certain shardid when it dies. No one knows will it work. Keep an eye on the console for errors. **Bot Owner Only** | `.connectshard 2`
`.leave` | Makes Nadeko leave the server. Either server name or server ID is required. **Bot Owner Only** | `.leave 123123123331`
`.die` | Shuts the bot down. **Bot Owner Only** | `.die`
`.setname` `.newnm` | Gives the bot a new name. **Bot Owner Only** | `.newnm BotName`
`.setstatus` | Sets the bot's status. (Online/Idle/Dnd/Invisible) **Bot Owner Only** | `.setstatus Idle`
`.setavatar` `.setav` | Sets a new avatar image for the NadekoBot. Argument is a direct link to an image. **Bot Owner Only** | `.setav http://i.imgur.com/xTG3a1I.jpg`
`.setgame` | Sets the bots game. **Bot Owner Only** | `.setgame with snakes`
`.setstream` | Sets the bots stream. First argument is the twitch link, second argument is stream name. **Bot Owner Only** | `.setstream TWITCHLINK Hello`
`.send` | Sends a message to someone on a different server through the bot. Separate server and channel/user ids with `|` and prefix the channel id with `c:` and the user id with `u:`. **Bot Owner Only** | `.send serverid|c:channelid message` or `.send serverid|u:userid message`
`.announce` | Sends a message to all servers' default channel that bot is connected to. **Bot Owner Only** | `.announce Useless spam`
`.reloadimages` | Reloads images bot is using. Safe to use even when bot is being used heavily. **Bot Owner Only** | `.reloadimages`
`.fwmsgs` | Toggles forwarding of non-command messages sent to bot's DM to the bot owners **Bot owner only** | `.fwmsgs`
`.fwtoall` | Toggles whether messages will be forwarded to all bot owners or only to the first one specified in the credentials.json file **Bot owner only** | `.fwtoall`
`.connectshard` | Try (re)connecting a shard with a certain shardid when it dies. No one knows will it work. Keep an eye on the console for errors. **Bot owner only** | `.connectshard 2`
`.leave` | Makes Nadeko leave the server. Either server name or server ID is required. **Bot owner only** | `.leave 123123123331`
`.die` | Shuts the bot down. **Bot owner only** | `.die`
`.setname` `.newnm` | Gives the bot a new name. **Bot owner only** | `.newnm BotName`
`.setstatus` | Sets the bot's status. (Online/Idle/Dnd/Invisible) **Bot owner only** | `.setstatus Idle`
`.setavatar` `.setav` | Sets a new avatar image for the NadekoBot. Argument is a direct link to an image. **Bot owner only** | `.setav http://i.imgur.com/xTG3a1I.jpg`
`.setgame` | Sets the bots game. **Bot owner only** | `.setgame with snakes`
`.setstream` | Sets the bots stream. First argument is the twitch link, second argument is stream name. **Bot owner only** | `.setstream TWITCHLINK Hello`
`.send` | Sends a message to someone on a different server through the bot. Separate server and channel/user ids with `|` and prefix the channel id with `c:` and the user id with `u:`. **Bot owner only** | `.send serverid|c:channelid message` or `.send serverid|u:userid message`
`.announce` | Sends a message to all servers' default channel that bot is connected to. **Bot owner only** | `.announce Useless spam`
`.reloadimages` | Reloads images bot is using. Safe to use even when bot is being used heavily. **Bot owner only** | `.reloadimages`
`.greetdel` `.grdel` | Sets the time it takes (in seconds) for greet messages to be auto-deleted. Set it to 0 to disable automatic deletion. **Requires ManageServer server permission.** | `.greetdel 0` or `.greetdel 30`
`.greet` | Toggles anouncements on the current channel when someone joins the server. **Requires ManageServer server permission.** | `.greet`
`.greetmsg` | Sets a new join announcement message which will be shown in the server's channel. Type `%user%` if you want to mention the new member. Using it with no message will show the current greet message. You can use embed json from <http://nadekobot.xyz/embedbuilder/> instead of a regular text, if you want the message to be embedded. **Requires ManageServer server permission.** | `.greetmsg Welcome, %user%.`
@ -94,13 +94,15 @@ Command and aliases | Description | Usage
`.bye` | Toggles anouncements on the current channel when someone leaves the server. **Requires ManageServer server permission.** | `.bye`
`.byemsg` | Sets a new leave announcement message. Type `%user%` if you want to show the name the user who left. Type `%id%` to show id. Using this command with no message will show the current bye message. You can use embed json from <http://nadekobot.xyz/embedbuilder/> instead of a regular text, if you want the message to be embedded. **Requires ManageServer server permission.** | `.byemsg %user% has left.`
`.byedel` | Sets the time it takes (in seconds) for bye messages to be auto-deleted. Set it to `0` to disable automatic deletion. **Requires ManageServer server permission.** | `.byedel 0` or `.byedel 30`
`.vcrole` | Sets or resets a role which will be given to users who join the voice channel you're in when you run this command. Provide no role name to disable. You must be in a voice channel to run this command. **Requires ManageRoles server permission.** **Requires ManageChannels server permission.** | `.vcrole SomeRole` or `.vcrole`
`.vcrolelist` | Shows a list of currently set voice channel roles. | `.vcrolelist`
`.voice+text` `.v+t` | Creates a text channel for each voice channel only users in that voice channel can see. If you are server owner, keep in mind you will see them all the time regardless. **Requires ManageRoles server permission.** **Requires ManageChannels server permission.** | `.v+t`
`.cleanvplust` `.cv+t` | Deletes all text channels ending in `-voice` for which voicechannels are not found. Use at your own risk. **Requires ManageChannels server permission.** **Requires ManageRoles server permission.** | `.cleanv+t`
###### [Back to ToC](#table-of-contents)
### ClashOfClans
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`,createwar` `,cw` | Creates a new war by specifying a size (>10 and multiple of 5) and enemy clan name. **Requires ManageMessages server permission.** | `,cw 15 The Enemy Clan`
`,startwar` `,sw` | Starts a war with a given number. | `,sw 15`
@ -115,31 +117,33 @@ Command and aliases | Description | Usage
###### [Back to ToC](#table-of-contents)
### CustomReactions
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`.addcustreact` `.acr` | Add a custom reaction with a trigger and a response. Running this command in server requires the Administration permission. Running this command in DM is Bot Owner only and adds a new global custom reaction. Guide here: <http://nadekobot.readthedocs.io/en/latest/Custom%20Reactions/> | `.acr "hello" Hi there %user%`
`.listcustreact` `.lcr` | Lists global or server custom reactions (20 commands per page). Running the command in DM will list global custom reactions, while running it in server will list that server's custom reactions. Specifying `all` argument instead of the number will DM you a text file with a list of all custom reactions. | `.lcr 1` or `.lcr all`
`.listcustreactg` `.lcrg` | Lists global or server custom reactions (20 commands per page) grouped by trigger, and show a number of responses for each. Running the command in DM will list global custom reactions, while running it in server will list that server's custom reactions. | `.lcrg 1`
`.showcustreact` `.scr` | Shows a custom reaction's response on a given ID. | `.scr 1`
`.delcustreact` `.dcr` | Deletes a custom reaction on a specific index. If ran in DM, it is bot owner only and deletes a global custom reaction. If ran in a server, it requires Administration privileges and removes server custom reaction. | `.dcr 5`
`.crstatsclear` | Resets the counters on `.crstats`. You can specify a trigger to clear stats only for that trigger. **Bot Owner Only** | `.crstatsclear` or `.crstatsclear rng`
`.crdm` | Toggles whether the response message of the custom reaction will be sent as a direct message. | `.crad 44`
`.crad` | Toggles whether the message triggering the custom reaction will be automatically deleted. | `.crad 59`
`.crstatsclear` | Resets the counters on `.crstats`. You can specify a trigger to clear stats only for that trigger. **Bot owner only** | `.crstatsclear` or `.crstatsclear rng`
`.crstats` | Shows a list of custom reactions and the number of times they have been executed. Paginated with 10 per page. Use `.crstatsclear` to reset the counters. | `.crstats` or `.crstats 3`
###### [Back to ToC](#table-of-contents)
### Gambling
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`$raffle` | Prints a name and ID of a random user from the online list from the (optional) role. | `$raffle` or `$raffle RoleName`
`$cash` `$$$` | Check how much currency a person has. (Defaults to yourself) | `$$$` or `$$$ @SomeGuy`
`$give` | Give someone a certain amount of currency. | `$give 1 "@SomeGuy"`
`$award` | Awards someone a certain amount of currency. You can also specify a role name to award currency to all users in a role. **Bot Owner Only** | `$award 100 @person` or `$award 5 Role Of Gamblers`
`$take` | Takes a certain amount of currency from someone. **Bot Owner Only** | `$take 1 "@someguy"`
`$award` | Awards someone a certain amount of currency. You can also specify a role name to award currency to all users in a role. **Bot owner only** | `$award 100 @person` or `$award 5 Role Of Gamblers`
`$take` | Takes a certain amount of currency from someone. **Bot owner only** | `$take 1 "@someguy"`
`$betroll` `$br` | Bets a certain amount of currency and rolls a dice. Rolling over 66 yields x2 of your currency, over 90 - x4 and 100 x10. | `$br 5`
`$leaderboard` `$lb` | Displays the bot's currency leaderboard. | `$lb`
`$race` | Starts a new animal race. | `$race`
`$joinrace` `$jr` | Joins a new race. You can specify an amount of currency for betting (optional). You will get YourBet*(participants-1) back if you win. | `$jr` or `$jr 5`
`$startevent` | Starts one of the events seen on public nadeko. **Bot Owner Only** | `$startevent flowerreaction`
`$startevent` | Starts one of the events seen on public nadeko. **Bot owner only** | `$startevent flowerreaction`
`$roll` | Rolls 0-100. If you supply a number `X` it rolls up to 30 normal dice. If you split 2 numbers with letter `d` (`xdy`) it will roll `X` dice from 1 to `y`. `Y` can be a letter 'F' if you want to roll fate dice instead of dnd. | `$roll` or `$roll 7` or `$roll 3d5` or `$roll 5dF`
`$rolluo` | Rolls `X` normal dice (up to 30) unordered. If you split 2 numbers with letter `d` (`xdy`) it will roll `X` dice from 1 to `y`. | `$rolluo` or `$rolluo 7` or `$rolluo 3d5`
`$nroll` | Rolls in a given range. | `$nroll 5` (rolls 0-5) or `$nroll 5-15`
@ -147,10 +151,10 @@ Command and aliases | Description | Usage
`$shuffle` `$sh` | Reshuffles all cards back into the deck. | `$sh`
`$flip` | Flips coin(s) - heads or tails, and shows an image. | `$flip` or `$flip 3`
`$betflip` `$bf` | Bet to guess will the result be heads or tails. Guessing awards you 1.95x the currency you've bet (rounded up). Multiplier can be changed by the bot owner. | `$bf 5 heads` or `$bf 3 t`
`$slotstats` | Shows the total stats of the slot command for this bot's session. **Bot Owner Only** | `$slotstats`
`$slottest` | Tests to see how much slots payout for X number of plays. **Bot Owner Only** | `$slottest 1000`
`$slotstats` | Shows the total stats of the slot command for this bot's session. **Bot owner only** | `$slotstats`
`$slottest` | Tests to see how much slots payout for X number of plays. **Bot owner only** | `$slottest 1000`
`$slot` | Play Nadeko slots. Max bet is 999. 3 seconds cooldown per user. | `$slot 5`
`$claimwaifu` `$claim` | Claim a waifu for yourself by spending currency. You must spend atleast 10% more than her current value unless she set `$affinity` towards you. | `$claim 50 @Himesama`
`$claimwaifu` `$claim` | Claim a waifu for yourself by spending currency. You must spend at least 10% more than her current value unless she set `$affinity` towards you. | `$claim 50 @Himesama`
`$divorce` | Releases your claim on a specific waifu. You will get some of the money you've spent back unless that waifu has an affinity towards you. 6 hours cooldown. | `$divorce @CheatingSloot`
`$affinity` | Sets your affinity towards someone you want to be claimed by. Setting affinity will reduce their `$claim` on you by 20%. You can leave second argument empty to clear your affinity. 30 minutes cooldown. | `$affinity @MyHusband` or `$affinity`
`$waifus` `$waifulb` | Shows top 9 waifus. | `$waifus`
@ -159,7 +163,7 @@ Command and aliases | Description | Usage
###### [Back to ToC](#table-of-contents)
### Games
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`>choose` | Chooses a thing from a list of things | `>choose Get up;Sleep;Sleep more`
`>8ball` | Ask the 8ball a yes/no question. | `>8ball should I do something`
@ -167,7 +171,7 @@ Command and aliases | Description | Usage
`>rategirl` | Use the universal hot-crazy wife zone matrix to determine the girl's worth. It is everything young men need to know about women. At any moment in time, any woman you have previously located on this chart can vanish from that location and appear anywhere else on the chart. | `>rategirl @SomeGurl`
`>linux` | Prints a customizable Linux interjection | `>linux Spyware Windows`
`>leet` | Converts a text to leetspeak with 6 (1-6) severity levels | `>leet 3 Hello`
`>acrophobia` `>acro` | Starts an Acrophobia game. Second argment is optional round length in seconds. (default is 60) | `>acro` or `>acro 30`
`>acrophobia` `>acro` | Starts an Acrophobia game. Second argument is optional round length in seconds. (default is 60) | `>acro` or `>acro 30`
`>cleverbot` | Toggles cleverbot session. When enabled, the bot will reply to messages starting with bot mention in the server. Custom reactions starting with %mention% won't work if cleverbot is enabled. **Requires ManageMessages server permission.** | `>cleverbot`
`>hangmanlist` | Shows a list of hangman term types. | `> hangmanlist`
`>hangman` | Starts a game of hangman in the channel. Use `>hangmanlist` to see a list of available term types. Defaults to 'all'. | `>hangman` or `>hangman movies`
@ -180,9 +184,9 @@ Command and aliases | Description | Usage
`>pollend` | Stops active poll on this server and prints the results in this channel. **Requires ManageMessages server permission.** | `>pollend`
`>typestart` | Starts a typing contest. | `>typestart`
`>typestop` | Stops a typing contest on the current channel. | `>typestop`
`>typeadd` | Adds a new article to the typing contest. **Bot Owner Only** | `>typeadd wordswords`
`>typeadd` | Adds a new article to the typing contest. **Bot owner only** | `>typeadd wordswords`
`>typelist` | Lists added typing articles with their IDs. 15 per page. | `>typelist` or `>typelist 3`
`>typedel` | Deletes a typing article given the ID. **Bot Owner Only** | `>typedel 3`
`>typedel` | Deletes a typing article given the ID. **Bot owner only** | `>typedel 3`
`>tictactoe` `>ttt` | Starts a game of tic tac toe. Another user must run the command in the same channel in order to accept the challenge. Use numbers 1-9 to play. 15 seconds per move. | >ttt
`>trivia` `>t` | Starts a game of trivia. You can add `nohint` to prevent hints. First player to get to 10 points wins by default. You can specify a different number. 30 seconds per question. | `>t` or `>t 5 nohint`
`>tl` | Shows a current trivia leaderboard. | `>tl`
@ -191,19 +195,19 @@ Command and aliases | Description | Usage
###### [Back to ToC](#table-of-contents)
### Help
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`-modules` `-mdls` | Lists all bot modules. | `-modules`
`-commands` `-cmds` | List all of the bot's commands from a certain module. You can either specify the full name or only the first few letters of the module name. | `-commands Administration` or `-cmds Admin`
`-help` `-h` | Either shows a help for a single command, or DMs you help link if no arguments are specified. | `-h -cmds` or `-h`
`-hgit` | Generates the commandlist.md file. **Bot Owner Only** | `-hgit`
`-hgit` | Generates the commandlist.md file. **Bot owner only** | `-hgit`
`-readme` `-guide` | Sends a readme and a guide links to the channel. | `-readme` or `-guide`
`-donate` | Instructions for helping the project financially. | `-donate`
###### [Back to ToC](#table-of-contents)
### Music
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`!!next` `!!n` | Goes to the next song in the queue. You have to be in the same voice channel as the bot. You can skip multiple songs, but in that case songs will not be requeued if !!rcs or !!rpl is enabled. | `!!n` or `!!n 5`
`!!stop` `!!s` | Stops the music and clears the playlist. Stays in the channel. | `!!s`
@ -219,9 +223,9 @@ Command and aliases | Description | Usage
`!!shuffle` `!!sh` | Shuffles the current playlist. | `!!sh`
`!!playlist` `!!pl` | Queues up to 500 songs from a youtube playlist specified by a link, or keywords. | `!!pl playlist link or name`
`!!soundcloudpl` `!!scpl` | Queue a Soundcloud playlist using a link. | `!!scpl soundcloudseturl`
`!!localplaylst` `!!lopl` | Queues all songs from a directory. **Bot Owner Only** | `!!lopl C:/music/classical`
`!!localplaylst` `!!lopl` | Queues all songs from a directory. **Bot owner only** | `!!lopl C:/music/classical`
`!!radio` `!!ra` | Queues a radio stream from a link. It can be a direct mp3 radio stream, .m3u, .pls .asx or .xspf (Usage Video: <https://streamable.com/al54>) | `!!ra radio link here`
`!!local` `!!lo` | Queues a local file by specifying a full path. **Bot Owner Only** | `!!lo C:/music/mysong.mp3`
`!!local` `!!lo` | Queues a local file by specifying a full path. **Bot owner only** | `!!lo C:/music/mysong.mp3`
`!!remove` `!!rm` | Remove a song by its # in the queue, or 'all' to remove whole queue. | `!!rm 5`
`!!movesong` `!!ms` | Moves a song from one position to another. | `!!ms 5>3`
`!!setmaxqueue` `!!smq` | Sets a maximum queue size. Supply 0 or no argument to have no limit. | `!!smq 50` or `!!smq`
@ -239,7 +243,7 @@ Command and aliases | Description | Usage
###### [Back to ToC](#table-of-contents)
### NSFW
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`~hentai` | Shows a hentai image from a random website (gelbooru or danbooru or konachan or atfbooru or yandere) with a given tag. Tag is optional but preferred. Only 1 tag allowed. | `~hentai yuri`
`~autohentai` | Posts a hentai every X seconds with a random tag from the provided tags. Use `|` to separate tags. 20 seconds minimum. Provide no arguments to disable. **Requires ManageMessages channel permission.** | `~autohentai 30 yuri|tail|long_hair` or `~autohentai`
@ -257,7 +261,7 @@ Command and aliases | Description | Usage
###### [Back to ToC](#table-of-contents)
### Permissions
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`;verbose` `;v` | Sets whether to show when a command/module is blocked. | `;verbose true`
`;permrole` `;pr` | Sets a role which can change permissions. Supply no parameters to see the current one. Default is 'Nadeko'. | `;pr role`
@ -276,9 +280,9 @@ Command and aliases | Description | Usage
`;allrolemdls` `;arm` | Enable or disable all modules for a specific role. | `;arm [enable/disable] MyRole`
`;allusrmdls` `;aum` | Enable or disable all modules for a specific user. | `;aum enable @someone`
`;allsrvrmdls` `;asm` | Enable or disable all modules for your server. | `;asm [enable/disable]`
`;ubl` | Either [add]s or [rem]oves a user specified by a Mention or an ID from a blacklist. **Bot Owner Only** | `;ubl add @SomeUser` or `;ubl rem 12312312313`
`;cbl` | Either [add]s or [rem]oves a channel specified by an ID from a blacklist. **Bot Owner Only** | `;cbl rem 12312312312`
`;sbl` | Either [add]s or [rem]oves a server specified by a Name or an ID from a blacklist. **Bot Owner Only** | `;sbl add 12312321312` or `;sbl rem SomeTrashServer`
`;ubl` | Either [add]s or [rem]oves a user specified by a Mention or an ID from a blacklist. **Bot owner only** | `;ubl add @SomeUser` or `;ubl rem 12312312313`
`;cbl` | Either [add]s or [rem]oves a channel specified by an ID from a blacklist. **Bot owner only** | `;cbl rem 12312312312`
`;sbl` | Either [add]s or [rem]oves a server specified by a Name or an ID from a blacklist. **Bot owner only** | `;sbl add 12312321312` or `;sbl rem SomeTrashServer`
`;cmdcooldown` `;cmdcd` | Sets a cooldown per user for a command. Set it to 0 to remove the cooldown. | `;cmdcd "some cmd" 5`
`;allcmdcooldowns` `;acmdcds` | Shows a list of all commands and their respective cooldowns. | `;acmdcds`
`;srvrfilterinv` `;sfi` | Toggles automatic deletion of invites posted in the server. Does not affect the Bot Owner. | `;sfi`
@ -291,7 +295,7 @@ Command and aliases | Description | Usage
###### [Back to ToC](#table-of-contents)
### Pokemon
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`>attack` | Attacks a target with the given move. Use `>movelist` to see a list of moves your type can use. | `>attack "vine whip" @someguy`
`>movelist` `>ml` | Lists the moves you are able to use | `>ml`
@ -302,7 +306,7 @@ Command and aliases | Description | Usage
###### [Back to ToC](#table-of-contents)
### Searches
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`~weather` `~we` | Shows weather data for a specified city. You can also specify a country after a comma. | `~we Moscow, RU`
`~youtube` `~yt` | Searches youtubes and shows the first result | `~yt query`
@ -355,7 +359,7 @@ Command and aliases | Description | Usage
`~removestream` `~rms` | Removes notifications of a certain streamer from a certain platform on this channel. **Requires ManageMessages server permission.** | `~rms Twitch SomeGuy` or `~rms Beam SomeOtherGuy`
`~checkstream` `~cs` | Checks if a user is online on a certain streaming platform. | `~cs twitch MyFavStreamer`
`~translate` `~trans` | Translates from>to text. From the given language to the destination language. | `~trans en>fr Hello`
`~autotrans` `~at` | Starts automatic translation of all messages by users who set their `~atl` in this channel. You can set "del" argument to automatically delete all translated user messages. **Requires Administrator server permission.** **Bot Owner Only** | `~at` or `~at del`
`~autotrans` `~at` | Starts automatic translation of all messages by users who set their `~atl` in this channel. You can set "del" argument to automatically delete all translated user messages. **Requires Administrator server permission.** **Bot owner only** | `~at` or `~at del`
`~autotranslang` `~atl` | Sets your source and target language to be used with `~at`. Specify no arguments to remove previously set value. | `~atl en>fr`
`~translangs` | Lists the valid languages for translation. | `~translangs`
`~xkcd` | Shows a XKCD comic. No arguments will retrieve random one. Number argument will retrieve a specific comic, and "latest" will get the latest one. | `~xkcd` or `~xkcd 1400` or `~xkcd latest`
@ -363,12 +367,12 @@ Command and aliases | Description | Usage
###### [Back to ToC](#table-of-contents)
### Utility
Command and aliases | Description | Usage
Commands and aliases | Description | Usage
----------------|--------------|-------
`.rotaterolecolor` `.rrc` | Rotates a roles color on an interval with a list of supplied colors. First argument is interval in seconds (Minimum 60). Second argument is a role, followed by a space-separated list of colors in hex. Provide a rolename with a 0 interval to disable. **Requires ManageRoles server permission.** **Bot Owner Only** | `.rrc 60 MyLsdRole #ff0000 #00ff00 #0000ff` or `.rrc 0 MyLsdRole`
`.rotaterolecolor` `.rrc` | Rotates a roles color on an interval with a list of supplied colors. First argument is interval in seconds (Minimum 60). Second argument is a role, followed by a space-separated list of colors in hex. Provide a rolename with a 0 interval to disable. **Requires ManageRoles server permission.** **Bot owner only** | `.rrc 60 MyLsdRole #ff0000 #00ff00 #0000ff` or `.rrc 0 MyLsdRole`
`.togethertube` `.totube` | Creates a new room on <https://togethertube.com> and shows the link in the chat. | `.totube`
`.whosplaying` `.whpl` | Shows a list of users who are playing the specified game. | `.whpl Overwatch`
`.inrole` | Lists every person from the provided role or roles, separated with space, on this server. You can use role IDs, role names (in quotes if it has multiple words), or role mention If the list is too long for 1 message, you must have Manage Messages permission. | `.inrole Role` or `.inrole Role1 "Role 2" @role3`
`.inrole` | Lists every person from the specified role on this server. You can use role ID, role name. | `.inrole Some Role`
`.checkmyperms` | Checks your user-specific permissions on this channel. | `.checkmyperms`
`.userid` `.uid` | Shows user ID. | `.uid` or `.uid "@SomeGuy"`
`.channelid` `.cid` | Shows current channel ID. | `.cid`
@ -380,12 +384,14 @@ Command and aliases | Description | Usage
`.shardid` | Shows which shard is a certain guild on, by guildid. | `.shardid 117523346618318850`
`.stats` | Shows some basic stats for Nadeko. | `.stats`
`.showemojis` `.se` | Shows a name and a link to every SPECIAL emoji in the message. | `.se A message full of SPECIAL emojis`
`.listservers` | Lists servers the bot is on with some basic info. 15 per page. **Bot Owner Only** | `.listservers 3`
`.savechat` | Saves a number of messages to a text file and sends it to you. **Bot Owner Only** | `.savechat 150`
`.activity` | Checks for spammers. **Bot Owner Only** | `.activity`
`.listservers` | Lists servers the bot is on with some basic info. 15 per page. **Bot owner only** | `.listservers 3`
`.savechat` | Saves a number of messages to a text file and sends it to you. **Bot owner only** | `.savechat 150`
`.activity` | Checks for spammers. **Bot owner only** | `.activity`
`.calculate` `.calc` | Evaluate a mathematical expression. | `.calc 1+1`
`.calcops` | Shows all available operations in the `.calc` command | `.calcops`
`.scsc` | Starts an instance of cross server channel. You will get a token as a DM that other people will use to tune in to the same instance. **Bot Owner Only** | `.scsc`
`.alias` `.cmdmap` | Create a custom alias for a certain Nadeko command. Provide no alias to remove the existing one. **Requires Administrator server permission.** | `.alias allin $bf 100 h` or `.alias "linux thingy" >loonix Spyware Windows`
`.aliaslist` `.cmdmaplist` `.aliases` | Shows the list of currently set aliases. Paginated. | `.aliaslist` or `.aliaslist 3`
`.scsc` | Starts an instance of cross server channel. You will get a token as a DM that other people will use to tune in to the same instance. **Bot owner only** | `.scsc`
`.jcsc` | Joins current channel to an instance of cross server channel using the token. **Requires ManageServer server permission.** | `.jcsc TokenHere`
`.lcsc` | Leaves a cross server channel instance from this channel. **Requires ManageServer server permission.** | `.lcsc`
`.serverinfo` `.sinfo` | Shows info about the server the bot is on. If no channel is supplied, it defaults to current one. | `.sinfo Some Server`
@ -399,9 +405,9 @@ Command and aliases | Description | Usage
`...` | Shows a random quote with a specified name. | `... abc`
`.qsearch` | Shows a random quote for a keyword that contains any text specified in the search. | `.qsearch keyword text`
`..` | Adds a new quote with the specified name and message. | `.. sayhi Hi`
`.deletequote` `.delq` | Deletes a random quote with the specified keyword. You have to either be server Administrator or the creator of the quote to delete it. | `.delq abc`
`.deletequote` `.delq` | Deletes a quote with the specified ID. You have to be either server Administrator or the creator of the quote to delete it. | `.delq 123456`
`.delallq` `.daq` | Deletes all quotes on a specified keyword. **Requires Administrator server permission.** | `.delallq kek`
`.remind` | Sends a message to you or a channel after certain amount of time. First argument is `me`/`here`/'channelname'. Second argument is time in a descending order (mo>w>d>h>m) example: 1w5d3h10m. Third argument is a (multiword) message. | `.remind me 1d5h Do something` or `.remind #general 1m Start now!`
`.remindtemplate` | Sets message for when the remind is triggered. Available placeholders are `%user%` - user who ran the command, `%message%` - Message specified in the remind, `%target%` - target channel of the remind. **Bot Owner Only** | `.remindtemplate %user%, do %message%!`
`.remindtemplate` | Sets message for when the remind is triggered. Available placeholders are `%user%` - user who ran the command, `%message%` - Message specified in the remind, `%target%` - target channel of the remind. **Bot owner only** | `.remindtemplate %user%, do %message%!`
`.convertlist` | List of the convertible dimensions and currencies. | `.convertlist`
`.convert` | Convert quantities. Use `.convertlist` to see supported dimensions and currencies. | `.convert m km 1000`

View File

@ -1,3 +1,6 @@
{
"projects": [ "Discord.Net/src", "src" ]
"projects": [ "Discord.Net/src", "src" ],
"sdk": {
"version": "1.0.0-preview2-1-003177"
}
}

View File

@ -24,7 +24,10 @@ namespace NadekoBot.Modules.Administration
{"en-US", "English, United States"},
{"fr-FR", "French, France"},
{"de-DE", "German, Germany"},
{"he-IL", "Hebrew, Israel" },
{"it-IT", "Italian, Italy" },
//{"ja-JP", "Japanese, Japan"},
{"ko-KR", "Korean, Korea" },
{"nb-NO", "Norwegian (bokmål), Norway"},
{"pl-PL", "Polish, Poland" },
{"pt-BR", "Portuguese, Brazil"},

View File

@ -188,7 +188,19 @@ namespace NadekoBot.Modules.CustomReactions
.WithDescription(string.Join("\n", customReactions.OrderBy(cr => cr.Trigger)
.Skip((curPage - 1) * 20)
.Take(20)
.Select(cr => $"`#{cr.Id}` `{GetText("trigger")}:` {cr.Trigger}"))), lastPage)
.Select(cr =>
{
var str = $"`#{cr.Id}` {cr.Trigger}";
if (cr.AutoDeleteTrigger)
{
str = "🗑" + str;
}
if (cr.DmResponse)
{
str = "📪" + str;
}
return str;
}))), lastPage)
.ConfigureAwait(false);
}

View File

@ -151,7 +151,7 @@ namespace NadekoBot.Modules.Games
{
public static List<TypingArticle> TypingArticles { get; } = new List<TypingArticle>();
private const string _typingArticlesPath = "data/typing_articles.json";
private const string _typingArticlesPath = "data/typing_articles2.json";
static SpeedTypingCommands()
{

View File

@ -25,6 +25,7 @@ namespace NadekoBot.Modules.Games.Trivia
private int questionDurationMiliseconds { get; } = 30000;
private int hintTimeoutMiliseconds { get; } = 6000;
public bool ShowHints { get; }
public bool IsPokemon { get; }
private CancellationTokenSource triviaCancelSource { get; set; }
public TriviaQuestion CurrentQuestion { get; private set; }
@ -37,7 +38,7 @@ namespace NadekoBot.Modules.Games.Trivia
public int WinRequirement { get; }
public TriviaGame(IGuild guild, ITextChannel channel, bool showHints, int winReq)
public TriviaGame(IGuild guild, ITextChannel channel, bool showHints, int winReq, bool isPokemon)
{
_log = LogManager.GetCurrentClassLogger();
@ -45,6 +46,7 @@ namespace NadekoBot.Modules.Games.Trivia
Guild = guild;
Channel = channel;
WinRequirement = winReq;
IsPokemon = isPokemon;
}
private string GetText(string key, params object[] replacements) =>
@ -61,7 +63,7 @@ namespace NadekoBot.Modules.Games.Trivia
triviaCancelSource = new CancellationTokenSource();
// load question
CurrentQuestion = TriviaQuestionPool.Instance.GetRandomQuestion(OldQuestions);
CurrentQuestion = TriviaQuestionPool.Instance.GetRandomQuestion(OldQuestions, IsPokemon);
if (string.IsNullOrWhiteSpace(CurrentQuestion?.Answer) || string.IsNullOrWhiteSpace(CurrentQuestion.Question))
{
await Channel.SendErrorAsync(GetText("trivia_game"), GetText("failed_loading_question")).ConfigureAwait(false);
@ -76,7 +78,8 @@ namespace NadekoBot.Modules.Games.Trivia
questionEmbed = new EmbedBuilder().WithOkColor()
.WithTitle(GetText("trivia_game"))
.AddField(eab => eab.WithName(GetText("category")).WithValue(CurrentQuestion.Category))
.AddField(eab => eab.WithName(GetText("question")).WithValue(CurrentQuestion.Question));
.AddField(eab => eab.WithName(GetText("question")).WithValue(CurrentQuestion.Question))
.WithImageUrl(CurrentQuestion.ImageUrl);
questionMessage = await Channel.EmbedAsync(questionEmbed).ConfigureAwait(false);
}
@ -128,8 +131,21 @@ namespace NadekoBot.Modules.Games.Trivia
NadekoBot.Client.MessageReceived -= PotentialGuess;
}
if (!triviaCancelSource.IsCancellationRequested)
try { await Channel.SendErrorAsync(GetText("trivia_game"), GetText("trivia_times_up", Format.Bold(CurrentQuestion.Answer))).ConfigureAwait(false); } catch (Exception ex) { _log.Warn(ex); }
await Task.Delay(2000).ConfigureAwait(false);
{
try
{
await Channel.EmbedAsync(new EmbedBuilder().WithErrorColor()
.WithTitle(GetText("trivia_game"))
.WithDescription(GetText("trivia_times_up", Format.Bold(CurrentQuestion.Answer)))
.WithImageUrl(CurrentQuestion.AnswerImageUrl))
.ConfigureAwait(false);
}
catch (Exception ex)
{
_log.Warn(ex);
}
}
await Task.Delay(5000).ConfigureAwait(false);
}
}
@ -186,10 +202,13 @@ namespace NadekoBot.Modules.Games.Trivia
ShouldStopGame = true;
try
{
await Channel.SendConfirmAsync(GetText("trivia_game"),
GetText("trivia_win",
await Channel.EmbedAsync(new EmbedBuilder().WithOkColor()
.WithTitle(GetText("trivia_game"))
.WithDescription(GetText("trivia_win",
guildUser.Mention,
Format.Bold(CurrentQuestion.Answer))).ConfigureAwait(false);
Format.Bold(CurrentQuestion.Answer)))
.WithImageUrl(CurrentQuestion.AnswerImageUrl))
.ConfigureAwait(false);
}
catch
{
@ -200,9 +219,12 @@ namespace NadekoBot.Modules.Games.Trivia
await CurrencyHandler.AddCurrencyAsync(guildUser, "Won trivia", reward, true).ConfigureAwait(false);
return;
}
await Channel.SendConfirmAsync(GetText("trivia_game"),
GetText("trivia_guess", guildUser.Mention, Format.Bold(CurrentQuestion.Answer))).ConfigureAwait(false);
await Channel.EmbedAsync(new EmbedBuilder().WithOkColor()
.WithTitle(GetText("trivia_game"))
.WithDescription(GetText("trivia_guess", guildUser.Mention, Format.Bold(CurrentQuestion.Answer)))
.WithImageUrl(CurrentQuestion.AnswerImageUrl))
.ConfigureAwait(false);
}
catch (Exception ex) { _log.Warn(ex); }
}

View File

@ -20,13 +20,17 @@ namespace NadekoBot.Modules.Games.Trivia
public string Category { get; set; }
public string Question { get; set; }
public string ImageUrl { get; set; }
public string AnswerImageUrl { get; set; }
public string Answer { get; set; }
public TriviaQuestion(string q, string a, string c)
public TriviaQuestion(string q, string a, string c, string img = null, string answerImage = null)
{
this.Question = q;
this.Answer = a;
this.Category = c;
this.ImageUrl = img;
this.AnswerImageUrl = answerImage ?? img;
}
public string GetHint() => Scramble(Answer);

View File

@ -1,10 +1,9 @@
using NadekoBot.Extensions;
using NadekoBot.Services;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.IO;
using System.Linq;
@ -12,27 +11,50 @@ namespace NadekoBot.Modules.Games.Trivia
{
public class TriviaQuestionPool
{
public class PokemonNameId
{
public int Id { get; set; }
public string Name { get; set; }
}
private static TriviaQuestionPool _instance;
public static TriviaQuestionPool Instance { get; } = _instance ?? (_instance = new TriviaQuestionPool());
private const string questionsFile = "data/trivia_questions.json";
private const string pokemonMapPath = "data/pokemon/name-id_map4.json";
private readonly int maxPokemonId;
private Random rng { get; } = new NadekoRandom();
private TriviaQuestion[] pool { get; }
private ImmutableDictionary<int, string> map { get; }
static TriviaQuestionPool() { }
private TriviaQuestionPool()
{
pool = JsonConvert.DeserializeObject<TriviaQuestion[]>(File.ReadAllText(questionsFile));
map = JsonConvert.DeserializeObject<PokemonNameId[]>(File.ReadAllText(pokemonMapPath))
.ToDictionary(x => x.Id, x => x.Name)
.ToImmutableDictionary();
maxPokemonId = 721; //xd
}
public TriviaQuestion GetRandomQuestion(HashSet<TriviaQuestion> exclude)
public TriviaQuestion GetRandomQuestion(HashSet<TriviaQuestion> exclude, bool isPokemon)
{
if (pool.Length == 0)
return null;
if (isPokemon)
{
var num = rng.Next(1, maxPokemonId + 1);
return new TriviaQuestion("Who's That Pokémon?",
map[num].ToTitleCase(),
"Pokemon",
$@"http://nadekobot.xyz/images/pokemon/shadows/{num}.png",
$@"http://nadekobot.xyz/images/pokemon/real/{num}.png");
}
TriviaQuestion randomQuestion;
while (exclude.Contains(randomQuestion = pool[rng.Next(0, pool.Length)])) ;

View File

@ -19,17 +19,23 @@ namespace NadekoBot.Modules.Games
[NadekoCommand, Usage, Description, Aliases]
[RequireContext(ContextType.Guild)]
public Task Trivia([Remainder] string additionalArgs = "")
=> Trivia(10, additionalArgs);
=> InternalTrivia(10, additionalArgs);
[NadekoCommand, Usage, Description, Aliases]
[RequireContext(ContextType.Guild)]
public async Task Trivia(int winReq = 10, [Remainder] string additionalArgs = "")
public Task Trivia(int winReq = 10, [Remainder] string additionalArgs = "")
=> InternalTrivia(winReq, additionalArgs);
public async Task InternalTrivia(int winReq, string additionalArgs = "")
{
var channel = (ITextChannel)Context.Channel;
var showHints = !additionalArgs.Contains("nohint");
additionalArgs = additionalArgs?.Trim()?.ToLowerInvariant();
var trivia = new TriviaGame(channel.Guild, channel, showHints, winReq);
var showHints = !additionalArgs.Contains("nohint");
var isPokemon = additionalArgs.Contains("pokemon");
var trivia = new TriviaGame(channel.Guild, channel, showHints, winReq, isPokemon);
if (RunningTrivias.TryAdd(channel.Guild.Id, trivia))
{
try
@ -41,9 +47,9 @@ namespace NadekoBot.Modules.Games
RunningTrivias.TryRemove(channel.Guild.Id, out trivia);
await trivia.EnsureStopped().ConfigureAwait(false);
}
return;
return;
}
await Context.Channel.SendErrorAsync(GetText("trivia_already_running") + "\n" + trivia.CurrentQuestion)
.ConfigureAwait(false);
}

View File

@ -163,7 +163,7 @@ namespace NadekoBot.Modules.Music.Classes
}
if (RepeatPlaylist)
if (RepeatPlaylist & !RepeatSong)
AddSong(CurrentSong, CurrentSong.QueuerName);
if (RepeatSong)

View File

@ -99,8 +99,8 @@ namespace NadekoBot.Modules.Music.Classes
Console.WriteLine(@"You have not properly installed or configured FFMPEG.
Please install and configure FFMPEG to play music.
Check the guides for your platform on how to setup ffmpeg correctly:
Windows Guide: https://goo.gl/SCv72y
Linux Guide: https://goo.gl/rRhjCp");
Windows Guide: https://goo.gl/OjKk8F
Linux Guide: https://goo.gl/ShjCUo");
Console.ForegroundColor = oldclr;
}
catch (Exception ex)

View File

@ -203,7 +203,7 @@ namespace NadekoBot.Modules.Permissions
[RequireContext(ContextType.Guild)]
public async Task ListPerms(int page = 1)
{
if (page < 1 || page > 4)
if (page < 1)
return;
PermissionCache permCache;

View File

@ -1,78 +1,110 @@
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Discord.Commands;
using Discord;
using NadekoBot.Attributes;
using NadekoBot.Modules.Utility.Models;
using Newtonsoft.Json;
//using System.Collections.Generic;
//using System.Linq;
//using System.Net.Http;
//using System.Threading.Tasks;
//using Discord.Commands;
//using NadekoBot.Attributes;
//using NadekoBot.Modules.Utility.Models;
//using Newtonsoft.Json;
//using System.Threading;
//using System;
//using System.Collections.Immutable;
namespace NadekoBot.Modules.Utility
{
public partial class Utility
{
//[Group]
//public class PatreonCommands : NadekoSubmodule
//{
// [NadekoCommand, Usage, Description, Aliases]
// [RequireContext(ContextType.Guild)]
// public async Task ClaimPatreonRewards([Remainder] string arg)
// {
// var pledges = await GetPledges2();
// }
//namespace NadekoBot.Modules.Utility
//{
// public partial class Utility
// {
// [Group]
// public class PatreonCommands : NadekoSubmodule
// {
// [NadekoCommand, Usage, Description, Aliases]
// public async Task ClaimPatreonRewards()
// {
// var patreon = PatreonThingy.Instance;
// private static async Task<Pledge[]> GetPledges()
// {
// var pledges = new List<Pledge>();
// using (var http = new HttpClient())
// {
// http.DefaultRequestHeaders.Clear();
// http.DefaultRequestHeaders.Add("Authorization", "Bearer " + NadekoBot.Credentials.PatreonAccessToken);
// var data = new PatreonData()
// {
// Links = new Links()
// {
// Next = "https://api.patreon.com/oauth2/api/campaigns/334038/pledges"
// }
// };
// do
// {
// var res =
// await http.GetStringAsync(data.Links.Next)
// .ConfigureAwait(false);
// data = JsonConvert.DeserializeObject<PatreonData>(res);
// pledges.AddRange(data.Data);
// } while (!string.IsNullOrWhiteSpace(data.Links.Next));
// }
// return pledges.Where(x => string.IsNullOrWhiteSpace(x.Attributes.declined_since)).ToArray();
// }
// var pledges = (await patreon.GetPledges().ConfigureAwait(false))
// .OrderByDescending(x => x.Reward.attributes.amount_cents);
// private static async Task<Pledge[]> GetPledges2()
// {
// var pledges = new List<Pledge>();
// using (var http = new HttpClient())
// {
// http.DefaultRequestHeaders.Clear();
// http.DefaultRequestHeaders.Add("Authorization", "Bearer " + NadekoBot.Credentials.PatreonAccessToken);
// var data = new PatreonData()
// {
// Links = new Links()
// {
// Next = "https://api.patreon.com/oauth2/api/current_user/campaigns?include=pledges"
// }
// };
// do
// {
// var res =
// await http.GetStringAsync(data.Links.Next)
// .ConfigureAwait(false);
// data = JsonConvert.DeserializeObject<PatreonData>(res);
// pledges.AddRange(data.Data);
// } while (!string.IsNullOrWhiteSpace(data.Links.Next));
// }
// return pledges.Where(x => string.IsNullOrWhiteSpace(x.Attributes.declined_since)).ToArray();
// }
//}
}
}
// if (pledges == null)
// {
// await ReplyErrorLocalized("pledges_loading").ConfigureAwait(false);
// return;
// }
// }
// }
// public class PatreonThingy
// {
// public static PatreonThingy _instance = new PatreonThingy();
// public static PatreonThingy Instance => _instance;
// private readonly SemaphoreSlim getPledgesLocker = new SemaphoreSlim(1, 1);
// private ImmutableArray<PatreonUserAndReward> pledges;
// static PatreonThingy() { }
// public async Task<ImmutableArray<PatreonUserAndReward>> GetPledges()
// {
// try
// {
// await LoadPledges().ConfigureAwait(false);
// return pledges;
// }
// catch (OperationCanceledException)
// {
// return pledges;
// }
// }
// public async Task LoadPledges()
// {
// await getPledgesLocker.WaitAsync(1000).ConfigureAwait(false);
// try
// {
// var rewards = new List<PatreonPledge>();
// var users = new List<PatreonUser>();
// using (var http = new HttpClient())
// {
// http.DefaultRequestHeaders.Clear();
// http.DefaultRequestHeaders.Add("Authorization", "Bearer " + NadekoBot.Credentials.PatreonAccessToken);
// var data = new PatreonData()
// {
// Links = new PatreonDataLinks()
// {
// next = "https://api.patreon.com/oauth2/api/campaigns/334038/pledges"
// }
// };
// do
// {
// var res = await http.GetStringAsync(data.Links.next)
// .ConfigureAwait(false);
// data = JsonConvert.DeserializeObject<PatreonData>(res);
// var pledgers = data.Data.Where(x => x["type"].ToString() == "pledge");
// rewards.AddRange(pledgers.Select(x => JsonConvert.DeserializeObject<PatreonPledge>(x.ToString()))
// .Where(x => x.attributes.declined_since == null));
// users.AddRange(data.Included
// .Where(x => x["type"].ToString() == "user")
// .Select(x => JsonConvert.DeserializeObject<PatreonUser>(x.ToString())));
// } while (!string.IsNullOrWhiteSpace(data.Links.next));
// }
// pledges = rewards.Join(users, (r) => r.relationships?.patron?.data?.id, (u) => u.id, (x, y) => new PatreonUserAndReward()
// {
// User = y,
// Reward = x,
// }).ToImmutableArray();
// }
// finally
// {
// var _ = Task.Run(async () =>
// {
// await Task.Delay(TimeSpan.FromMinutes(5)).ConfigureAwait(false);
// getPledgesLocker.Release();
// });
// }
// }
// }
// }
//}

View File

@ -97,7 +97,7 @@ namespace NadekoBot.Modules.Utility
if (keywordquote == null)
return;
await Context.Channel.SendMessageAsync("💬 " + keyword.ToLowerInvariant() + ": " +
await Context.Channel.SendMessageAsync($"`#{keywordquote.Id}` 💬 " + keyword.ToLowerInvariant() + ": " +
keywordquote.Text.SanitizeMentions());
}
@ -176,4 +176,4 @@ namespace NadekoBot.Modules.Utility
}
}
}
}
}

View File

@ -1,4 +1,5 @@
using System;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@ -6,32 +7,22 @@ using System.Threading.Tasks;
namespace NadekoBot.Modules.Utility.Models
{
public class PatreonData
{
public Pledge[] Data { get; set; }
public Links Links { get; set; }
public JObject[] Included { get; set; }
public JObject[] Data { get; set; }
public PatreonDataLinks Links { get; set; }
}
public class Attributes
public class PatreonDataLinks
{
public int amount_cents { get; set; }
public string created_at { get; set; }
public string declined_since { get; set; }
public bool is_twitch_pledge { get; set; }
public bool patron_pays_fees { get; set; }
public int pledge_cap_cents { get; set; }
public string first { get; set; }
public string next { get; set; }
}
public class Pledge
public class PatreonUserAndReward
{
public Attributes Attributes { get; set; }
public int Id { get; set; }
}
public class Links
{
public string First { get; set; }
public string Next { get; set; }
public PatreonUser User { get; set; }
public PatreonPledge Reward { get; set; }
}
}

View File

@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NadekoBot.Modules.Utility.Models
{
public class Attributes
{
public int amount_cents { get; set; }
public string created_at { get; set; }
public object declined_since { get; set; }
public bool is_twitch_pledge { get; set; }
public bool patron_pays_fees { get; set; }
public int pledge_cap_cents { get; set; }
}
public class Address
{
public object data { get; set; }
}
public class Data
{
public string id { get; set; }
public string type { get; set; }
}
public class Links
{
public string related { get; set; }
}
public class Creator
{
public Data data { get; set; }
public Links links { get; set; }
}
public class Patron
{
public Data data { get; set; }
public Links links { get; set; }
}
public class Reward
{
public Data data { get; set; }
public Links links { get; set; }
}
public class Relationships
{
public Address address { get; set; }
public Creator creator { get; set; }
public Patron patron { get; set; }
public Reward reward { get; set; }
}
public class PatreonPledge
{
public Attributes attributes { get; set; }
public string id { get; set; }
public Relationships relationships { get; set; }
public string type { get; set; }
}
}

View File

@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NadekoBot.Modules.Utility.Models
{
public class DiscordConnection
{
public string user_id { get; set; }
}
public class SocialConnections
{
public object deviantart { get; set; }
public DiscordConnection discord { get; set; }
public object facebook { get; set; }
public object spotify { get; set; }
public object twitch { get; set; }
public object twitter { get; set; }
public object youtube { get; set; }
}
public class UserAttributes
{
public string about { get; set; }
public string created { get; set; }
public object discord_id { get; set; }
public string email { get; set; }
public object facebook { get; set; }
public object facebook_id { get; set; }
public string first_name { get; set; }
public string full_name { get; set; }
public int gender { get; set; }
public bool has_password { get; set; }
public string image_url { get; set; }
public bool is_deleted { get; set; }
public bool is_nuked { get; set; }
public bool is_suspended { get; set; }
public string last_name { get; set; }
public SocialConnections social_connections { get; set; }
public int status { get; set; }
public string thumb_url { get; set; }
public object twitch { get; set; }
public string twitter { get; set; }
public string url { get; set; }
public string vanity { get; set; }
public object youtube { get; set; }
}
public class Campaign
{
public Data data { get; set; }
public Links links { get; set; }
}
public class UserRelationships
{
public Campaign campaign { get; set; }
}
public class PatreonUser
{
public UserAttributes attributes { get; set; }
public string id { get; set; }
public UserRelationships relationships { get; set; }
public string type { get; set; }
}
}

View File

@ -250,7 +250,7 @@ namespace NadekoBot.Resources {
}
/// <summary>
/// Looks up a localized string similar to Sucessfully created role {0}.
/// Looks up a localized string similar to Successfully created role {0}.
/// </summary>
public static string administration_cr {
get {
@ -340,7 +340,7 @@ namespace NadekoBot.Resources {
}
/// <summary>
/// Looks up a localized string similar to Sucessfully added a new donator.Total donated amount from this user: {0} 👑.
/// Looks up a localized string similar to Successfully added a new donator.Total donated amount from this user: {0} 👑.
/// </summary>
public static string administration_donadd {
get {
@ -1351,7 +1351,7 @@ namespace NadekoBot.Resources {
}
/// <summary>
/// Looks up a localized string similar to Sucessfully added role {0} to user {1}.
/// Looks up a localized string similar to Successfully added role {0} to user {1}.
/// </summary>
public static string administration_setrole {
get {

View File

@ -505,13 +505,13 @@ Grund: {1}</value>
<value>Ereignis {0} wird in diesem Kanal aufgezeichnet.</value>
</data>
<data name="administration_log_all" xml:space="preserve">
<value>Alle Ereignise wird in diesem Kanal aufgezeichnet.</value>
<value>Alle Ereignisse wird in diesem Kanal aufgezeichnet.</value>
</data>
<data name="administration_log_disabled" xml:space="preserve">
<value>Aufzeichnungen wurden deaktiviert.</value>
</data>
<data name="administration_log_events" xml:space="preserve">
<value>Aufzeichnungs Ereignise die Sie abonnieren können:</value>
<value>Aufzeichnungs Ereignisse die Sie abonnieren können:</value>
</data>
<data name="administration_log_ignore" xml:space="preserve">
<value>Aufzeichnungen werden {0} ignorieren</value>
@ -1280,12 +1280,12 @@ Vergessen Sie bitte nicht, Ihren Discord-Namen oder Ihre ID in der Nachricht zu
<value>Währungsgeneration in diesem Kanal aktiviert.</value>
</data>
<data name="games_curgen_pl" xml:space="preserve">
<value>{0} zufällige {1} sind erschienen!</value>
<value>{0} zufällige {1} sind erschienen! </value>
<comment>plural
Fuzzy</comment>
</data>
<data name="games_curgen_sn" xml:space="preserve">
<value>Eine zufällige {0} ist erschienen!</value>
<value>Eine zufällige {0} ist erschienen! </value>
<comment>Fuzzy</comment>
</data>
<data name="games_failed_loading_question" xml:space="preserve">
@ -1321,7 +1321,7 @@ Fuzzy</comment>
<comment>Kwoth picked 5*</comment>
</data>
<data name="games_planted" xml:space="preserve">
<value>{0} pflanzte {1}</value>
<value>{0} pflanzte {1}! </value>
<comment>Kwoth planted 5*</comment>
</data>
<data name="games_trivia_already_running" xml:space="preserve">
@ -2328,10 +2328,10 @@ ID des Besitzers: {2}</value>
<comment>Fuzzy</comment>
</data>
<data name="games_pick_pl" xml:space="preserve">
<value>sammel sie durch das Schreiben von `{0}pick`</value>
<value>Sammel sie durch das Schreiben von `{0}pick`</value>
</data>
<data name="games_pick_sn" xml:space="preserve">
<value>sammel sie durch das Schreiben von `{0}pick</value>
<value>Sammel sie durch das Schreiben von `{0}pick</value>
</data>
<data name="gambling_no_users_found" xml:space="preserve">
<value>Kein Benutzer gefunden.</value>

View File

@ -364,7 +364,7 @@ Reason: {1}</value>
<value>Content</value>
</data>
<data name="administration_cr" xml:space="preserve">
<value>Sucessfully created role {0}</value>
<value>Successfully created role {0}</value>
</data>
<data name="administration_createtextchan" xml:space="preserve">
<value>Text channel {0} created.</value>
@ -394,7 +394,7 @@ Reason: {1}</value>
<value>DM from</value>
</data>
<data name="administration_donadd" xml:space="preserve">
<value>Sucessfully added a new donator.Total donated amount from this user: {0} 👑</value>
<value>Successfully added a new donator.Total donated amount from this user: {0} 👑</value>
</data>
<data name="administration_donators" xml:space="preserve">
<value>Thanks to the people listed below for making this project happen!</value>
@ -701,7 +701,7 @@ Reason: {1}</value>
<value>You now have {0} role.</value>
</data>
<data name="administration_setrole" xml:space="preserve">
<value>Sucessfully added role {0} to user {1}</value>
<value>Successfully added role {0} to user {1}</value>
</data>
<data name="administration_setrole_err" xml:space="preserve">
<value>Failed to add role. I have insufficient permissions.</value>

View File

@ -140,7 +140,6 @@
</data>
<data name="clashofclans_claim_expired" xml:space="preserve">
<value>La demande de la part de @{0} pour une guerre contre {1} a expiré.</value>
<comment>Fuzzy</comment>
</data>
<data name="clashofclans_enemy" xml:space="preserve">
<value>Ennemi</value>
@ -153,11 +152,9 @@
</data>
<data name="clashofclans_invalid_size" xml:space="preserve">
<value>La taille de la guerre n&apos;est pas valide.</value>
<comment>Fuzzy</comment>
</data>
<data name="clashofclans_list_active_wars" xml:space="preserve">
<value>Liste des guerres en cours</value>
<comment>Fuzzy</comment>
</data>
<data name="clashofclans_not_claimed" xml:space="preserve">
<value>non réclamé</value>
@ -210,7 +207,6 @@
</data>
<data name="customreactions_no_found" xml:space="preserve">
<value>Aucune réaction personnalisée trouvée.</value>
<comment>Fuzzy</comment>
</data>
<data name="customreactions_no_found_id" xml:space="preserve">
<value>Aucune réaction personnalisée ne correspond à cet ID.</value>
@ -473,11 +469,9 @@ Raison: {1}</value>
</data>
<data name="administration_kicked_user" xml:space="preserve">
<value>Utilisateur expulsé</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_lang_list" xml:space="preserve">
<value>Listes des langues</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_lang_set" xml:space="preserve">
<value>La langue du serveur est désormais {0} - {1}</value>
@ -536,11 +530,9 @@ Raison: {1}</value>
</data>
<data name="administration_msg_del" xml:space="preserve">
<value>Message supprimé dans #{0}</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_msg_update" xml:space="preserve">
<value>Mise à jour du message dans #{0}</value>
<comment>Fuzzy</comment>
<value>Message mis-à-jour dans #{0}</value>
</data>
<data name="administration_muted_pl" xml:space="preserve">
<value>Tous les utilisateurs sont maintenant muets.</value>
@ -561,19 +553,15 @@ Raison: {1}</value>
</data>
<data name="administration_new_msg" xml:space="preserve">
<value>Nouveau message</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_new_nick" xml:space="preserve">
<value>Nouveau pseudonyme</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_new_topic" xml:space="preserve">
<value>Nouveau sujet</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_nick_change" xml:space="preserve">
<value>Pseudonyme changé</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_no_server" xml:space="preserve">
<value>Impossible de trouver ce serveur</value>
@ -584,15 +572,12 @@ Raison: {1}</value>
</data>
<data name="administration_old_msg" xml:space="preserve">
<value>Ancien message</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_old_nick" xml:space="preserve">
<value>Ancien pseudonyme</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_old_topic" xml:space="preserve">
<value>Ancien sujet</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_perms" xml:space="preserve">
<value>Erreur. Je ne dois sûrement pas posséder les permissions suffisantes.</value>
@ -602,7 +587,6 @@ Raison: {1}</value>
</data>
<data name="administration_prot_active" xml:space="preserve">
<value>Protections actives</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_prot_disable" xml:space="preserve">
<value>{0} a été **désactivé** sur ce serveur.</value>
@ -615,7 +599,6 @@ Raison: {1}</value>
</data>
<data name="administration_prot_none" xml:space="preserve">
<value>Aucune protection activée.</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_raid_cnt" xml:space="preserve">
<value>Le seuil d&apos;utilisateurs doit être entre {0} et {1}.</value>
@ -779,11 +762,9 @@ Raison: {1}</value>
</data>
<data name="administration_text_chan_created" xml:space="preserve">
<value>Salon textuel créé.</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_text_chan_destroyed" xml:space="preserve">
<value>Salon textuel supprimé.</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_undeafen" xml:space="preserve">
<value>Son activé avec succès.</value>
@ -797,14 +778,12 @@ Raison: {1}</value>
</data>
<data name="administration_username_changed" xml:space="preserve">
<value>Nom d&apos;utilisateur modifié.</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_users" xml:space="preserve">
<value>Utilisateurs</value>
</data>
<data name="administration_user_banned" xml:space="preserve">
<value>Utilisateur banni</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_user_chat_mute" xml:space="preserve">
<value>{0} est maintenant **muet** sur le chat.</value>
@ -814,22 +793,18 @@ Raison: {1}</value>
</data>
<data name="administration_user_joined" xml:space="preserve">
<value>L&apos;utilisateur a rejoint</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_user_left" xml:space="preserve">
<value>L&apos;utilisateur a quitté</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_user_muted" xml:space="preserve">
<value>{0} est maintenant **muet** à la fois sur les salons textuels et vocaux.</value>
</data>
<data name="administration_user_role_add" xml:space="preserve">
<value>Rôle ajouté à l&apos;utilisateur</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_user_role_rem" xml:space="preserve">
<value>Rôle retiré de l&apos;utilisateur</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_user_status_change" xml:space="preserve">
<value>{0} est maintenant {1}</value>
@ -854,11 +829,9 @@ Raison: {1}</value>
</data>
<data name="administration_voice_chan_created" xml:space="preserve">
<value>Salon vocal créé.</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_voice_chan_destroyed" xml:space="preserve">
<value>Salon vocal supprimé.</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_vt_disabled" xml:space="preserve">
<value>Fonctionnalités vocales et textuelles désactivées.</value>
@ -890,7 +863,6 @@ Raison: {1}</value>
</data>
<data name="administration_user_unbanned" xml:space="preserve">
<value>Utilisateur débanni</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_migration_done" xml:space="preserve">
<value>Migration effectuée!</value>
@ -900,11 +872,9 @@ Raison: {1}</value>
</data>
<data name="administration_presence_updates" xml:space="preserve">
<value>Présences mises à jour.</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_sb_user" xml:space="preserve">
<value>Utilisateur expulsé.</value>
<comment>Fuzzy</comment>
</data>
<data name="gambling_awarded" xml:space="preserve">
<value>a récompensé {0} à {1}</value>
@ -948,7 +918,6 @@ Raison: {1}</value>
</data>
<data name="gambling_heads" xml:space="preserve">
<value>Face</value>
<comment>Fuzzy</comment>
</data>
<data name="gambling_leaderboard" xml:space="preserve">
<value>Classement</value>
@ -970,7 +939,6 @@ Raison: {1}</value>
</data>
<data name="gambling_raffled_user" xml:space="preserve">
<value>Utilisateur tiré au sort</value>
<comment>Fuzzy</comment>
</data>
<data name="gambling_roll" xml:space="preserve">
<value>Vous avez roulé un {0}.</value>
@ -1005,8 +973,7 @@ Raison: {1}</value>
</data>
<data name="gambling_tails" xml:space="preserve">
<value>Pile</value>
<comment>C&apos;est pas plutôt face ca ?
Fuzzy</comment>
<comment>C&apos;est pas plutôt face ca ?</comment>
</data>
<data name="gambling_take" xml:space="preserve">
<value>Vous avez pris {0} de {1} avec succès</value>
@ -1019,7 +986,6 @@ Fuzzy</comment>
</data>
<data name="help_bot_owner_only" xml:space="preserve">
<value>Propriétaire du Bot seulement</value>
<comment>Fuzzy</comment>
</data>
<data name="help_channel_permission" xml:space="preserve">
<value>Nécessite {0} permissions du salon.</value>
@ -1029,11 +995,9 @@ Fuzzy</comment>
</data>
<data name="help_cmd_and_alias" xml:space="preserve">
<value>Commandes et alias</value>
<comment>Fuzzy</comment>
</data>
<data name="help_commandlist_regen" xml:space="preserve">
<value>Liste des commandes rafraîchie.</value>
<comment>Fuzzy</comment>
</data>
<data name="help_commands_instr" xml:space="preserve">
<value>Écrivez `{0}h NomDeLaCommande` pour voir l&apos;aide spécifique à cette commande. Ex: `{0}h &gt;8ball`</value>
@ -1055,15 +1019,12 @@ N&apos;oubliez pas de mettre votre nom discord ou ID dans le message.
<data name="help_guide" xml:space="preserve">
<value>**Liste des Commandes**: &lt;{0}&gt;
**La liste des guides et tous les documents peuvent être trouvés ici**: &lt;{1}&gt;</value>
<comment>Fuzzy</comment>
</data>
<data name="help_list_of_commands" xml:space="preserve">
<value>Liste des commandes</value>
<comment>Fuzzy</comment>
</data>
<data name="help_list_of_modules" xml:space="preserve">
<value>Liste des modules</value>
<comment>Fuzzy</comment>
</data>
<data name="help_modules_footer" xml:space="preserve">
<value>Entrez `{0}cmds NomDuModule` pour avoir la liste des commandes de ce module. ex `{0}cmds games`</value>
@ -1076,7 +1037,6 @@ N&apos;oubliez pas de mettre votre nom discord ou ID dans le message.
</data>
<data name="help_table_of_contents" xml:space="preserve">
<value>Table des matières</value>
<comment>Fuzzy</comment>
</data>
<data name="help_usage" xml:space="preserve">
<value>Usage</value>
@ -1090,7 +1050,6 @@ N&apos;oubliez pas de mettre votre nom discord ou ID dans le message.
</data>
<data name="gambling_animal_race" xml:space="preserve">
<value>Course d&apos;animaux</value>
<comment>Fuzzy</comment>
</data>
<data name="gambling_animal_race_failed" xml:space="preserve">
<value>Pas assez de participants pour commencer.</value>
@ -1291,19 +1250,16 @@ La nouvelle valeur de {0} est {1} !</value>
</data>
<data name="games_curgen_pl" xml:space="preserve">
<value>{0} {1} aléatoires sont apparus!</value>
<comment>plural
Fuzzy</comment>
<comment>plural</comment>
</data>
<data name="games_curgen_sn" xml:space="preserve">
<value>Un {0} aléatoire est apparu!</value>
<comment>Fuzzy</comment>
</data>
<data name="games_failed_loading_question" xml:space="preserve">
<value>Impossible de charger une question.</value>
</data>
<data name="games_game_started" xml:space="preserve">
<value>La jeu a commencé.</value>
<comment>Fuzzy</comment>
</data>
<data name="games_hangman_game_started" xml:space="preserve">
<value>Partie de pendu commencée.</value>
@ -1372,18 +1328,15 @@ Fuzzy</comment>
</data>
<data name="games_ttt_has_won" xml:space="preserve">
<value>{0} a gagné!</value>
<comment>Fuzzy</comment>
</data>
<data name="games_ttt_matched_three" xml:space="preserve">
<value>Trois alignés.</value>
<comment>Fuzzy</comment>
</data>
<data name="games_ttt_no_moves" xml:space="preserve">
<value>Aucun mouvement restant !</value>
</data>
<data name="games_ttt_time_expired" xml:space="preserve">
<value>Le temps a expiré!</value>
<comment>Fuzzy</comment>
</data>
<data name="games_ttt_users_move" xml:space="preserve">
<value>Tour de {0}.</value>
@ -1411,7 +1364,6 @@ Fuzzy</comment>
</data>
<data name="music_finished_song" xml:space="preserve">
<value>Lecture terminée</value>
<comment>Fuzzy</comment>
</data>
<data name="music_fp_disabled" xml:space="preserve">
<value>Système de tour de rôle désactivé.</value>
@ -1448,7 +1400,6 @@ Fuzzy</comment>
</data>
<data name="music_now_playing" xml:space="preserve">
<value>Vous écoutez</value>
<comment>Fuzzy</comment>
</data>
<data name="music_no_player" xml:space="preserve">
<value>Aucun lecteur de musique actif.</value>
@ -1461,18 +1412,15 @@ Fuzzy</comment>
</data>
<data name="music_player_queue" xml:space="preserve">
<value>File d&apos;attente - Page {0}/{1}</value>
<comment>Fuzzy</comment>
</data>
<data name="music_playing_song" xml:space="preserve">
<value>Lecture en cours</value>
<comment>Fuzzy</comment>
</data>
<data name="music_playlists" xml:space="preserve">
<value>`#{0}` - **{1}** par *{2}* ({3} pistes)</value>
</data>
<data name="music_playlists_page" xml:space="preserve">
<value>Page {0} des listes de lecture sauvegardées</value>
<comment>Fuzzy</comment>
</data>
<data name="music_playlist_deleted" xml:space="preserve">
<value>Liste de lecture supprimée.</value>
@ -1488,7 +1436,6 @@ Fuzzy</comment>
</data>
<data name="music_playlist_saved" xml:space="preserve">
<value>Liste de lecture sauvegardée</value>
<comment>Fuzzy</comment>
</data>
<data name="music_play_limit" xml:space="preserve">
<value>Limite à {0}s</value>
@ -1498,7 +1445,6 @@ Fuzzy</comment>
</data>
<data name="music_queued_song" xml:space="preserve">
<value>Piste ajoutée à la file d&apos;attente</value>
<comment>Fuzzy</comment>
</data>
<data name="music_queue_cleared" xml:space="preserve">
<value>File d&apos;attente effacée.</value>
@ -1511,16 +1457,13 @@ Fuzzy</comment>
<comment>context: &quot;removed song #5&quot;</comment>
</data>
<data name="music_repeating_cur_song" xml:space="preserve">
<value>Répétition de la piste actuelle</value>
<comment>Fuzzy</comment>
<value>Répétition de la piste actuelle.</value>
</data>
<data name="music_repeating_playlist" xml:space="preserve">
<value>Liste de lecture en boucle</value>
<comment>Fuzzy</comment>
</data>
<data name="music_repeating_track" xml:space="preserve">
<value>Piste en boucle</value>
<comment>Fuzzy</comment>
</data>
<data name="music_repeating_track_stopped" xml:space="preserve">
<value>La piste ne sera lue qu&apos;une fois.</value>
@ -1542,11 +1485,9 @@ Fuzzy</comment>
</data>
<data name="music_songs_shuffled" xml:space="preserve">
<value>Pistes mélangées.</value>
<comment>Fuzzy</comment>
</data>
<data name="music_song_moved" xml:space="preserve">
<value>Piste déplacée</value>
<comment>Fuzzy</comment>
</data>
<data name="music_time_format" xml:space="preserve">
<value>{0}h {1}m {2}s</value>
@ -1565,22 +1506,18 @@ Fuzzy</comment>
</data>
<data name="permissions_acm_disable" xml:space="preserve">
<value>Désactivation de TOUS LES MODULES pour le salon {0}.</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_acm_enable" xml:space="preserve">
<value>Activation de TOUS LES MODULES pour le salon {0}.</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_allowed" xml:space="preserve">
<value>Permis</value>
</data>
<data name="permissions_arm_disable" xml:space="preserve">
<value>Désactivation de TOUS LES MODULES pour le rôle {0}.</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_arm_enable" xml:space="preserve">
<value>Activation de TOUS LES MODULES pour le rôle {0}.</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_asm_disable" xml:space="preserve">
<value>Désactivation de TOUS LES MODULES sur ce serveur.</value>
@ -1590,11 +1527,9 @@ Fuzzy</comment>
</data>
<data name="permissions_aum_disable" xml:space="preserve">
<value>Désactivation de TOUS LES MODULES pour l&apos;utilisateur {0}.</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_aum_enable" xml:space="preserve">
<value>Activation de TOUS LES MODULES pour l&apos;utilisateur {0}.</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_blacklisted" xml:space="preserve">
<value>{0} sur liste noire avec l&apos;ID {1}</value>
@ -1604,15 +1539,13 @@ Fuzzy</comment>
<value>La commande {0} a désormais {1}s de temps de recharge.</value>
</data>
<data name="permissions_cmdcd_cleared" xml:space="preserve">
<value>La commande {0} n&apos;a pas de temps de recharge et tous les temps de recharge ont été réinitialisés.</value>
<comment>Fuzzy</comment>
<value>La commande {0} n&apos;a plus de temps de recharge et tous les temps de recharge ont été réinitialisés.</value>
</data>
<data name="permissions_cmdcd_none" xml:space="preserve">
<value>Aucune commande n&apos;a de temps de recharge.</value>
</data>
<data name="permissions_command_costs" xml:space="preserve">
<value>Coût de la commande :</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_cx_disable" xml:space="preserve">
<value>Désactivation: {1} {0} sur le salon {2}.</value>
@ -1630,7 +1563,6 @@ Fuzzy</comment>
</data>
<data name="permissions_filter_word_list" xml:space="preserve">
<value>Liste Des Mots Filtrés</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_filter_word_remove" xml:space="preserve">
<value>Suppression du mot {0} de la liste des mots filtrés.</value>
@ -1766,15 +1698,12 @@ Fuzzy</comment>
</data>
<data name="searches_compet_loses" xml:space="preserve">
<value>Parties compétitives perdues</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_compet_played" xml:space="preserve">
<value>Parties compétitives jouées</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_compet_rank" xml:space="preserve">
<value>Rang en compétitif</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_compet_wins" xml:space="preserve">
<value>Parties compétitives gagnées</value>
@ -1830,7 +1759,6 @@ Fuzzy</comment>
</data>
<data name="searches_image_search_for" xml:space="preserve">
<value>Recherche d&apos;images pour:</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_imdb_fail" xml:space="preserve">
<value>Impossible de trouver ce film.</value>
@ -1874,11 +1802,9 @@ Fuzzy</comment>
</data>
<data name="searches_on_hold" xml:space="preserve">
<value>En attente</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_original_url" xml:space="preserve">
<value>Url d&apos;origine</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_osu_api_key" xml:space="preserve">
<value>Une clé d&apos;API osu! est nécessaire.</value>
@ -1907,18 +1833,15 @@ Fuzzy</comment>
</data>
<data name="searches_profile_link" xml:space="preserve">
<value>Lien du profil :</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_quality" xml:space="preserve">
<value>Qualité</value>
</data>
<data name="searches_quick_playtime" xml:space="preserve">
<value>Temps en parties rapides</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_quick_wins" xml:space="preserve">
<value>Parties rapides gagnées</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_rating" xml:space="preserve">
<value>Évaluation</value>
@ -1927,16 +1850,14 @@ Fuzzy</comment>
<value>Score:</value>
</data>
<data name="searches_search_for" xml:space="preserve">
<value>Chercher pour:</value>
<comment>recherche plutôt non ?
Fuzzy</comment>
<value>Recherche pour:</value>
<comment>recherche plutôt non ?</comment>
</data>
<data name="searches_shorten_fail" xml:space="preserve">
<value>Impossible de réduire cette Url.</value>
</data>
<data name="searches_short_url" xml:space="preserve">
<value>Url réduite</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_something_went_wrong" xml:space="preserve">
<value>Une erreur s&apos;est produite.</value>
@ -1948,8 +1869,7 @@ Fuzzy</comment>
<value>Statut</value>
</data>
<data name="searches_store_url" xml:space="preserve">
<value>Url stockée</value>
<comment>Fuzzy</comment>
<value>Url du magasin</value>
</data>
<data name="searches_streamer_offline" xml:space="preserve">
<value>Le streamer {0} est hors ligne.</value>
@ -2019,7 +1939,6 @@ Fuzzy</comment>
</data>
<data name="searches_wind_speed" xml:space="preserve">
<value>Vitesse du vent</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_x_most_banned_champs" xml:space="preserve">
<value>Les {0} champions les plus bannis</value>
@ -2037,7 +1956,6 @@ Fuzzy</comment>
</data>
<data name="utility_activity_page" xml:space="preserve">
<value>Page d&apos;activité #{0}</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_activity_users_total" xml:space="preserve">
<value>{0} utilisateurs en total.</value>
@ -2056,11 +1974,9 @@ Fuzzy</comment>
</data>
<data name="utility_channel_topic" xml:space="preserve">
<value>Sujet du salon</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_commands_ran" xml:space="preserve">
<value>Commandes exécutées</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_convert" xml:space="preserve">
<value>{0} {1} est équivalent à {2} {3}</value>
@ -2076,7 +1992,6 @@ Fuzzy</comment>
</data>
<data name="utility_created_at" xml:space="preserve">
<value>Créé le</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_csc_join" xml:space="preserve">
<value>Salon inter-serveur rejoint.</value>
@ -2089,7 +2004,6 @@ Fuzzy</comment>
</data>
<data name="utility_custom_emojis" xml:space="preserve">
<value>Emojis personnalisées</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_error" xml:space="preserve">
<value>Erreur</value>
@ -2105,7 +2019,6 @@ Fuzzy</comment>
</data>
<data name="utility_inrole_list" xml:space="preserve">
<value>Liste des utilisateurs ayant le rôle {0}:</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_inrole_not_allowed" xml:space="preserve">
<value>Vous ne pouvez pas utiliser cette commande sur les rôles associés à beaucoup d&apos;utilisateurs afin d&apos;éviter les abus.</value>
@ -2120,20 +2033,17 @@ Fuzzy</comment>
</data>
<data name="utility_joined_server" xml:space="preserve">
<value>Serveur rejoint</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_listservers" xml:space="preserve">
<value>ID: {0}
Membres: {1}
ID du propriétaire: {2}</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_listservers_none" xml:space="preserve">
<value>Aucun serveur trouvée sur cette page.</value>
</data>
<data name="utility_list_of_repeaters" xml:space="preserve">
<value>Liste des messages répétés</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_members" xml:space="preserve">
<value>Membres</value>
@ -2145,8 +2055,7 @@ ID du propriétaire: {2}</value>
<value>Messages</value>
</data>
<data name="utility_message_repeater" xml:space="preserve">
<value>Répéteur de messages</value>
<comment>Fuzzy</comment>
<value>Répétition de messages</value>
</data>
<data name="utility_name" xml:space="preserve">
<value>Nom</value>
@ -2201,14 +2110,12 @@ ID du propriétaire: {2}</value>
</data>
<data name="utility_quote_deleted" xml:space="preserve">
<value>Citation #{0} supprimée.</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_region" xml:space="preserve">
<value>Région</value>
</data>
<data name="utility_registered_on" xml:space="preserve">
<value>Inscrit sur</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_remind" xml:space="preserve">
<value>Je vais rappeler {0} de {1} dans {2} `({3:d.M.yyyy} à {4:HH:mm})`</value>
@ -2224,7 +2131,6 @@ ID du propriétaire: {2}</value>
</data>
<data name="utility_repeaters_list" xml:space="preserve">
<value>Liste des répétitions</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_repeaters_none" xml:space="preserve">
<value>Aucune répétition active sur ce serveur.</value>
@ -2261,7 +2167,6 @@ ID du propriétaire: {2}</value>
</data>
<data name="utility_server_info" xml:space="preserve">
<value>Info du serveur</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_shard" xml:space="preserve">
<value>Shard</value>
@ -2269,8 +2174,7 @@ ID du propriétaire: {2}</value>
</data>
<data name="utility_shard_stats" xml:space="preserve">
<value>Statistique des shards</value>
<comment>Ne pas confondre Shard et Shared ;) Dans discord, le mot shard n&apos;a pas d&apos;équivalent francophone.
Fuzzy</comment>
<comment>Ne pas confondre Shard et Shared ;) Dans discord, le mot shard n&apos;a pas d&apos;équivalent francophone.</comment>
</data>
<data name="utility_shard_stats_txt" xml:space="preserve">
<value>Le shard **#{0}** est en état {1} avec {2} serveurs.</value>
@ -2287,7 +2191,6 @@ Fuzzy</comment>
</data>
<data name="utility_text_channels" xml:space="preserve">
<value>Salons textuels</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_togtub_room_link" xml:space="preserve">
<value>Voici le lien pour votre salon:</value>
@ -2304,7 +2207,6 @@ Fuzzy</comment>
</data>
<data name="utility_voice_channels" xml:space="preserve">
<value>Salons vocaux</value>
<comment>Fuzzy</comment>
</data>
<data name="gambling_animal_race_already_in" xml:space="preserve">
<value>Vous avez déjà rejoint cette course!</value>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2305,34 +2305,34 @@ Eier ID: {2}</value>
<value>Stemmekanal-roller</value>
</data>
<data name="customreactions_crad_disabled" xml:space="preserve">
<value></value>
<value>Meldingen som aktiverer reaksjonen med ID {0} vil ikke bli automatisk slettet.</value>
</data>
<data name="customreactions_crad_enabled" xml:space="preserve">
<value></value>
<value>Meldingen som aktiverer reaksjonen med ID {0} vil bli automatisk slettet.</value>
</data>
<data name="customreactions_crdm_disabled" xml:space="preserve">
<value></value>
<value>Respons-meldingen for tilpasset reaksjon med ID {0} vil ikke bli sendt som DM.</value>
</data>
<data name="customreactions_crdm_enabled" xml:space="preserve">
<value></value>
<value>Respons-meldingen for tilpasset reaksjon med ID {0} vil bli sendt som DM</value>
</data>
<data name="utility_aliases_none" xml:space="preserve">
<value></value>
<value>Ingen alias funnet</value>
</data>
<data name="utility_alias_added" xml:space="preserve">
<value></value>
<value>{0} er nå alias for {1}</value>
</data>
<data name="utility_alias_list" xml:space="preserve">
<value></value>
<value>Liste over alias</value>
</data>
<data name="utility_alias_removed" xml:space="preserve">
<value></value>
<value>{0} har ikke lenger noe alias</value>
</data>
<data name="utility_alias_remove_fail" xml:space="preserve">
<value></value>
<value>{0} hadde ikke noe alias</value>
</data>
<data name="searches_compet_playtime" xml:space="preserve">
<value></value>
<value>Kompetitiv spilltid</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@ -486,7 +486,7 @@ Powód: {1}</value>
<value></value>
</data>
<data name="administration_lang_set_bot_show" xml:space="preserve">
<value></value>
<value>Język bota ustawiony na {0} - {1}</value>
</data>
<data name="administration_lang_set_fail" xml:space="preserve">
<value></value>
@ -501,7 +501,8 @@ Powód: {1}</value>
<value>Opuścił serwer {0}</value>
</data>
<data name="administration_log" xml:space="preserve">
<value></value>
<value>Logowanie wydarzenia {0} na tym kanale.</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_log_all" xml:space="preserve">
<value>Logowanie wszystkich wydarzeń na tym kanale.</value>
@ -513,7 +514,7 @@ Powód: {1}</value>
<value></value>
</data>
<data name="administration_log_ignore" xml:space="preserve">
<value></value>
<value>Logowanie będzie ignorowało {0}</value>
</data>
<data name="administration_log_not_ignore" xml:space="preserve">
<value>Logowanie nie będzie ignorowało {0}</value>
@ -1816,7 +1817,7 @@ Nie zapomnij zostawić swojej discordowej nazwy użytkownika albo ID w wiadomoś
<value>Oryginalny URL</value>
</data>
<data name="searches_osu_api_key" xml:space="preserve">
<value></value>
<value>Klucz osu! API jest wymagany.</value>
</data>
<data name="searches_osu_failed" xml:space="preserve">
<value></value>
@ -1825,10 +1826,10 @@ Nie zapomnij zostawić swojej discordowej nazwy użytkownika albo ID w wiadomoś
<value>Znaleziono {0} obrazków. Pokazuję przypadkowe {0}</value>
</data>
<data name="searches_ow_user_not_found" xml:space="preserve">
<value></value>
<value>Nie znaleziono użytkownika! Proszę sprawdzić Region i BattleTag zanim znowu spróbujesz.</value>
</data>
<data name="searches_plan_to_watch" xml:space="preserve">
<value></value>
<value>Planowane</value>
</data>
<data name="searches_platform" xml:space="preserve">
<value>Platforma</value>
@ -1876,7 +1877,7 @@ Nie zapomnij zostawić swojej discordowej nazwy użytkownika albo ID w wiadomoś
<value>Status</value>
</data>
<data name="searches_store_url" xml:space="preserve">
<value></value>
<value>Url sklepu</value>
</data>
<data name="searches_streamer_offline" xml:space="preserve">
<value>Streamer {0} jest niedostępny.</value>
@ -1898,7 +1899,7 @@ Nie zapomnij zostawić swojej discordowej nazwy użytkownika albo ID w wiadomoś
<value>Stream prawdopodobnie nie istnieje.</value>
</data>
<data name="searches_stream_removed" xml:space="preserve">
<value></value>
<value>Usunięto stream użytkownika {0} ({1}) z powiadomień.</value>
</data>
<data name="searches_stream_tracked" xml:space="preserve">
<value></value>
@ -1934,7 +1935,7 @@ Nie zapomnij zostawić swojej discordowej nazwy użytkownika albo ID w wiadomoś
<value>Widzowie:</value>
</data>
<data name="searches_watching" xml:space="preserve">
<value></value>
<value>Oglądane</value>
</data>
<data name="searches_wikia_error" xml:space="preserve">
<value></value>
@ -1949,7 +1950,7 @@ Nie zapomnij zostawić swojej discordowej nazwy użytkownika albo ID w wiadomoś
<value>Szybkość wiatru</value>
</data>
<data name="searches_x_most_banned_champs" xml:space="preserve">
<value></value>
<value>Najczęściej banowane postacie w {0}</value>
</data>
<data name="searches_yodify_error" xml:space="preserve">
<value>Problem z napisaniem Twojego zdania w stylu Yody</value>
@ -1966,7 +1967,7 @@ Nie zapomnij zostawić swojej discordowej nazwy użytkownika albo ID w wiadomoś
<value></value>
</data>
<data name="utility_activity_users_total" xml:space="preserve">
<value></value>
<value>Łącznie {0} użytkowników.</value>
</data>
<data name="utility_author" xml:space="preserve">
<value>Autor</value>
@ -1987,13 +1988,13 @@ Nie zapomnij zostawić swojej discordowej nazwy użytkownika albo ID w wiadomoś
<value></value>
</data>
<data name="utility_convert" xml:space="preserve">
<value></value>
<value>{0} {1} wynosi {2} {3}</value>
</data>
<data name="utility_convertlist" xml:space="preserve">
<value></value>
<value>Jednostki które mogą być przekonwertwane</value>
</data>
<data name="utility_convert_not_found" xml:space="preserve">
<value></value>
<value>Nie można przekonwertować {0} na {1}: nie znaleziono jednostki</value>
</data>
<data name="utility_convert_type_error" xml:space="preserve">
<value></value>
@ -2077,13 +2078,13 @@ ID właściciela: {2}</value>
<value></value>
</data>
<data name="utility_no_roles_on_page" xml:space="preserve">
<value></value>
<value>Brak roli na tej stronie.</value>
</data>
<data name="utility_no_shards_on_page" xml:space="preserve">
<value></value>
</data>
<data name="utility_no_topic_set" xml:space="preserve">
<value></value>
<value>Brak tematu.</value>
</data>
<data name="utility_owner" xml:space="preserve">
<value>Właściciel</value>
@ -2100,10 +2101,10 @@ ID właściciela: {2}</value>
{2} kanałów tekstowych</value>
</data>
<data name="utility_quotes_deleted" xml:space="preserve">
<value></value>
<value>Usunięto wszystkie cytaty ze słowem {0}.</value>
</data>
<data name="utility_quotes_page" xml:space="preserve">
<value></value>
<value>{0} strona cytatów</value>
</data>
<data name="utility_quotes_page_none" xml:space="preserve">
<value></value>
@ -2112,10 +2113,10 @@ ID właściciela: {2}</value>
<value></value>
</data>
<data name="utility_quote_added" xml:space="preserve">
<value></value>
<value>Dodano cytat</value>
</data>
<data name="utility_quote_deleted" xml:space="preserve">
<value></value>
<value>Usunięto cytat #{0}</value>
</data>
<data name="utility_region" xml:space="preserve">
<value>Region</value>
@ -2184,7 +2185,7 @@ ID właściciela: {2}</value>
<value></value>
</data>
<data name="utility_showemojis" xml:space="preserve">
<value></value>
<value>**Nazwa:** {0} **Link:** {1}</value>
</data>
<data name="utility_showemojis_none" xml:space="preserve">
<value>Nie znaleziono żadnych specjalnych emotikon</value>
@ -2196,7 +2197,7 @@ ID właściciela: {2}</value>
<value>Kanały głosowe</value>
</data>
<data name="utility_togtub_room_link" xml:space="preserve">
<value></value>
<value>Twój link do pokoju:</value>
</data>
<data name="utility_uptime" xml:space="preserve">
<value></value>

View File

@ -583,7 +583,7 @@ Razão: {1}</value>
<value>Nenhum shard com aquele ID foi encontrado.</value>
</data>
<data name="administration_old_msg" xml:space="preserve">
<value>Mensagem Antiga</value>
<value>Mensagem Anterior</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_old_nick" xml:space="preserve">
@ -794,14 +794,12 @@ __Canais Ignorados__: {2}</value>
</data>
<data name="administration_username_changed" xml:space="preserve">
<value>Nome de usuário alterado</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_users" xml:space="preserve">
<value>Usuários</value>
</data>
<data name="administration_user_banned" xml:space="preserve">
<value>Usuário Banido</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_user_chat_mute" xml:space="preserve">
<value>{0} foi **mutado**</value>
@ -1134,7 +1132,7 @@ Não esqueça de deixar seu nome ou id do discord na mensagem.
<value>O segundo número deve ser maior que o primeiro.</value>
</data>
<data name="gambling_changes_of_heart" xml:space="preserve">
<value>Mudanças no Coração</value>
<value>Mudanças de ideia</value>
<comment>Fuzzy</comment>
</data>
<data name="gambling_claimed_by" xml:space="preserve">
@ -1918,7 +1916,7 @@ Fuzzy</comment>
<value>Pontuação:</value>
</data>
<data name="searches_search_for" xml:space="preserve">
<value>Busca Por:</value>
<value>Buscar Por:</value>
<comment>Fuzzy</comment>
</data>
<data name="searches_shorten_fail" xml:space="preserve">
@ -2094,8 +2092,7 @@ Fuzzy</comment>
<value>Índice fora de alcance.</value>
</data>
<data name="utility_inrole_list" xml:space="preserve">
<value>Aqui está uma lista de usuários nestes cargos:</value>
<comment>Fuzzy</comment>
<value>Lista de usuários no cargo {0}</value>
</data>
<data name="utility_inrole_not_allowed" xml:space="preserve">
<value>você não tem permissão de usar esse comando em cargos com muitos usuários para prevenir abuso.</value>
@ -2189,7 +2186,7 @@ OwnerID: {2}</value>
<value>Citação adicionada</value>
</data>
<data name="utility_quote_deleted" xml:space="preserve">
<value>Uma citação aleatória foi removida.</value>
<value>Citação #{0} Deletada.</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_region" xml:space="preserve">

View File

@ -364,7 +364,7 @@ Reason: {1}</value>
<value>Content</value>
</data>
<data name="administration_cr" xml:space="preserve">
<value>Sucessfully created role {0}</value>
<value>Successfully created role {0}</value>
</data>
<data name="administration_createtextchan" xml:space="preserve">
<value>Text channel {0} created.</value>
@ -394,7 +394,7 @@ Reason: {1}</value>
<value>DM from</value>
</data>
<data name="administration_donadd" xml:space="preserve">
<value>Sucessfully added a new donator.Total donated amount from this user: {0} 👑</value>
<value>Successfully added a new donator.Total donated amount from this user: {0} 👑</value>
</data>
<data name="administration_donators" xml:space="preserve">
<value>Thanks to the people listed below for making this project happen!</value>
@ -701,7 +701,7 @@ Reason: {1}</value>
<value>You now have {0} role.</value>
</data>
<data name="administration_setrole" xml:space="preserve">
<value>Sucessfully added role {0} to user {1}</value>
<value>Successfully added role {0} to user {1}</value>
</data>
<data name="administration_setrole_err" xml:space="preserve">
<value>Failed to add role. I have insufficient permissions.</value>

View File

@ -1422,7 +1422,6 @@ Fuzzy</comment>
</data>
<data name="music_playlist_id_not_found" xml:space="preserve">
<value>Плейлист с таким номером не существует.</value>
<comment>Fuzzy</comment>
</data>
<data name="music_playlist_queue_complete" xml:space="preserve">
<value>Добавление плейлиста в очередь завершено.</value>
@ -1526,7 +1525,6 @@ Fuzzy</comment>
</data>
<data name="permissions_blacklisted" xml:space="preserve">
<value>{0} добавлено в чёрный список под номером {1}</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_cmdcd_add" xml:space="preserve">
<value>У команды {0} теперь есть время перезарядки {1}c</value>
@ -1624,7 +1622,6 @@ Fuzzy</comment>
</data>
<data name="permissions_unblacklisted" xml:space="preserve">
<value>{0} с номером {1} убраны из черного списка.</value>
<comment>Fuzzy</comment>
</data>
<data name="permissions_uneditable" xml:space="preserve">
<value>нередактируемое</value>
@ -2268,11 +2265,11 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="customreactions_crdm_disabled" xml:space="preserve">
<value>Ответное сообщение для настраеваемой реакцией с номером {0} не будет отправлено в ЛС.</value>
<value>Ответное сообщение для настраеваемой реакции с номером {0} не будет отправлено в ЛС.</value>
<comment>Fuzzy</comment>
</data>
<data name="customreactions_crdm_enabled" xml:space="preserve">
<value>Ответное сообщение для настраиваемой реакцией с номером {0} будет отправлено в ЛС.</value>
<value>Ответное сообщение для настраиваемой реакции с номером {0} будет отправлено в ЛС.</value>
<comment>Fuzzy</comment>
</data>
<data name="utility_aliases_none" xml:space="preserve">

View File

@ -156,7 +156,7 @@
<comment>Fuzzy</comment>
</data>
<data name="clashofclans_list_active_wars" xml:space="preserve">
<value>Lista Över Aktiva Krig</value>
<value>Lista över aktiva krig</value>
<comment>Fuzzy</comment>
</data>
<data name="clashofclans_not_claimed" xml:space="preserve">
@ -209,7 +209,7 @@
<value>Nya egengjorda Reaktioner</value>
</data>
<data name="customreactions_no_found" xml:space="preserve">
<value>Inga egnagjorde reaktioner hittades.</value>
<value>Inga custom reaktioner hittades.</value>
<comment>Fuzzy</comment>
</data>
<data name="customreactions_no_found_id" xml:space="preserve">
@ -536,11 +536,11 @@ Anledning: {1}</value>
<value>{0} flyttad från {1] till {2}</value>
</data>
<data name="administration_msg_del" xml:space="preserve">
<value>Meddelande Raderat i #{0}</value>
<value>Meddelande raderat i #{0}</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_msg_update" xml:space="preserve">
<value>Meddelande Uppdaterat i #{0}</value>
<value>Meddelande uppdaterat i #{0}</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_muted_pl" xml:space="preserve">
@ -561,19 +561,19 @@ Anledning: {1}</value>
<value>Jag behöver **Administration** tillåtelse för att göra det där.</value>
</data>
<data name="administration_new_msg" xml:space="preserve">
<value>Nytt Meddelande</value>
<value>Ny meddelande</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_new_nick" xml:space="preserve">
<value>Nytt Smeknamn</value>
<value>Ny smeknamn</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_new_topic" xml:space="preserve">
<value>Nytt Ämne</value>
<value>Ny ämne</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_nick_change" xml:space="preserve">
<value>Smeknamn Ändrat</value>
<value>Smeknamn ändrat</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_no_server" xml:space="preserve">
@ -583,15 +583,15 @@ Anledning: {1}</value>
<value>Ingen shard med den ID funnen</value>
</data>
<data name="administration_old_msg" xml:space="preserve">
<value>Gammalt Meddelande</value>
<value>Gammal meddelande</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_old_nick" xml:space="preserve">
<value>Gammalt Smeknamn</value>
<value>Gammal smeknamn</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_old_topic" xml:space="preserve">
<value>Gammalt Ämne</value>
<value>Gammal ämne</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_perms" xml:space="preserve">
@ -601,7 +601,7 @@ Anledning: {1}</value>
<value>Tillstånd för denna server har blivit återställt.</value>
</data>
<data name="administration_prot_active" xml:space="preserve">
<value>Aktiva Skydd</value>
<value>Aktiva skydd</value>
<comment>Fuzzy</comment>
</data>
<data name="administration_prot_disable" xml:space="preserve">
@ -2342,7 +2342,7 @@ Medlemmar: {1}
<value>Meddelandet som triggrar den egengjorda reaktion med id {0} kommer bli</value>
</data>
<data name="customreactions_crdm_disabled" xml:space="preserve">
<value></value>
<value>Svar meddelande för custom reaktion med id {0} kommer inte att skickas som ett DM.</value>
</data>
<data name="customreactions_crdm_enabled" xml:space="preserve">
<value>
@ -2358,10 +2358,10 @@ Medlemmar: {1}
<value>Lista av aliaser</value>
</data>
<data name="utility_alias_removed" xml:space="preserve">
<value></value>
<value>Aktivering {0} har inte längre någon alias. </value>
</data>
<data name="utility_alias_remove_fail" xml:space="preserve">
<value></value>
<value>Trigger {0} hade ingen alias.</value>
</data>
<data name="searches_compet_playtime" xml:space="preserve">
<value>Kompetitiv speltid</value>

View File

@ -1337,7 +1337,7 @@ Paypal &lt;{1}&gt;
<value>{0} 對 {1}</value>
</data>
<data name="music_attempting_to_queue" xml:space="preserve">
<value>正在 {0} 首歌...</value>
<value>正在點播 {0} 首歌...</value>
</data>
<data name="music_autoplay_disabled" xml:space="preserve">
<value>已停用自動播放。</value>
@ -2255,16 +2255,16 @@ Paypal &lt;{1}&gt;
<value>語音頻道身分組</value>
</data>
<data name="customreactions_crad_disabled" xml:space="preserve">
<value></value>
<value>觸發自訂回應 ID 為 {0} 的訊息不會自動刪除。</value>
</data>
<data name="customreactions_crad_enabled" xml:space="preserve">
<value></value>
<value>觸發自訂回應 ID 為 {0} 的訊息將會自動刪除。</value>
</data>
<data name="customreactions_crdm_disabled" xml:space="preserve">
<value></value>
<value>自訂回應 ID 為 {0} 的回應不會以私訊方式傳送。</value>
</data>
<data name="customreactions_crdm_enabled" xml:space="preserve">
<value></value>
<value>自訂回應 ID 為 {0} 的回應將會以私訊方式傳送。</value>
</data>
<data name="utility_aliases_none" xml:space="preserve">
<value>找不到別名</value>
@ -2276,13 +2276,13 @@ Paypal &lt;{1}&gt;
<value>別名列表</value>
</data>
<data name="utility_alias_removed" xml:space="preserve">
<value></value>
<value>觸發 {0} 不再有別名。</value>
</data>
<data name="utility_alias_remove_fail" xml:space="preserve">
<value></value>
<value>觸發 {0} 並沒有別名。</value>
</data>
<data name="searches_compet_playtime" xml:space="preserve">
<value></value>
<value>競技時數</value>
</data>
</root>

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NadekoBot.Services.Database.Models
{
public class PatreonRewards : DbEntity
{
public ulong UserId { get; set; }
public ulong PledgeCents { get; set; }
public ulong Awarded { get; set; }
}
}

View File

@ -16,7 +16,7 @@ namespace NadekoBot.Services.Impl
private readonly DiscordShardedClient _client;
private readonly DateTime _started;
public const string BotVersion = "1.25a";
public const string BotVersion = "1.26a";
public string Author => "Kwoth#2560";
public string Library => "Discord.Net";

File diff suppressed because one or more lines are too long

View File

@ -1,361 +0,0 @@
[
{
"Title":"The Gender of Psychology",
"Text":"This book addresses the diversity of psychological knowledge and practice through the lens of gender."
},
{
"Title":"Unto Others: The Evolution and Psychology of Unselfish",
"Text":"In Unto Others philosopher Elliott Sober and biologist David Sloan Wilson demonstrate once and for all that unselfish behavior is in fact an important feature of both biological and human nature."
},
{
"Title":"Forensic and Legal Psychology",
"Text":"Using research in clinical, cognitive, developmental, and social psychology, Forensic and Legal Psychology shows how psychological science can enhance the gathering and presentation of evidence, improve legal decision-making, prevent crime,"
},
{
"Title":"International Handbook of Psychology in Education",
"Text":"Suitable for researchers, practitioners and advisers working in the fields of psychology and education, this title presents an overview of the research within the domain of psychology of education."
},
{
"Title":"Handbook of Personality Psychology",
"Text":"This comprehensive reference work on personality psychology discusses the development and measurement of personality, biological and social determinants, dynamic personality processes, the personality's relation to the self, and personality"
},
{
"Title":"Dictionary of Theories, Laws, and Concepts in Psychology",
"Text":"A fully cross-referenced and source-referenced dictionary which gives definitions of psychological terms as well as the history, critique, and relevant references for the terms."
},
{
"Title":"Essays on Plato's Psychology",
"Text":"With a comprehensive introduction to the major issues of Plato's psychology and an up-to-date bibliography of work on the relevant issues, this much-needed text makes the study of Plato's psychology accessible to scholars in ancient Greek"
},
{
"Title":"Psychology Statistics For Dummies",
"Text":"As an alternative to typical, lead-heavy statistics texts or supplements to assigned course reading, this is one book psychology students won't want to be without."
},
{
"Title":"Doing Psychology Experiments",
"Text":"David W. Martin’s unique blend of informality, humor, clear instruction, and solid scholarship make this concise text a popular choice for research methods courses in psychology."
},
{
"Title":"A Handbook of Research Methods for Clinical and Health",
"Text":"For both undergraduate and postgraduate students, the book will be essential in making them aware of the full range of techniques available to them, helping them to design scientifically rigorous experiments."
},
{
"Title":"A History of Psychology",
"Text":"First published in 2002. Routledge is an imprint of Taylor & Francis, an informa company."
},
{
"Title":"An Introduction to the Psychology of Religion",
"Text":"The third edition of this successful book, which applies the science of psychology to problems of religion. Dr Thouless explores such questions as: why do people believe? Why are their beliefs often held with irrational strength?"
},
{
"Title":"Psychology of Champions: How to Win at Sports and Life",
"Text":"In this unprecedented book, two psychologist researchers interview sports legends and super-athletes across sports to explain the thinking that powers stellar performers, pushing them to amazing and historic successes."
},
{
"Title":"The Psychology of Humor: An Integrative Approach",
"Text":"This is a singly authored monograph that provides in one source, a summary of information researchers might wish to know about research into the psychology of humor."
},
{
"Title":"Psychology and Deterrence",
"Text":"Now available in paperback, Psychology and Deterrence reveals deterrence strategy's hidden and generally simplistic assumptions about the nature of power and aggression, threat and response, and calculation and behavior in the international"
},
{
"Title":"Psychology: An International Perspective",
"Text":"Unlike typical American texts, this book provides an international approach to introductory psychology, providing comprehensive and lively coverage of current research from a global perspective, including the UK, Germany, Scandinavia,"
},
{
"Title":"Psychology, Briefer Course",
"Text":"Despite its title, 'Psychology: Briefer Course' is more than a simple condensation of the great 'Principles of Psychology."
},
{
"Title":"Psychology, Seventh Edition (High School)",
"Text":"This new edition continues the story of psychology with added research and enhanced content from the most dynamic areas of the field—cognition, gender and diversity studies, neuroscience and more, while at the same time using the most"
},
{
"Title":"Psychology of Russia: Past, Present, Future",
"Text":"This book is for all psychologists and for readers whose interest in Russia exceeds their interest in psychology. Readers of this book will quickly discover a new world of thought."
},
{
"Title":"Barron's AP Psychology",
"Text":"Provides information on scoring and structure of the test, offers tips on test-taking strategies, and includes practice examinations and subject review."
},
{
"Title":"Psychology for Inclusive Education: New Directions in",
"Text":"International in focus and at the very cutting edge of the field, this is essential reading for all those interested in the development of inclusive education."
},
{
"Title":"Applied Psychology: Putting Theory Into Practice",
"Text":"Applied Psychology: Putting theory into practice demonstrates how psychology theory is applied in the real world."
},
{
"Title":"The Psychology of Science: A Reconnaissance",
"Text":"' This eBook edition contains the complete 168 page text of the original 1966 hardcover edition. Contents: Preface by Abraham H. Maslow Acknowledgments 1. Mechanistic and Humanistic Science 2."
},
{
"Title":"Filipino American Psychology: A Handbook of Theory,",
"Text":"This book is the first of its kind and aims to promote visibility of this invisible group, so that 2.4 million Filipino Americans will have their voices heard."
},
{
"Title":"The Psychology of Visual Illusion",
"Text":"Well-rounded perspective on the ambiguities of visual display emphasizes geometrical optical illusions: framing and contrast effects, distortion of angles and direction, and apparent 'movement' of images. 240 drawings. 1972 edition."
},
{
"Title":"The Psychology of Women",
"Text":"This highly respected text offers students an enjoyable, extraordinarily well-written introduction to the psychology of women with an up-to-date examination of the field and comprehensive coverage of topics."
},
{
"Title":"Psychology and Race",
"Text":"' Psychology and Race is divided into two major parts. The first half of the book looks at the interracial situation itself."
},
{
"Title":"Psychology for A-Level",
"Text":"'Precisely targeted at AQA A Level Psychology, specification A. It will also be of interest to those who are new to psychology, and who want to get a flavour of the kinds of topics in which psychologists are interested'--Preface, p. vii."
},
{
"Title":"Biological Psychology",
"Text":"Updated with new topics, examples, and recent research findings--and supported by new online bio-labs, part of the strongest media package yet--this text speaks to today’s students and instructors."
},
{
"Title":"Psychology: Concepts & Connections",
"Text":"The theme of this book is applying theories and research to learning and to contemporary life."
},
{
"Title":"The Psychology of Adoption",
"Text":"In this volume David Brodzinsky, who has conducted one of the nation's largest studies of adopted children, and Marshall Schechter, a noted child psychiatrist who has been involved with adoption related issues for over forty years, have"
},
{
"Title":"Psychology and Adult Learning",
"Text":"This new edition is thoroughly revised and updated in light of the impact of globalising processes and the application of new information technologies, and the influence of postmodernism on psychology."
},
{
"Title":"Gestalt Psychology: An Introduction to New Concepts in",
"Text":"The general reader, if he looks to psychology for something more than entertainment or practical advice, will discover in this book a storehouse of searching criticism and brilliant suggestions from the pen of a rare thinker, and one who"
},
{
"Title":"The Psychology of Goals",
"Text":"Bringing together leading authorities, this tightly edited volume reviews the breadth of current knowledge about goals and their key role in human behavior."
},
{
"Title":"Metaphors in the History of Psychology",
"Text":"Through the identification of these metaphors, the contributors to this volume have provided a remarkably useful guide to the history, current orientations, and future prospects of modern psychology."
},
{
"Title":"Abnormal Psychology: An Integrative Approach",
"Text":"ABNORMAL PSYCHOLOGY: AN INTEGRATIVE APPROACH, Seventh Edition, is the perfect book to help you succeed in your abnormal psychology course!"
},
{
"Title":"Art and Visual Perception: A Psychology of the Creative Eye",
"Text":"Gestalt theory and the psychology of visual perception form the basis for an analysis of art and its basic elements"
},
{
"Title":"Psychology & Christianity: Five Views",
"Text":"This revised edition of a widely appreciated text now presents five models for understanding the relationship between psychology and Christianity."
},
{
"Title":"The Psychology of Hope: You Can Get There from Here",
"Text":"Why do some people lead positive, hope-filled lives, while others wallow in pessimism? In The Psychology of Hope, a professor of psychology reveals the specific character traits that produce highly hopeful individuals."
},
{
"Title":"Perspectives on Psychology",
"Text":"This is a title in the modular 'Principles in Psychology Series', designed for A-level and other introductory courses, aiming to provide students embarking on psychology courses with the necessary background and context."
},
{
"Title":"Psychology the Easy Way",
"Text":"Material is presented in a way that makes these books ideal as self-teaching guides, but Easy Way titles are also preferred by many teachers as supplements to classroom textbooks."
},
{
"Title":"Ethics in Psychology: Professional Standards and Cases",
"Text":"In this book, their main intent is to present the full range of contemporary ethical issues in psychology as not only relevant and intriguing, but also as integral and unavoidable aspects of the profession."
},
{
"Title":"Psychology Gets in the Game: Sport, Mind, and Behavior,",
"Text":"The essays collected in this volume tell the stories not only of these psychologists and their subjects but of the social and academic context that surrounded them, shaping and being shaped by their ideas'--Provided by publisher."
},
{
"Title":"Psychology for Physical Educators: Student in Focus",
"Text":"This updated edition focuses on attitude and motivation as important aspects of the physical education curriculum, illustrating practical ideas and pedagogical solutions for any PE setting."
},
{
"Title":"The Psychology of Leadership: New Perspectives and Research",
"Text":"In this book, some of the world's leading scholars come together to describe their thinking and research on the topic of the psychology of leadership."
},
{
"Title":"The Psychology of Interpersonal Relations",
"Text":"As the title suggests, this book examines the psychology of interpersonal relations. In the context of this book, the term 'interpersonal relations' denotes relations between a few, usually between two, people."
},
{
"Title":"Applied Psychology",
"Text":"The chapters on Counselling Psychology and Teaching Psychology are available online via the Student Companion Site at: http://tinyurl.com/c3ztvtj The text is written to be accessible to Level 1 Introductory Psychology students, and also to"
},
{
"Title":"Psychology",
"Text":"An exciting read for anyone interested in psychology and research; because of its comprehensive appendix, glossary, and reference section, this book is a must-have desk reference for psychologists and others in the field."
},
{
"Title":"The Psychology of Music",
"Text":"On interpreting musical phenomena in terms of mental function"
},
{
"Title":"Abnormal Psychology",
"Text":"Ron Comer's Abnormal Psychology continues to captivate students with its integrated coverage of theory, diagnosis, and treatment, its inclusive wide-ranging cross-cultural perspective, and its compassionate emphasis on the real impact of"
},
{
"Title":"The Psychology of Food Choice",
"Text":"This book brings together theory, research and applications from psychology and behavioural sciences applied to dietary behaviour."
},
{
"Title":"Psychology: brain, behavior, & culture",
"Text":"Rather than present psychological science as a series of facts for memorization, this book takes readers on a psychological journey that uncovers things they didn't know or new ways of thinking about things they did know."
},
{
"Title":"A Brief History of Psychology",
"Text":"Due to its brevity and engaging style, the book is often used in introductory courses to introduce students to the field. The enormous index and substantial glossary make this volume a useful desk reference for the entire field."
},
{
"Title":"Psychology AS: The Complete Companion",
"Text":"Presented in double-page spreads this book written to the average AS ability level, provides information on psychology in bite-sized chunks with learning and revision features."
},
{
"Title":"The Psychology Book: From Shamanism to Cutting-Edge",
"Text":"Lavishly illustrated, this new addition in the Sterling's Milestones series chronicles the history of psychology through 250 groundbreaking events, theories, publications, experiments and discoveries."
},
{
"Title":"The Psychology Book",
"Text":"All the big ideas, simply explained - an innovative and accessible guide to the study of human nature The Psychology Book clearly explains more than 100 groundbreaking ideas in this fascinating field of science."
},
{
"Title":"Handbook of Positive Psychology",
"Text":"' The Handbook of Positive Psychology provides a forum for a more positive view of the human condition. In its pages, readers are treated to an analysis of what the foremost experts believe to be the fundamental strengths of humankind."
},
{
"Title":"Psychology of Sustainable Development",
"Text":"With contributions from an international team of policy shapers and makers, the book will be an important reference for environmental, developmental, social, and organizational psychologists, in addition to other social scientists concerned"
},
{
"Title":"An Introduction to the History of Psychology",
"Text":"In this Fifth Edition, B.R. Hergenhahn demonstrates that most of the concerns of contemporary psychologists are manifestations of themes that have been part of psychology for hundreds-or even thousands-of years."
},
{
"Title":"Careers in Psychology: Opportunities in a Changing World",
"Text":"This text addresses the growing need among students and faculty for information about the careers available in psychology at the bachelors and graduate level."
},
{
"Title":"Philosophy of Psychology",
"Text":"This is the story of the clattering of elevated subways and the cacophony of crowded neighborhoods, the heady optimism of industrial progress and the despair of economic recession, and the vibrancy of ethnic cultures and the resilience of"
},
{
"Title":"The Psychology of Risk Taking Behavior",
"Text":"This book aims to help the reader to understand what motivates people to engage in risk taking behavior, such as participating in traffic, sports, financial investments, or courtship."
},
{
"Title":"The Nazi Doctors: Medical Killing and the Psychology of",
"Text":"This book explores the psychological conditions that promote the human potential for evil, relating medical killing to broader principles of doubling and genocide"
},
{
"Title":"The Body and Psychology",
"Text":"The material in this volume was previously published as a Special Issue of th"
},
{
"Title":"Introduction to Psychology: Gateways to Mind and Behavior",
"Text":"Important Notice: Media content referenced within the product description or the product text may not be available in the ebook version."
},
{
"Title":"Psychology of Time",
"Text":"Basic Structure The book would contain 14 or 15 chapters of roughly 12 000 words. The exact final number of chapters would depend on further discussions with you about the book's basic structure."
},
{
"Title":"Handbook of Psychology, Experimental Psychology",
"Text":"Includes established theories and cutting-edge developments. Presents the work of an international group of experts. Presents the nature, origin, implications, and future course of major unresolved issues in the area."
},
{
"Title":"Study Guide for Psychology, Seventh Edition",
"Text":"This new edition continues the story of psychology with added research and enhanced content from the most dynamic areas of the field--cognition, gender and diversity studies, neuroscience and more, while at the same time using the most"
},
{
"Title":"Culture and Psychology",
"Text":"In addition, the text encourages students to question traditionally held beliefs and theories as and their relevance to different cultural groups today."
},
{
"Title":"Exploring the Psychology of Interest",
"Text":"The most comprehensive work of its kind, Exploring the Psychology of Interest will be a valuable resource for student and professional researchers in cognitive, social, and developmental psychology."
},
{
"Title":"Handbook of Adolescent Psychology",
"Text":"The study of adolescence in the field of psychology has grown tremendously over the last two decades, necessitating a comprehensive and up-to-date revision of this seminal work."
},
{
"Title":"The Psychology of Diplomacy",
"Text":"World class clinicians, researchers, and activists present the psychological dimensions to diplomacy drawn from examples set in the United Nations, Camp David, the Middle East, Japan, South Africa, and elsewhere."
},
{
"Title":"The Psychology of Social Class",
"Text":"By addressing differences in social class, the book broadens the perspective of social psychological research to examine such topics as the effect of achievement motivation and other personality variables on social mobility and the effect"
},
{
"Title":"Applied Psychology: Current Issues and New Directions",
"Text":"Key features of this book: - Consistently pedagogical throughout - chapter summaries, questions for reflection and discussion and annotated further reading in every chapter - Comprehensive coverage - all areas of applied psychology included"
},
{
"Title":"Popular Psychology: An Encyclopedia",
"Text":"Entries cover a variety of topics in the field of popular psychology, including acupuncture, emotional intelligence, brainwashing, chemical inbalance, and seasonal affective disorder."
},
{
"Title":"Advanced Psychology: Applications, Issues and Perspectives",
"Text":"The second of two books, Advanced Psychology covers units 4 to 6 for the second year at Advanced Level."
},
{
"Title":"Mindset: The New Psychology of Success",
"Text":"This is a book that can change your life, as its ideas have changed mine.”—Robert J. Sternberg, IBM Professor of Education and Psychology at Yale University, director of the PACE Center of Yale University, and author of Successful"
},
{
"Title":"E-Z Psychology",
"Text":"This book covers material as it is taught on a college-101 level."
},
{
"Title":"Myers' Psychology for AP*",
"Text":"Already The Bestselling AP* Psychology Author, Myers Writes His First Exclusive AP* Psych Text Watch Dave G. Myers introduce this new text here."
},
{
"Title":"Psychology and Health",
"Text":"Part of a series of textbooks which have been written to support A levels in psychology. The books use real life applications to make theories come alive for students and teach them what they need to know."
},
{
"Title":"Applying Psychology in Business: The Handbook for Managers",
"Text":"To learn more about Rowman & Littlefield titles please visit us at www.rowmanlittlefield.com."
},
{
"Title":"Influence",
"Text":"Influence, the classic book on persuasion, explains the psychology of why people say 'yes'—and how to apply these understandings. Dr. Robert Cialdini is the seminal expert in the rapidly expanding field of influence and persuasion."
},
{
"Title":"Psychology and Policing",
"Text":"The book should draw attention to the often unrecognized and valuable contribution that mainstream psychology can make to the knowledge base underpinning a wide variety of policing practices."
},
{
"Title":"Applied Psychology: New Frontiers and Rewarding Careers",
"Text":"This book examines how psychological science is, and can be, used to prevent and ameliorate pressing human problems to promote positive social change."
},
{
"Title":"Psychology: Concepts and Applications",
"Text":"Nevid developed the effective teaching devices in this text based on a comprehensive system derived from research on learning and memory as well as his own research on textbook pedagogy."
},
{
"Title":"Foundations of Sport and Exercise Psychology, 6E: ",
"Text":"This text offers both students and new practitioners a comprehensive view of sport and exercise psychology, drawing connections between research and practice and capturing the excitement of the world of sport and exercise."
},
{
"Title":"Biographical Dictionary of Psychology",
"Text":"This Dictionary provides biographical and bibliographical information on over 500 psychologists from all over the world from 1850 to the present day. All branches of psychology and its related disciplines are featured."
},
{
"Title":"Psychology: A Self-Teaching Guide",
"Text":"Frank Bruno explains all the major psychological theories and terms in this book, covering perception, motivation, thinking, personality, sensation, intelligence, research methods, and much more."
},
{
"Title":"A Dictionary of Psychology",
"Text":"Entries are extensively cross-referenced for ease of use, and cover word origins and derivations as well as definitions. Over 80 illustrations complement the text."
},
{
"Title":"An Intellectual History of Psychology",
"Text":"Invaluable as a text for students and as a stimulating and insightful overview for scholars and practicing psychologists, this volume can be read either as a history of psychology in both its philosophical and aspiring scientific periods or"
}]

File diff suppressed because one or more lines are too long