This repository has been archived on 2023-04-13. You can view files and clone it, but cannot push or open issues or pull requests.
CloudBot/plugins/violence.py

106 lines
2.6 KiB
Python
Raw Normal View History

2012-02-29 08:31:42 +01:00
from util import hook
import re
import random
nick_re = re.compile(r"^[A-Za-z0-9_|.-\]\[]*$")
2012-03-26 07:32:20 +02:00
# define lists for messages
larts = []
kills = []
kill_bodyparts = []
slaps = []
slap_items = []
2012-03-26 07:32:20 +02:00
with open("plugins/data/larts.txt") as f:
for line in f.readlines():
if line.startswith("//"):
continue
larts.append(line.strip())
with open("plugins/data/slaps.txt") as f:
for line in f.readlines():
if line.startswith("//"):
continue
2012-03-26 07:11:22 +02:00
slaps.append(line.strip())
with open("plugins/data/slap_items.txt") as f:
for line in f.readlines():
if line.startswith("//"):
continue
2012-03-26 07:11:22 +02:00
slap_items.append(line.strip())
2012-03-26 07:32:20 +02:00
with open("plugins/data/kills.txt") as f:
for line in f.readlines():
if line.startswith("//"):
continue
kills.append(line.strip())
with open("plugins/data/kill_bodyparts.txt") as f:
for line in f.readlines():
if line.startswith("//"):
continue
kill_bodyparts.append(line.strip())
@hook.command
2012-03-26 07:11:22 +02:00
def slap(inp, me=None, nick=None, conn=None, notice=None):
".slap <user> -- Makes the bot slap <user>."
2012-03-26 07:11:22 +02:00
target = inp.lower()
if not re.match(nick_re, target):
notice("Invalid username!")
return
2012-03-26 07:11:22 +02:00
# if the user is trying to make the bot slap itself, slap them
if target == conn.nick.lower() or target == "itself":
target = nick
else:
2012-03-26 07:11:22 +02:00
target = inp
out = random.choice(slaps)
out = out.replace('<who>', target)
out = out.replace('<item>', random.choice(slap_items))
# act out the message
me(out)
2012-02-29 08:31:42 +01:00
@hook.command
2012-03-26 07:11:22 +02:00
def lart(inp, me=None, nick=None, conn=None, notice=None):
".lart <user> -- LARTs <user>."
target = inp.lower()
2012-02-29 08:31:42 +01:00
2012-03-26 07:11:22 +02:00
if not re.match(nick_re, target):
2012-02-29 08:31:42 +01:00
notice("Invalid username!")
return
2012-03-26 07:11:22 +02:00
if target == conn.nick.lower() or target == "itself":
target = nick
2012-02-29 08:31:42 +01:00
else:
target = inp
2012-03-26 07:11:22 +02:00
out = random.choice(larts)
out = out.replace('<who>', target)
out = out.replace('<item>', random.choice(slap_items))
me(out)
@hook.command
2012-03-26 07:11:22 +02:00
def kill(inp, me=None, nick=None, conn=None, notice=None):
".kill <user> -- Makes the bot kill <user>."
2012-03-26 07:11:22 +02:00
target = inp.lower()
2012-03-26 07:11:22 +02:00
if not re.match(nick_re, target):
notice("Invalid username!")
return
2012-03-26 07:11:22 +02:00
if target == conn.nick.lower() or target == "itself":
target = nick
2012-03-06 19:17:49 +01:00
else:
target = inp
2012-03-26 07:11:22 +02:00
out = random.choice(kills)
out = out.replace('<who>', target)
2012-03-26 07:32:20 +02:00
out = out.replace('<body>', random.choice(kill_bodyparts))
2012-03-26 07:11:22 +02:00
me(out)