scrub-daddy

所属分类:Node.js
开发工具:JavaScript
文件大小:0KB
下载次数:0
上传日期:2023-10-22 22:09:58
上 传 者sh-1993
说明:  Node.js Discord机器人,专注于游戏和娱乐,具有124个命令。,
(A Node.js Discord bot, focused on gaming and entertainment, with 124 commands.,)

文件列表:
.editorconfig (137, 2023-10-22)
.eslintrc.yml (6195, 2023-10-22)
package.json (1300, 2023-10-22)
resources/ (0, 2023-10-22)
resources/audio/ (0, 2023-10-22)
resources/audio/mygod.mp3 (22915, 2023-10-22)
resources/audio/notmutual.mp3 (48207, 2023-10-22)
resources/data/ (0, 2023-10-22)
resources/data/aliases.json (2, 2023-10-22)
resources/data/banned.json (2, 2023-10-22)
resources/data/carForum.json (101, 2023-10-22)
resources/data/catfacts.json (12178, 2023-10-22)
resources/data/colors.json (2, 2023-10-22)
resources/data/config.json (72, 2023-10-22)
resources/data/fortniteUserData.json (2, 2023-10-22)
resources/data/gameHistory.json (2, 2023-10-22)
resources/data/gamesPlayed.json (2, 2023-10-22)
resources/data/groups.json (2, 2023-10-22)
resources/data/ledger.json (2, 2023-10-22)
resources/data/lists.json (2, 2023-10-22)
resources/data/loot.json (54, 2023-10-22)
resources/data/msgReplacement.json (2, 2023-10-22)
resources/data/nouns.json (6020, 2023-10-22)
resources/data/optedIn.json (2, 2023-10-22)
resources/data/prompts.json (2, 2023-10-22)
resources/data/quotes.json (2, 2023-10-22)
resources/data/ratings.json (2, 2023-10-22)
resources/data/rawHeatMapData.json (2090, 2023-10-22)
resources/data/reactionDataset.json (2, 2023-10-22)
resources/data/reminders.json (2, 2023-10-22)
resources/data/soundbites.json (2, 2023-10-22)
resources/data/streaming.json (2, 2023-10-22)
resources/data/timeSheet.json (2, 2023-10-22)
resources/data/userMetadata.json (2, 2023-10-22)
resources/data/userSBUsage.json (2, 2023-10-22)
src/ (0, 2023-10-22)
src/bot.js (1403, 2023-10-22)
src/channelEnhancements/ (0, 2023-10-22)
... ...

# scrub-daddy [![Codacy Badge](https://api.codacy.com/project/badge/Grade/8f59c3e85df049d3bd319a21576f37c4)](https://www.codacy.com/app/Scrubs/scrub-daddy?utm_source=github.com&utm_medium=referral&utm_content=wasaab/scrub-daddy&utm_campaign=Badge_Grade) > A Node.js Discord bot, focused on gaming and entertainment, with 124 commands. Most of the features were requested by users via the **feature** command. ## Key Features + Playtime tracking + Player count heatmap and trends + Track players of games and invite all or a subset + List players by game name or see a list of those who play the same games as you + Simulated stock market using real world stocks + Soundbites + Server and bot administration + Discord integrated issue and feature submission system with task priority determined by majority vote + Game stat tracking + TV and movie user rating system integrated with IMDB and RT and viewable in Discord or a Bootstrap table in a website + Games and gambling + Mention custom user groups or power users of a given channel + fuzzy search for all commands and names of things such as games and movie titles + The bot's playing status will show the game and player count of whichever game the majority of online users are playing. + Channels in the Dynamic Voice category will change their name to whichever game the majority of connected users are playing. + While you are connected to a voice channel and playing a game, the game's name will be abbreviated and added to the end of your nickname. ## Commands ### Time Played + .time <`Game Name`> <`@user`> - `user's playtime for the specified Game Name.` + .time <`Game Name`> - `cumulative playtime for the specified Game Name.` + .time <`@user`> - `user's playtime for all games.` + .time - `cumulative playtime for all games.` + .opt-in - `to opt into playtime tracking.` + .heatmap - `heatmap of player count for all games.` ### Gaming + .playing - `player count of games currently being played.` + .who-plays - `to get list of players and last time played for games you play.` + .who-plays <`Game Name`> - `to get list of players and last time played for Game Name.` + .lets-play - `to ask Scrubs who have recently played the game you are playing if they want to play.` + .lets-play <`Game Name|Game Emoji`> - `to ask Scrubs who have recently played Game Name if they want to play.` + .lets-play -all <`Game Name|Game Emoji`> - `.lets-play including Super Scrubs and inactive players.` + .1-more - `to request 1 more player for the game you are playing via mentions.` + .split-group - `to generate a random group splitting for users in your voice channel.` + .round-robin <`groupName`> - `to get the next user in the group in round robin fashion.` + .trends <`Game Name | Game, Game2, etc`> - `to see player count trends for the provided game(s).` + .total-trends - `To see total player count trends across all games.` + .fortnite-stats <`fortniteUserName|@user`> <`gameMode`> <`stat`> - `to lookup fortnite stats for the provided player.` + .fortnite-leaderboard <`gameMode`> <`stat`> - `to show the leaderboard for the provided game mode + stat.` + .set-fortnite-name <`fortniteUserName`> - `to link your Fortnite account to Scrub Daddy for stat lookup.` ### Stocks, Gambling, and Prizes + .enlist - `enlists the discharged Scrubbing Bubbles to your army.` + .discharge <`numBubbles`> - `honorably discharges numBubbles Scrubbing Bubble from your army.` + .give <`numBubbles`> <`@user`> - `transfers numBubbles from your army to user's army.` + .reserve - `to get Scrubbing Bubble reinforcements from your reserve army.` + .clean <`numBubbles`> - `send numBubbles to clean the toilet.` + .race <`numBubbles`> - `to start a race that costs numBubbles to enter` + .race - `to join a race` + .army - `retrieves the size of your army.` + .army <`@user`> - `retrieves the size of the user's army.` + .worth - `retrieves your net worth (army + stock portfolio).` + .worth <`@user`> - `retrieves the user's net worth (army + stock portfolio).` + .ranks - `outputs the army size of every user.` + .stats - `outputs your clean stats.` + .stats <`@user`> - `outputs the user's clean stats.` + .invest <`stock`> <`shares`> - `to invest in shares of a stock. Cost is 1-1 with real world price.` + .invest-scrubbles <`stock`> <`numBubbles`> - `to invest the provided # of Scrubbing Bubbles in a stock. Cost is 1-1 with real world price.` + .sell-shares <`stock`> <`shares`> - `to sell shares in a stock` + .stocks - `to see how your stocks are doing today` + .portfolio - `to see how your stocks have done over time` + .who-said <`channel-name`> <`minMsgLength`> <`minMsgReactions`> <`sampleSize`> - `Starts a quote guessing game using 5 random quotes pulled from sampleSize messages, matching the provided criteria.` + .sunken-sailor - `to start a game of Sunken Sailor with the users in your current voice channel.` + .add-emoji <`tier`> <`name`> + `ATTACH PNG IN SAME MESSAGE` - ` to add the emoji to the server with the provided name.` + .add-emoji <`tier`> + `ATTACH PNG IN SAME MESSAGE` - ` to add the emoji to the server using the image's filename.` + .magic-word <`tier`> <`word`> - ` to set a magic word that when typed will ban that user from the channel cmd was called from.` + .rename-hank <`tier`> - ` to rename hank to hang` + .rename-channel <`tier`> <`#channel`> <`New Name`> - ` to rename a channel` + .rename-role <`tier`> <`@role`> <`New Name`> - ` to rename a role` + .rename-user <`tier`> <`@user`> <`New Name`> - ` to rename a user` + .scrub-box <`tier`> - `to open a Scrub Box. Tier cost = tier * 200. Better and longer lasting prizes as tier increases.` + .scrub-box <`tier`> <`numBoxes`> - `to open the provided # of Scrub Boxes.` + .inventory - `to see your scrub box prize inventory.` + .prizes - `to see the prize tiers table` + .start-lotto <`MM/DD`> <`HH`> - ` to start a Beyond lotto that will end at the specified time (HH is 24-hour format in EST)` + .stop-lotto - ` to stop the current Beyond Lotto without choosing a winner.` + .billionaires-club - ` to join The Billionaire's Club.` ### Voting + Please Note - `You must be in a voice channel with at least 3 members to participate in a kick/ban vote.` + .votekick <`@user`> - `to remove user from channel.` + .voteban <`@user`> - `for a more permanent solution.` + .vote <`thing to vote for`> - `to do a custom vote.` + .voteinfo - `for totals of all custom votes.` + .voteinfo <`@user`> - `for total votes to kick/ban that user.` ### Bot Issues, Feature Requests, and Help + .tips - `to show all tips.` + .tips <`keyword`> - `to show all tips with a title that includes the provided keyword.` + .issue <`issue-title`> <`msg detailing issue`> - `to submit bot issues.` + .feature <`feature-title`> <`msg detailing feature`> - `to submit bot feature requests.` + .implement <`task-title`> - `to vote for the next task to complete. task-title is the channel title of the issue or feature.` + .help or .h - `to get help for all commands.` + .help <`command`> - `to get help for a specific command` ### Roles & User Settings + .join-review-team - `to be added to the review team.` + .leave-review-team - `to be removed from the review team.` + .color <`colorName`> - `to set your role/response color preference.` + .rainbow-role <`tier`> - ` to add a role with changing color for a limited time` + .shuffle-scrubs - `to randomize the first letter of every Srub's name.` + .shuffle-scrubs <`letter`> - `to set the first letter of every Srub's name.` + .set-birthday <`MM/DD`> - `to set your birthday and receive cake.` + .set-stream <`url`> - `to set the url for either your stream or the stream you are watching.` + .toggle-streaming - `to toggle your streaming state on/off, which will update your nickname.` + .alias <`alias`> <`command to call`> - `creates an alias for the provided command call. e.g. .alias ow who-plays Overwatch ... will allow you to call .ow` + .unalias <`alias`> - `removes the alias with the provided name.` ### Soundbites + .sb - `to get the list of available soundbites.` + .sb <`name`> - `to play the sound byte of the given name in your voice channel.` + .add-sb + `ATTACHMENT IN SAME MESSAGE` - `to add a sound byte.` + .fav-sb - `to get the list of your most frequently used soundbites.` + .volume <1-10> - `to set the volume for the provided soundbite.` ### Utilities + .temp - `Creates a temporary text channel` + .temp <`text|voice`> - `Creates a temp text/voice channel.` + .temp <`text|voice`> <`channel-title`> - `Creates a voice/text channel with the provided title.` + .leave-temp - `to leave the temp channel the command is called in.` + .remind-me <`#`> <`minutes|hours|days|etc`> <`message`> - `to be reminded of something at the specified time.` + .lotto - `to join the currently running Beyond lotto or get the time remaining.` + .quote - `to quote and reply or save the quote, depending on which reaction you use (:quoteReply: or :quoteSave:).` + .quote <`@user`> - `to quote and reply or save the quote from @user, depending on which reaction you use (:quoteReply: or :quoteSave:).` + .quotes - `to retrieve the list of quotes from everyone on the server.` + .quotes <`@user`> - `to retrieve the list of quotes from the specified user.` + .create-list <`name of list`> - `to create a named list that users can add entries to.` + .list - `to view all of the user created lists.` + .list <`list-name`> <`your new entry`> - `to add a new entry to a user created list.` + .create-group <`groupName`> <`@user1`> <`@user2`> - `To create a mentionable group of users. You can mention as many users as you want.` + .create-group <`groupName`> <`title of game`> - `To create a mentionable group of users who play the specified game.` + .@<`groupName`> <`message to send`> - `To mention all members of a custom group in a message.` + .@<`gameName`> <`message to send`> - `To mention all users who play gameName in a message.` + .@power <`message to send`> - `If not called from #bot-spam or #scrubs will mention the channel's power users in a message.` + .subscribe-catfacts - `Subscribe to have the latest catfacts DMed hourly!` + .catfacts - `to get a cat fact.` + .channels-left - `to see the temp channels you have left.` + .rejoin-temp <`channel-name`> - `to rejoin a temp channel.` + .ignore-posts - `after adding :trashcan: reaction to posts, to stop them from appearing in #car-parts.` + .delete - `call this after adding both :trashcan: and :black_circle: reactions to first and last messages to delete. All messages between the two you reacted to will be deleted, including those two. This will only work if you are in a temp channel you created.` ### TV and Movie Ratings + .rate <`tv|movie`> <`1-4`> <`title of content`> - `to rate a tv or movie show 1-4 stars` + .rating-info <`title of content`> - `to get rating info for a title` + .delete-rating <`tv|movie> - `to delete your rating of a title` + .refresh-ratings - `to update the IMDB and RT ratings` ### Admin Commands + backup - `backs up all json files within the data folder to ../jsonBackups.` + restore <`backupFileName`> - `restores json files to the specified backup.` + list-backups - `lists the available backups.` + restart <`up|hard`> - `restarts and updates the bot if specified.` + export - `writes all local data to their appropriate json files immediately.` + log - `toggles server output redirection to discord channel #server-log.` + revive - `revives a fallen Scrubbing Bubble.` + update-readme - `updates the readme to include new commands.` + add-player <`@user`> <`game name`> - `adds a player to gamesPlayed.` + remove-player <`@user`> <`game name`> - `removes a player from gamesPlayed.` + cars - `gets parts for sale by crawling car forum and creating a collage of all images in post.` + admin-help - `lists admin command usage.` + missing-help - `lists commands missing help.` + review-messages - `initiates message review process for quarantined users.` ## Examples ### Player Count Heatmap and Trends ![Player count heatmap](https://imgur.com/m93dbTH.png) ![Peak player count trend](https://i.imgur.com/h6BAC6w.png) ![Single game player count trend](https://i.imgur.com/gXvwZ2S.png) ![Multi-game player count trend](https://i.imgur.com/4YrXOHx.png) ### Movie and TV Ratings Table ![Ratings table](https://i.imgur.com/UJNcuWU.png) ### Stocks ![Stock portfolio](https://i.imgur.com/MBnEVwY.png) ![Daily stock changes](https://i.imgur.com/zcTZtvO.png) ### Users Who Play the Same Games and Playtime ![Who Plays](https://i.imgur.com/P13BmTn.png) ![Cumulative Hours Played](https://i.imgur.com/yClv3OC.png) ### Games ![Race](https://i.imgur.com/7PZmk24.gif) </div> <hr> <div><B>近期下载者</B>:</div> <div id="download-users"></div> <hr> <div><B>相关文件</B>:</div> <div id="relate-items"></div> <hr> <div><B>评论</B>:[<a href=/Download/comment/id/1698032315343905.html data-toggle=modal data-target="#myModal">我要评论</a>] [<a class='pop-a' href=/Download/report/id/1698032315343905.html>举报此文件</a>]</div> <div id="file-comments"></div> <hr> <div><B>收藏者</B>:</div> <div id="favor-users"></div> <p></p> </div> <div class="col-xs-12 col-md-4"> <div class="ad-sidebar text-center"> <div class="ad-300"> </div> </div> </div> </div> </div> </div> <div class="my-footer"> <div class="container"> <div class="pull-right"> </div> <div> <a href="http://www.pudn.com" target=_blank>© 联合开发网 from 2004</a> | <a href="/Index/contact.html">联系站长</a> | <a href=" https://beian.miit.gov.cn" target=_blank>湘ICP备2023001425号</a> | <a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=43010502000604" target=_blank>网安备43010502000604</a> | </div> </div> </div> </div><!-- /wrapper--> <!-- page specific plugin scripts --> <!-- inline scripts related to this page --> <div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> </div> </div> </div><!-- /.modal-table --> </body> <script type="text/javascript"> $(document).on('click', '.list-more', function(){ var id=$(this).attr('data-id'); $('#list-'+id).css('max-height',$('#list-'+id)[0].scrollHeight); $(this).removeClass('list-more'); $(this).addClass('list-hide'); $(this).html('<i class="fa fa-angle-double-up"></i>'); //$(this).hide(); return false; }); $(document).on('click', '.list-hide', function(){ var id=$(this).attr('data-id'); $('#list-'+id).css('max-height','100px'); $(this).removeClass('list-hide'); $(this).addClass('list-more'); $(this).html('<i class="fa fa-angle-double-down"></i>'); return false; }); $("#myModal").on("hidden.bs.modal", function() { $(this).removeData(); }); $(document).on("click",".keyword",function(){ var keyword=$(this).attr("keyword"); var type_id=$(this).attr("type_id"); if(typeof(type_id) =="undefined" || type_id =="") type_id="0"; location.href="http://search.pudn.com/Download/index?keyword="+keyword; return false; }); </script> <script type="text/javascript" src="/js/time.js"></script> <script type="text/javascript" src="/js/marked.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('.hide-list').each(function(){ if ($(this)[0].offsetHeight < $(this)[0].scrollHeight){ var id=$(this).attr('id'); id =id.substring(5); $(this).after('<div style="text-align:center"><a href="" class="list-more" data-id="' + id + '"><i class="fa fa-angle-double-down"></i></a></div>'); } }); }); var g_id="1698032315343905"; var keywords =new Array(); keywords[0] ='nodejs';keywords[1] ='javascript';keywords[2] ='gaming';keywords[3] ='heatmap';keywords[4] ='discord-bot'; function get_download_user(){ var url ="/Download/get_download_user/id/"+g_id+".html"; $.get(url,function(ret){ if(ret.length ==0) return; var html=''; for(i in ret){ html =html + '<a href=/User/profile/id/'+ret[i].user_new_id+'.html>'+ret[i].name+'</a> '; } $('#download-users').append(html); }); } function get_relate_item(){ var url ="/Download/get_relate_item/id/"+g_id+'.html'; $.get(url,function(ret){ if(ret.length ==0) return; var html=''; var intro; for(i in ret){ intro =ret[i].intro; for(j in keywords){ var reg =new RegExp(keywords[j],'gmi'); intro =intro.replace(reg,'<font color=brown>'+keywords[j]+'</font>'); } html =html + '[<a href=/Download/item/id/'+ret[i].new_id+'.html>'+ret[i].name+'</a>]  '+intro+'<BR>'; } $('#relate-items').append(html); }); } function get_score_name(score){ switch(score){ case '100': return '很好,推荐下载'; case '85': return '还不错'; case '75': return '一般,勉强可用'; case '50': return '差'; case '3': return '纯粹是垃圾'; case '40': return '和说明完全不符'; case '20': return '文件不全'; case '10': return '不是源代码或资料'; case '5': return '文件有密码,不知道密码'; case '0': return '不能解压或下载失败'; } return ''; } function get_comment(){ var url ="/Download/get_comments/id/"+g_id+'.html'; $.get(url,function(ret){ if(ret.length ==0) return; var total_count =ret.total_count; var data =ret.data; var html=''; for(i in data){ html =html + '<a href="/User/profile/id/'+data[i].user_new_id+'.html" class="uploader">'+data[i].user_name+'</a>: <span class="comment-score">'+get_score_name(data[i].score)+'</span>, '+data[i].content+'<BR>'; } $('#file-comments').append(html); }); } function get_favor(){ var url ="/Download/get_item_favors/id/"+g_id+".html"; $.get(url,function(ret){ if(ret.length ==0) return; var html=''; for(i in ret){ html =html + '<a href=/User/profile/id/'+ret[i].user_new_id+'.html class=user>'+ret[i].name+'</a> '; } $('#favor-users').html(html); }); } // 得到下载这个的用户又下载了什么 function get_more_download(){ } // 得到下载这个的用户又搜索了什么 function get_more_keyword(){ } // 得到论坛相关问题 function get_bbs(){ } // 得到软件工场相关内容 function get_works(){ } // 得到相关聊天室 function get_chat(){ } // 得到相关软件商城信息 function get_shop(){ } // 得到job // 得到学习内容 // 数据 get_download_user(); //get_relate_item(); get_comment(); get_favor(); $('.vote-up').click(function(){ var url="/Download/vote/t/up/id/"+g_id; $.get(url,function(ret){ if(ret.status==0){ alert(ret.info); if(ret.url.length >0) location.href=ret.url; } else{ var s =$('#vote-up-count').html(); if(s =='') s="0"; var count =parseInt(s)+1; $('#vote-up-count').html(count); } }) return false; }); $('.vote-down').click(function(){ var url="/Download/vote/t/down/id/"+g_id; $.get(url,function(ret){ if(ret.status==0) alert(ret.info); else{ var s =$('#vote-down-count').html(); if(s =='') s="0"; var count =parseInt(s)+1; $('#vote-down-count').html(count); } }) return false; }); $('.favor-item').click(function(){ var url="/Favor/add/t/0/id/"+g_id; $.get(url,function(ret){ if(ret.status==0){ alert(ret.info); } else{ var s =$('#favor-count').html(); if(s =='') s="0"; var count =parseInt(s)+1; $('#favor-count').html(count); } }) return false; }); $('.pop-a').click(function(){ var url=$(this).attr('href'); $.get(url,function(ret){ alert(ret.info); //location.reload(); }) return false; }); document.getElementById('readme').innerHTML =marked.parse(document.getElementById('readme').innerHTML); </script> </html>