Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding:Utf-8 -*-
- import es, os, ircbot, irclib, threading, repeat, cfglib, playerlib
- # Variables
- config = cfglib.AddonCFG(es.getAddonPath("ircss") + "/ircss.cfg")
- config.text("******************************")
- config.text(" IRCSS SETTINGS")
- config.text("******************************")
- server = config.cvar("server", "Server adress(ip/nam)", "Your irc server")
- port = config.cvar("port", 6667, "Server port")
- channel = config.cvar("channel", "#channel", "Your channel")
- botname = config.cvar("botname", "name", "The name of your Bot")
- irclib.DEBUG = config.cvar("irclib.DEBUG", 0, "Print IRC informations ? (server to client) 1/0")
- forcing = config.cvar("forcing", 1, "If the bot is not able to connect the server, change this value to 1")
- stream = config.cvar("stream", 0, "Stream game server messages on the channel 1 = on")
- streamIRC = config.cvar("streamIRC", 0, "Steam messages from the irc channel on the game server. 1= on")
- adminIRCSS = config.cvar("adminIRCSS", "pseudo~name@********.**.***.**", "Get your mask and put it here")
- config.write()
- info = es.AddonInfo()
- info.version = "1.3.1"
- es.ServerVar('ircss', info.version, 'IRCss ( IRC <===> Game by @livier').makepublic()
- esserver = None
- # Thread
- def start_bot():
- BotToList().start()
- startbot = threading.Thread(None, start_bot, "ircss")
- # Repeat
- def debugbot():
- es.server.queuecmd('eventscripts_debug 0')
- debug = repeat.create('debug', debugbot)
- # ES
- def load ():
- es.mexec('../addons/eventscripts/ircss/ircss.cfg')
- startbot.start()
- if forcing == 1: debug.start(0.1, 0.1)
- es.msg("#multi", "#green ircss-v1.3.1#default by @liVier#lightgreen On !")
- def unload ():
- debug.stop()
- es.msg("#multi", "#green ircss-v1.3.1#default by @liVier#lightgreen Off!")
- def player_activate(event_var):
- esserver.privmsg(channel,'%s[%s] { Connected }' % (event_var["es_username"], event_var["es_steamid"]))
- def player_disconnect(event_var):
- esserver.privmsg(channel,'%s[%s] { Disconnected } [Reason: %s]' % (event_var["es_username"], event_var["es_steamid"], event_var["reason"]))
- def player_say(event_var):
- player = event_var["es_username"]
- lm = event_var["text"]
- # G ==> IRC
- if stream == 1:
- esserver.privmsg(channel,'<%s>%s' % (player,lm))
- sendmsg = event_var["text"].split()
- if sendmsg[0] == '!irc' and len(sendmsg) > 1:
- selec = ''.join(text+' ' for text in sendmsg[1:])
- esserver.privmsg(channel,'IG<%s>%s' % (player,selec))
- # IRCSSbot
- class BotToList(ircbot.SingleServerIRCBot):
- def __init__(self):
- ircbot.SingleServerIRCBot.__init__(self, [('%s' % server, port)], '%s' % botname, 'Chatbox streaming')
- def on_welcome(self, serv, ev):
- global esserver
- esserver = serv
- serv.join(channel)
- def on_pubmsg(self, serv, ev):
- adminES = ev.source()
- ircfrom = irclib.nm_to_n(ev.source())
- message = ev.arguments()[0]
- banmessage = message.split()
- lovemessage = message.split()
- # IRC ==> G
- if streamIRC == 1:
- es.msg("#multi", "#green %s#lightgreen <%s>#default %s" % (channel,ircfrom,message))
- if message[0:5] == '!send' and len(message) > 6:
- selecIRC = ''.join(text+'' for text in message[6:])
- es.msg("#multi", "#green %s#lightgreen <%s>#default %s" % (channel,ircfrom,selecIRC))
- if message[0:7] == '!eskick' and len(message) > 8 and adminES == adminIRCSS:
- userid = es.getuserid(''.join(text+'' for text in message[8:]))
- playerlib.getPlayer(userid).kick("Kicked from IRC by %s" % ircfrom)
- if banmessage[0] == '!esban' and len(banmessage) >1 and adminES == adminIRCSS:
- banmessage = message.split(' ', 2)
- bantime = int(banmessage[1])
- userid = es.getuserid(banmessage[2])
- playerlib.getPlayer(userid).banId(bantime, True, "Banned from IRC by %s" % ircfrom)
- if message[0:5] == '!serv' and len(message) > 6 and adminES == adminIRCSS:
- command = ''.join(text+'' for text in message[6:])
- es.server.insertcmd(command)
- if message == '!status':
- serv.privmsg(channel, "Player: %s/%s" % (es.getplayercount(), es.getmaxplayercount()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement