This is my first mIRC snippet -- the XCDictionary Script.
You and other users on IRC can define the world as you see it, by adding definitions, voting on them, and enjoying.
There's a ridiculously long admin panel for all your needs, with functions such as reports, deleting of definitions and words, banning, and restricting words.
There's also a $dcolor and $enddcolor alias that can be used as a return colour for those who know how to use it.
---Make sure you look at the admin panel! /dadmin ---
For users help, have them type !dhelp
Hope you all enjoy.
;;;;;;;[ XCdictionary v1.0 ];;;;;;;
;;;;;;;[Written by Setever];;;;;;;
;Author's Notes: I added a $dcolor and $enddcolor for those of you who'd like to add color to all of the statements in the script. Just add a color and an ending after the 'return' in the aliases. If you don't understand this, don't attempt it!
;Author's Notes Part Two: You MUST view the admin panel! type: /dadmin
alias dcolor { return }
alias enddcolor { return }
alias dadmin {
//echo -a $dcolor This is the XCdictionary project, or more commonly and plainly, the 'Dictionary'. The following are your commands. $enddcolor
//echo -a $dcolor BANS - You can ban members, or even addresses from accessing the dictionary. $enddcolor
//echo -a $dcolor * !nickban - You can ban a person's nick from using the dictionary and its features. $enddcolor
//echo -a $dcolor * !addressban - You can ban a person's address by just adding their nick afterwards. $enddcolor
//echo -a $dcolor * !removebans - You can remove a ban you've set. You must add the exact address you find from /viewbans if you are trying to remove an address. $enddcolor
//echo -a $dcolor * /viewbans - Will show all of the bans you've made, both addresses and nicks. $enddcolor
//echo -a $dcolor REPORTS - People can report errors or comments, and you can look or check them with these commands. $enddcolor
//echo -a $dcolor * /viewreports - Will show all the reported words. The first word in the report is the reported words, and the rest are the report comments. $enddcolor
//echo -a $dcolor * /clearreport - You can clear the reports that you think have been taken care of. You follow the command with the report number found in /viewreports
//echo -a $dcolor PROTECTED WORDS - You can protect a word so that nobody can add definitions on it. You can do this to keep the definitions as they are, or restrict a bad word.
//echo -a $dcolor * /protectword - Just add the word after the command.
//echo -a $dcolor * /listprotected - You can view all of the protected words you've set with command.
//echo -a $dcolor * /removeprotect - You can use this to take the protection off of a word. Just add the word after the command.
//echo -a $dcolor DELETION AND CHECK - You can delete words, or definitions, and check them with these commands.
//echo -a $dcolor * /ddelete - You can delete a specific definition, or a complete word. If you're deleting a definition, you must use the specific ID, found in the definition, the number that goes after the !UP or !DOWN command. $enddcolor
//echo -a $dcolor * /dword - You can view the word and all definitions that go along with it by adding the word after the command! $enddcolor
}
on *:TEXT:!dhelp:#: {
if ($istok(%dictionary_address_banned_list,$address($nick,4),44)) { notice $nick You have banned banned from the dictionary and its functions. }
else {
if ($istok(%dictionary_nick_banned_list,$nick,44)) { notice $nick Your nick has been banned from the dictionary and its functions. }
else {
notice $nick $dcolor This is the XCdictionary project made by Setever, to help define the world! $enddcolor
notice $nick $dcolor Commands: !dictionary [word], !find [word], !define [word] [definition], !report [word] [comments] $enddcolor
}
}
}
on *:TEXT:!dictionary*:#: {
if ($istok(%dictionary_address_banned_list,$address($nick,4),44)) { notice $nick You have banned banned from the dictionary and its functions. }
else {
if ($istok(%dictionary_nick_banned_list,$nick,44)) { notice $nick Your nick has been banned from the dictionary and its functions. }
else {
if ($2) {
if ($istok(%defined_words,$2,44)) {
msg $chan $dcolor %xcdictionary_word_ [ $+ [ $2 ] ] $+ . $2 $enddcolor
msg $chan $dcolor There are $numtok(%xcdictionary_word_total_definitions_ [ $+ [ $2 ] ],44) definitions for: $2 $+ . To view them, type !find $2 $+ . $enddcolor
}
else {
msg $chan $dcolor The definition of $2 has yet to be recorded! Add your own! $enddcolor
msg $chan $dcolor To add your own definition, type: !define WORD [definition] $+ . $enddcolor
}
}
else { notice $nick You need to add a word after! Correct Syntax: !dictionary WORD }
}
}
}
on *:TEXT:!define*:#: {
if ($istok(%dictionary_address_banned_list,$address($nick,4),44)) { notice $nick You have banned banned from the dictionary and its functions. }
else {
if ($istok(%dictionary_nick_banned_list,$nick,44)) { notice $nick Your nick has been banned from the dictionary and its functions. }
else {
if ($istok(%protected_words,$2,44)) { notice $nick That word has been protected. You may not define it! }
else {
if (!$2) { notice $nick You must add a word after the !define command! Correct Syntax: !define WORD [definition] }
elseif (!$3) { notice $nick You must add a definition! Correct Syntax: !define WORD [definition] }
else {
if (!$istok(%defined_words,$2,44)) {
inc %individual_id 1
set %defined_words $addtok(%defined_words,$2,44)
set %xcdictionary_word_ [ $+ [ $2 ] ] %individual_id
inc %individual_id 1
set %xcdictionary_word_total_definitions_ [ $+ [ $2 ] ] $addtok(%xcdictionary_word_total_definitions_ [ $+ [ $2 ] ],%individual_id,44)
set %xcdictionary_definition_ [ $+ [ %individual_id ] ] $3-
set %xcdictionary_definition_adder_ [ $+ [ %individual_id ] ] $nick
set %total_up_votings_ [ $+ [ %individual_id ] ] 0
set %total_down_votings_ [ $+ [ %individual_id ] ] 0
set %total_definition_up_down_possible $addtok(%total_definition_up_down_possible,%individual_id,44)
msg $chan $dcolor Definition for Word ' $+ $2 $+ ' added. Definition: $3- $+ . To see the definitions, type: !find $2 $enddcolor
set %xcdictionary_total_definitions $addtok(%xcdictionary_total_definitions,%individual_id,44)
set %xcdictionary_individual_id_word_ [ $+ [ %individual_id ] ] $2
}
else {
inc %individual_id 1
set %xcdictionary_word_total_definitions_ [ $+ [ $2 ] ] $addtok(%xcdictionary_word_total_definitions_ [ $+ [ $2 ] ],%individual_id,44)
set %xcdictionary_definition_ [ $+ [ %individual_id ] ] $3-
set %xcdictionary_definition_adder_ [ $+ [ %individual_id ] ] $nick
set %total_up_votings_ [ $+ [ %individual_id ] ] 0
set %total_down_votings_ [ $+ [ %individual_id ] ] 0
set %total_definition_up_down_possible $addtok(%total_definition_up_down_possible,%individual_id,44)
msg $chan $dcolor Definition for Word ' $+ $2 $+ ' added. Definition: $3- $+ . To see the definitions, type: !find $2 $enddcolor
set %xcdictionary_total_definitions $addtok(%xcdictionary_total_definitions,%individual_id,44)
set %xcdictionary_individual_id_word_ [ $+ [ %individual_id ] ] $2
}
}
}
}
}
}
on *:TEXT:!find*:#: {
if ($istok(%dictionary_address_banned_list,$address($nick,4),44)) { notice $nick You have banned banned from the dictionary and its functions. }
else {
if ($istok(%dictionary_nick_banned_list,$nick,44)) { notice $nick Your nick has been banned from the dictionary and its functions. }
else {
if (!$2) { notice $nick $dcolor You must add a word after the !find command! Correct Syntax: !find WORD $enddcolor }
else {
if (!$istok(%defined_words,$2,44)) {
notice $nick $dcolor The definition of $2 has yet to be recorded! Add your own! $enddcolor
notice $nick $dcolor To add your own definition, type: !define WORD [definiton] $+ . $enddcolor
}
else {
notice $nick $dcolor Definitions of $2 $+ :
var %x = $numtok(%xcdictionary_word_total_definitions_ [ $+ [ $2 ] ],44)
var %newdefinition 0
while (%newdefinition < %x) {
inc %newdefinition 1
var %superx = $gettok(%xcdictionary_word_total_definitions_ [ $+ [ $2 ] ],%newdefinition,44)
notice $nick Definition %newdefinition $+ : %xcdictionary_definition_ [ $+ [ %superx ] ] (Added by: %xcdictionary_definition_adder_ [ $+ [ %superx ] ] $+ ) [Ratings: Up: $calc( $numtok(%total_up_votings_ [ $+ [ %superx ] ],44) - 1) . Down: $calc( $numtok(%total_down_votings_ [ $+ [ %superx ] ],44) - 1) To UP this definition, type !UP %superx $+ . To DOWN this definition, type !DOWN %superx $+ . ]
}
}
}
}
}
}
on *:TEXT:!up*:#: {
if ($istok(%dictionary_address_banned_list,$address($nick,4),44)) { notice $nick You have banned banned from the dictionary and its functions. }
else {
if ($istok(%dictionary_nick_banned_list,$nick,44)) { notice $nick Your nick has been banned from the dictionary and its functions. }
else {
if (!$2) { notice $nick You must add the specific ID number after your command! Correct Syntax: !up NUMBER }
else {
if ($2 !isnum) { notice $nick You must add only numbers after your command! Correct Syntax: !up NUMBER }
else {
if (!$istok(%xcdictionary_total_definitions,$2,44)) { notice $nick That is not a proper ID number! Type !find WORD to find the right number. }
else {
if ($istok(%total_up_votings_ [ $+ [ $2 ] ],$nick,44)) { notice $nick You have already voted Number $2 Up! }
else {
if ($istok(%total_down_votings_ [ $+ [ $2 ] ],$nick,44)) {
set %total_up_votings_ [ $+ [ $2 ] ] $addtok(%total_up_votings_ [ $+ [ $2 ] ],$nick,44)
set %total_down_votings_ [ $+ [ $2 ] ] $remtok(%total_down_votings_ [ $+ [ $2 ] ],$nick,44)
msg $chan $dcolor $nick changed their vote from Down to Up for definition $2 $+ ! $enddcolor
}
else {
set %total_up_votings_ [ $+ [ $2 ] ] $addtok(%total_up_votings_ [ $+ [ $2 ] ],$nick,44)
msg $chan $dcolor $nick voted Up for definition $2 $+ ! $enddcolor
}
}
}
}
}
}
}
}
on *:TEXT:!down*:#: {
if ($istok(%dictionary_address_banned_list,$address($nick,4),44)) { notice $nick You have banned banned from the dictionary and its functions. }
else {
if ($istok(%dictionary_nick_banned_list,$nick,44)) { notice $nick Your nick has been banned from the dictionary and its functions. }
else {
if (!$2) { notice $nick You must add the specific ID number after your command! Correct Syntax: !up NUMBER }
else {
if ($2 !isnum) { notice $nick You must add only numbers after your command! Correct Syntax: !up NUMBER }
else {
if (!$istok(%xcdictionary_total_definitions,$2,44)) { notice $nick That is not a proper ID number! Type !find WORD to find the right number. }
else {
if ($istok(%total_down_votings_ [ $+ [ $2 ] ],$nick,44)) { notice $nick You have already voted Number $2 Up! }
else {
if ($istok(%total_up_votings_ [ $+ [ $2 ] ],$nick,44)) {
set %total_down_votings_ [ $+ [ $2 ] ] $addtok(%total_down_votings_ [ $+ [ $2 ] ],$nick,44)
set %total_up_votings_ [ $+ [ $2 ] ] $remtok(%total_up_votings_ [ $+ [ $2 ] ],$nick,44)
msg $chan $dcolor $nick changed their vote from Up to Down for definition $2 $+ ! $enddcolor
}
else {
set %total_down_votings_ [ $+ [ $2 ] ] $addtok(%total_down_votings_ [ $+ [ $2 ] ],$nick,44)
msg $chan $dcolor $nick voted Down for definition $2 $+ ! $enddcolor
}
}
}
}
}
}
}
}
on *:TEXT:!report*:#: {
if ($istok(%dictionary_address_banned_list,$address($nick,4),44)) { notice $nick You have banned banned from the dictionary and its functions. }
else {
if ($istok(%dictionary_nick_banned_list,$nick,44)) { notice $nick Your nick has been banned from the dictionary and its functions. }
else {
if (!$2) { notice $nick You must add the word of which you're reporting! Correct Syntax: !report WORD [comments] }
else {
if (!$3) { notice $nick You must add a description of what you're reporting. Add your command! Correct Syntax: !report WORD [comments] }
else {
if ($istok(%defined_words,$2,44)) {
var %report_number 1
:new
while ($gettok(%xcdictionary_reports_number,%report_number,47)) {
inc %report_number
goto new
}
set %xcdictionary_reports_number $addtok(%xcdictionary_reports_number,%report_number,47)
set %xcdictionary_reports_direct $addtok(%xcdictionary_reports_direct,$2-,47)
msg $chan $dcolor Report for word $2 added: $3- $+ ! $enddcolor
}
elseif ($2 == GENERALREPORT) {
var %report_number 1
:new
while ($gettok(%xcdictionary_reports_number,%report_number,47)) {
inc %report_number
goto new
}
set %xcdictionary_reports_number $addtok(%xcdictionary_reports_number,%report_number,47)
set %xcdictionary_reports_direct $addtok(%xcdictionary_reports_direct,$2-,47)
msg $chan $dcolor A general report has been recorded: $3- $+ ! $enddcolor
}
else { notice $nick That word has not been defined; therefore, there does not need to be a report on it. If you'd like to make a general report, type: !report GENERALREPORT [comments] }
}
}
}
}
}
alias viewreports {
var %report_number2 0
:neww
while ($gettok(%xcdictionary_reports_number,%report_number2,47)) {
inc %report_number2
//echo -a $dcolor Current report( $+ %report_number2 $+ ): $gettok(%xcdictionary_reports_direct,%report_number2,47) $enddcolor
goto neww
}
}
on *:INPUT:#: {
if ($1 == !nickban) {
if ($istok(%dictionary_nick_banned_list,$2-,44)) { /timer 1 1 //echo -a $dcolor That nick has already been banned. $enddcolor }
else {
set %dictionary_nick_banned_list $addtok(%dictionary_nick_banned_list,$2-,44)
/timer 1 1 /msg $chan $dcolor The Nick Restricted List has a new addition: $2- $+ ! $enddcolor
}
}
elseif ($1 == !addressban) {
if ($istok(%dictionary_address_banned_list,$address($2,4),44)) { /timer 1 1 //echo -a $dcolor That address has already been banned. $enddcolor }
else {
set %dictionary_address_banned_list $addtok(%dictionary_address_banned_list,$address($2,4),44)
/timer 1 1 /msg $chan $dcolor The Address Restricted List has a new addition: $2- $enddcolor
}
}
elseif ($1 == !removeban) {
if ($regex($2-,/\@/) == 1) {
if ($istok(%dictionary_address_banned_list,$2-,44)) {
set %dictionary_address_banned_list $remtok(%dictionary_address_banned_list,$2-,44)
/timer 1 1 /msg $chan $dcolor The Ban of $2- has been removed! $enddcolor
}
else { /timer 1 1 //echo -a That ban is not listed. To view the bans, type /viewbans }
}
else {
if ($istok(%dictionary_nick_banned_list,$2-,44)) {
set %dictionary_nick_banned_list $remtok(%dictionary_nick_banned_list,$2-,44)
/timer 1 1 /msg $chan $dcolor The Nick ban of $2- has been removed! $enddcolor
}
else { /timer 1 1 //echo -a $dcolor That nick ban is not listed. To view the bans, type /viewbans $enddcolor }
}
}
}
alias viewbans {
//echo -a $dcolor Addresses Banned: %dictionary_address_banned_list $enddcolor
//echo -a $dcolor Nicks Banned: %dictionary_nick_banned_list $enddcolor
}
alias clearreport {
if ($gettok(%xcdictionary_reports_number,$1,44)) {
var %part1 = $gettok(%xcdictionary_reports_number,$1,44)
set %xcdictionary_reports_number $remtok(%xcdictionary_reports_number,%part1,44)
var %part2 = $gettok(%xcdictionary_reports_direct,$1,44)
set %xcdictionary_reports_direct $remtok(%xcdictionary_reports_direct,%part2,44)
//echo -a Report of ' $+ %part2 $+ ' cleared.
}
else { //echo -a $dcolor You didn't select a correct number. $enddcolor }
}
alias dword {
if ($istok(%defined_words,$1,44)) {
//echo -a $dcolor Definitions of $1 $+ :
var %x = $numtok(%xcdictionary_word_total_definitions_ [ $+ [ $1 ] ],44)
var %newdefinition 0
while (%newdefinition < %x) {
inc %newdefinition 1
var %superx = $gettok(%xcdictionary_word_total_definitions_ [ $+ [ $1 ] ],%newdefinition,44)
//echo -a $dcolor Definition %newdefinition $+ : %xcdictionary_definition_ [ $+ [ %superx ] ] (Added by: %xcdictionary_definition_adder_ [ $+ [ %superx ] ] $+ ) [Ratings: Up: $calc( $numtok(%total_up_votings_ [ $+ [ %superx ] ],44) - 1) . Down: $calc( $numtok(%total_down_votings_ [ $+ [ %superx ] ],44) - 1) To UP this definition, type !UP %superx $+ . To DOWN this definition, type !DOWN %superx $+ . ] $enddcolor
}
}
else { //echo -a $dcolor That word has not yet been defined. $enddcolor }
}
alias ddelete {
if ($1 isletter) {
if ($istok(%defined_words,$1,44)) {
set %defined_words $remtok(%defined_words,$1,44)
var %word_number = $numtok(%xcdictionary_word_total_definitions_ [ $+ [ $1 ] ],44)
var %delete_definition = 1
while (%delete_definition <= %word_number) {
var %ddelete = $gettok(%xcdictionary_word_total_definitions_ [ $+ [ $1 ] ],%delete_definition,44)
unset %xcdictionary_definition_ [ $+ [ %ddelete ] ]
unset %xcdictionary_definition_adder_ [ $+ [ %ddelete ] ]
unset %total_up_votings_ [ $+ [ %ddelete ] ]
unset %xcdictionary_word_total_definitions_ [ $+ [ $1 ] ]
unset %total_down_votings_ [ $+ [ %ddelete ] ]
unset %xcdictionary_word_ [ $+ [ $1 ] ]
set %total_definition_up_down_possible $remtok(%total_definition_up_down_possible,%ddelete,44)
set %xcdictionary_total_definitions $remtok(%xcdictionary_total_definitions,%ddelete,44)
inc %delete_definition
unset %xcdictionary_individual_id_word_ [ $+ [ $1 ] ]
//echo -a $dcolor Definition of ' $+ $1 $+ ' has been deleted! $enddcolor
}
}
else { //echo -a $dcolor Word ' $+ $1 $+ ' is not a definition. $enddcolor }
}
elseif ($1 isnum) {
if ($istok(%xcdictionary_total_definitions,$1,44)) {
var %current_deletion = %xcdictionary_individual_id_word_ [ $+ [ $1 ] ]
if ($numtok(%current_deletion,44) == 1) {
set %defined_words $remtok(%defined_words,%current_deletion,44)
unset %xcdictionary_word_ [ $+ [ %current_deletion ] ]
unset %xcdictionary_word_total_definitions_ [ $+ [ %current_deletion ] ]
}
set %total_definition_up_down_possible $remtok(%total_definition_up_down_possible,$1,44)
set %xcdictionary_total_definitions $remtok(%xcdictionary_total_definitions,$1,44)
var %current_deletion = %xcdictionary_individual_id_word_ [ $+ [ $1 ] ]
set %xcdictionary_word_total_definitions_ [ $+ [ $1 ] ] $remtok(%xcdictionary_word_total_definitions_ [ $+ [ $1 ] ],$1,44)
unset %xcdictionary_definition_ [ $+ [ $1 ] ]
unset %xcdictionary_definition_adder_ [ $+ [ $1 ] ]
unset %total_up_votings_ [ $+ [ $1 ] ]
unset %total_down_votings_ [ $+ [ $1 ] ]
set %total_definition_up_down_possible $remtok(%total_definition_up_down_possible,$1,44)
set %xcdictionary_total_definitions $remtok(%xcdictionary_total_definitions,$1,44)
unset %xcdictionary_individual_id_word_ [ $+ [ $1 ] ]
unset %xcdictionary_word_total_definitions_ [ $+ [ $1 ] ]
//echo -a $dcolor Definition Number ' $+ $1 $+ ' has been deleted! $enddcolor
}
else { //echo -a $dcolor That is not a correct definition ID. Type /dword WORD to see the ID. $enddcolor }
}
}
alias protectword {
if ($istok(%protected_words,$1,44)) { //echo -a $dcolor This word has already been protected. $enddcolor }
else {
set %protected_words $addtok(%protected_words,$1,44)
//echo -a $dcolor The word ' $+ $1 $+ ' has been protected. $enddcolor
}
}
alias listprotected {
if (%protected_words !== $null) { //echo -a $dcolor Protected Word List: %protected_words $enddcolor }
else { //echo -a $dcolor There are no protected words that you've set. $enddcolor }
}
alias removeprotect {
if (!$istok(%protected_words,$1,44)) { //echo -a $dcolor The word ' $+ $1 $+ ' has not been protected. $enddcolor }
else {
set %protected_words $remtok(%protected_words,$1,44)
//echo -a $dcolor The word ' $+ $1 $+ ' has been removed from the protected list! $enddcolor
}
}