Elementbot (#Blocktopia IRC bot)

Fiestaguy

The man with 8 fingers.
Joined
Sep 11, 2013
Messages
2,197
Reaction score
1,643
Note: This bot has been approved by administrator superstein under the condition that it follows standard blocktopia etiquette.

Elementbot is a utility IRC bot programmed by me, Fiestaguy and currently sits in channels #Blocktopia and #GotE on irc.esper.net.

Elementbot's current version is 1.5.4, and is being hosted from a remote Unix shell provided by Openshells.net

Per-version changelogs and sourcecodes can be found at:
http://fiestasheep.openshells.org/
(Alternative link: http://thebes.openshells.org/~fiestasheep )

Elementbot has an array of functions, most of them should work anywhere, at anytime. But some only work in specific channels.

Some functions require higher 'authorization.' If you are granted higher authorization than the standard (E.) you must authenticate by messaging the bot '.auth username password.' Authorization levels are, in descending order: A+, A., B+, B., C+, C#, C., D., E. and F.. Every person has E. by default. If your rank is F., you will be ignored by the bot. D. is for registered users (To be added), C. is reserved for GotE roleplayers, B and higher is reserved for #GotE mods/Blocktopia mods.

Functions:
Info (syntax: .?) [#Blocktopia] [#GotE] {E. or higher} (1.5.3)
Will return general info about the bot.


Correction (syntax: .red <torep>/<rep> || ALT Syntax: s/<torep>/<rep>) [#GotE] [#Blocktopia] {E. or higher} (1.5-3) Will replace torep in the sender's last message and replace it with rep.

Register (syntax: .register <name> <password>) [Elementbot] {E. or higher} (1.5-3)[/BCOLOR]
Register to the bot! (PRIVATE MESSAGE this to him!) Do NOT Use a password you use for other services! Passwords aren't encrypted (yet) and the owner can see them!


Seen (syntax: .seen <name>) [#Blocktopia] [#GotE] {E. or higher} (1.5.3)
Will return when the specified user was last online, and what they last said.

Hex (syntax: .hex <number>) [#Blocktopia] [#GotE] {E. or higher} (1.5.3)
Will return the hexadecimal number of the number given.

Byte (syntax: .byte <text>) [#Blocktopia] [#GotE] {E. or higher} (1.5.3)
Will return the ASCII byte values of the text and escape-sequences given.

Evaluate (syntax: .eval <sum>) [#Blocktopia] [#GotE] {E. or higher} (1.5.4)
Will calculate a given sum. This function supports 'pi' and 'inf' for infinity.
Supported arithmetic operators are: addition (+), substraction (-), division (/), pow (^), modulus (%) and brackets to change the order of operations.

Math (syntax: .math <mode> <numbeR>) [#Blocktopia] [#GotE] {E. or higher} (1.5.4)
Will perform a mathematical function on a given number.
Supported modes are:
abs - Will return the absolute/non-negative value of a number.
acos/asin - Will return the inverse cosine/sine radians.
atan/atant - Returns the inverse tangent in radians. Supply 2 numbers in this format: s/c.
floor/ceil - Return the integer no greater than or no less than the given value.
cos/sin/tan - Return the cosine, sine and tangent value for a given value in radians.
cosh/sinh/tanh - Return the hyperbolic cosine, hyperbolic sine, and hyperbolic tangent value.
deg/rad - Convert from radians to degrees and vice versa.
exp/log - exp returns e (the base of natural logarithms) raised to the power the given value. math.log() returns the inverse of this. exp 1 returns e.
logt - Return the base 10 logarithm of a given number. The number must be positive.
sqrt - Return the square root of a given number. Only non-negative arguments are allowed.

Define (syntax: .def <word>) [#Blocktopia] [#GotE] {E. or higher} (All versions) Will return the definition for given word.

Synonym (syntax: .syn <word>) [#Blocktopia] [#GotE] {E. or higher} (All versions)
Will return a list of synonyms of the given word.

Tell (syntax: .tell <recipient> <message>) [#Blocktopia] [#GotE] {E. or higher} (All versions) Will leave a message for the specified recipient. If you are sending from am unregistered name, recipient will be notified of that. If you are sending from a registered name without having authorised, message will not send. If recipient is a registered user, they will recieve the message upon authorising with the bot. If recipient is not a registered user, anyone who changes their nick to the recipient's can see it! Note that the recipient must be an ELEMENTBOT-registered Username!

Reverse (syntax: .rev <word/phrase>) [#Blocktopia] [#GotE] {E. or higher} (1.4.1-1)
Will return the given word/phrase in reverse.

Random (syntax: .random <number>/<number>) [#Blocktopia] [#GotE] {E. or higher} (All versions)
Will return a number inbetween the two specified. (Broken)

Authorize (syntax: .auth <username> <password>) [Elementbot] {E. or higher} (All versions)
Will authorise you to Elementbot and allow you access to commands that need higher authorization. After authorizing, Elementbot will track nickname changes, preventing the need for constant re-authorization. NOTE: PRIVATE MESSAGE this to the bot. This will not work in main chat, and you'll end up announcing your password!



Kill (syntax: .kill) [#Blocktopia] [#GotE] {A. or higher} (All versions)
Will quit the bot's connection to IRC.

Test (syntax: .test) [#Blocktopia] [#GotE] {B+ or higher} (1.4.1-1)
Will have the bot test if connections are still working.

Thread-searching (TO BE ADDED)
Will search for a given thread name on the Blocktopia.net forums.

Insecure Tell (TO BE ADDED)
Same as tell, but will not wait for recipient to authorize if it is sent to a registered user.

Setmode (TO BE RE-ADDED)


Choose (TO BE RE-ADDED)

Report (TO BE ADDED)
Report abuse by a user to moderators. Will record the logs from 5 minutes prior to 10 minutes after the report function has been performed.

Showtells (TO BE ADDED)
Will show tells arrived after a nick change/downtime.

Antonym (TO BE ADDED)
Will return a list of antonyms of the given word.


Translate (TO BE ADDED)
Will translate a word or phrase with google.

Timezone calculator (TO BE ADDED)
Will calculate the time from one timezone/country to the other.

Compute (TO BE ADDED)
Will calculate a given mathematical equation.

Wikipedia (TO BE ADDED)
Will return a wikipedia page about the given term.

N00bpedia (TO BE ADDED)
Will return a simple.wikipedia page about the given term.

SMTP Tell support (TO BE ADDED(?))
If Openshells operators allow it, support will be added for .tell's to be sent to the user's e-mail if specified.

Registering:
At this point in time, registering is not possible without requesting me to add you manually. This will be added later. As of 1.5-3 you can register using the function '.register'. All Director+'s can PM me to get A. authorization to kill the bot if needed, and all Controllers/VetOps can PM me for B+ authorization to view logs of user abuse.

Bugs:
If you found a bug, please post it here. Please note the function that is bugged, what arguments you supplied it, your clearance, what happened afterwards, and what commands were used shortly before the bug.

Suggestions:
If you have suggestions for any functions/features to be added to the bot, please post here what your function is, what it does, and why it should be added.

Statistics:
Versions made: 9
Bugs squashed: 15
Day-since-last-reset: 1

Changelog:
v1.4.0:
+ Added functionality for thesaurus and dictionary lookup
v1.4.1:
* Thesaurus syntax changed from .thes to .syn
v1.4.1-1:
* Several messages would not display.
* Error-handling for broken tells fixed.

FAQ:
Q. What is Elementbot?
A. Re-read the page.


Q. I still don't get it.
A. Go away

Q. Where can I find the bot's sourcecode?
A. The bot is closed source. Only Tnmjimbob currently has access to the sourcecode. Sourcecode can be found at http://thebes.openshells.org/~fiestasheep/ (Cretins not allowed.)

Q. How are you hosting Elementbot?
A. As stated before, I have a remote Unix shell provided by Openshells.net

Q. Can you vouch me on Openshells so I can get a shell myself?
A. Go away, that's not how it works.

Q. Elementbot asl?
A. Unlike it's older brother GmKBot, Elementbot is programmed with functionality as a priority, and fun stuff as a secondary little thing.

Q. .rev redrum
A. Go away.

Q. Elementbot's ignoring me!
A. Either the syntax is wrong, or you're on mode F.. If the second one, stop trying.

Q. Elementbot's taking too long to reply!
A. Call your ISP for faster bandwith.

Q. Elementbot's taking too long to reply!
A. Apart from spamming not being allowed in IRC to begin with, you're most likely to be given mode F. if you do.

Q. .say I am an idiot!
A. That function is useless and does not add anything, so I didn't implement it.

Q. .rev !toidi na ma I
A. You really have nothing better to do, do you?

Q. Can I help with development of Elementbot?
A. At the moment, help is not required.

Q. I found <bug> in the code!
A. Read the section 'Bug reporting'

Q. Can you implement <function>?
A. Read the section 'Suggestions'

FAQ Updated 30/1/15
Q. Why did you update the FAQ?
A. Because you keep asking stupid questions.


Q. I drank Elementbot today, he tasted different.
A. See final question.


Q. I want to make my own bot and put it in the channel with Elementbot! Can we split their jobs?
A. No. That is not needed and will clutter the channel with 'Picklebot' 1 through 7.


Q. But we can put them together and call them "Elemenbro's"
A. Go fuck yourself.


Q. What's new in v1.5.1?
A. Look at the changelogs.


Q. I don't understand any of this!
A. Hire someone who does.


Q. Can I just copy Elementbot's sourcecode and run it somewhere else?
A. No. Most of Elementbot's functions are hardcoded onto #Blocktopia and #GotE. You'd need to tinker a bit with it to get it working.


Q. Eh, why did Elementbot just... what?
A. Stop looking at him when he undresses. It makes him uncomfortable.


Q. http://PoodlesHavingSex.com
A. Post that link again in v1.6, which will auto-report anyone posting porn links.


Q. http://CorgiesHavingOrgies.com
A. Okay, that's just we- Q. http://LabradorsHavingAFifteenSome.com
A. Someone please call the admins.


Q. http://SoMuchPo-
A. Let me drag someone else in.


Q. Hello! I'm a guy twice as stupid as the last one!
A. Please go away.


Q. I don't want to go!
A. ...


Q. Why did this version take significantly longer to update?
A. Because I had other stuff to do.


Q. Focus on Elementbot from now on!
A. Go Away


Q. Ermg!!! It said someone tried to log into my account!!!
A. Go sue them.


Q. Omg someone logged into it!!!
A. Choose a better password.


Q. Elementbot just spammed furry porn!
A. No he didn't.


Q. Someone said Elementbot spammed furry porn!
A. Burn them.


Q. Elementbot is furry porn!
A. Go away.


Q. Is Elementbot related to furry porn in some way, shape or form?
A. No.


Q. But I want furry porn!
A. Go. Away.


Q. If Elementbot was an alcaholic beverage, what would it be?
A. v1.4.1-1: The cheaper supermarket-variant champagne.
v1.5.1: A box of funny tasting red wine glasses strapped together with barbed wire.
 
Last edited:

Pick Yer Poison

is a kid now, is a squid now
Joined
Aug 5, 2011
Messages
616
Reaction score
1,731
can it fight with gmkbot? i have robo battle needs

welp
here it is
now we just need pickbot as a permanent resident and we're set
if i keep pickbot online too long it starts to develop sentience so i kill its connection regularly to prevent a global thermonuclear war

you're welcome, by the way
 
Top