Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.42 KB | None | 0 0
  1. # -*- coding:Utf-8 -*-
  2. import es, os, ircbot, irclib, threading, repeat, cfglib, playerlib
  3.  
  4. # Variables
  5. config = cfglib.AddonCFG(es.getAddonPath("ircss") + "/ircss.cfg")
  6.  
  7. config.text("******************************")
  8. config.text("  IRCSS SETTINGS")
  9. config.text("******************************")
  10.  
  11. server  = config.cvar("server",  "Server adress(ip/nam)", "Your irc server")
  12. port = config.cvar("port", 6667, "Server port")
  13. channel = config.cvar("channel", "#channel", "Your channel")
  14. botname = config.cvar("botname", "name", "The name of your Bot")
  15. irclib.DEBUG = config.cvar("irclib.DEBUG", 0, "Print IRC informations ? (server to client) 1/0")
  16. forcing  = config.cvar("forcing",  1, "If the bot is not able to connect the server, change this value to 1")
  17. stream = config.cvar("stream", 0, "Stream game server messages on the channel 1 = on")
  18. streamIRC = config.cvar("streamIRC", 0, "Steam messages from the irc channel on the game server. 1= on")
  19. adminIRCSS = config.cvar("adminIRCSS", "pseudo~name@********.**.***.**", "Get your  mask and put it here")
  20. config.write()
  21.  
  22. info = es.AddonInfo()
  23. info.version = "1.3.1"
  24. es.ServerVar('ircss', info.version, 'IRCss ( IRC <===> Game by @livier').makepublic()
  25. esserver = None
  26.  
  27.   # Thread
  28. def start_bot():
  29.     BotToList().start()
  30.    
  31. startbot = threading.Thread(None, start_bot, "ircss")
  32.  
  33. # Repeat
  34. def debugbot():
  35.     es.server.queuecmd('eventscripts_debug 0')
  36.    
  37. debug = repeat.create('debug', debugbot)
  38.  
  39. # ES
  40. def load ():
  41.     es.mexec('../addons/eventscripts/ircss/ircss.cfg')
  42.     startbot.start()
  43.     if forcing == 1: debug.start(0.1, 0.1)
  44.     es.msg("#multi", "#green ircss-v1.3.1#default by @liVier#lightgreen On !")
  45.        
  46. def unload ():
  47.     debug.stop()
  48.     es.msg("#multi", "#green ircss-v1.3.1#default by @liVier#lightgreen Off!")
  49.    
  50.  
  51. def player_activate(event_var):
  52.     esserver.privmsg(channel,'%s[%s] { Connected }' % (event_var["es_username"], event_var["es_steamid"]))
  53.    
  54. def player_disconnect(event_var):
  55.     esserver.privmsg(channel,'%s[%s] { Disconnected } [Reason: %s]' % (event_var["es_username"], event_var["es_steamid"], event_var["reason"]))
  56.  
  57. def player_say(event_var):
  58.     player = event_var["es_username"]
  59.     lm = event_var["text"]
  60. # G ==> IRC    
  61.     if stream == 1:
  62.         esserver.privmsg(channel,'<%s>%s' % (player,lm))
  63.    
  64.     sendmsg = event_var["text"].split()
  65.     if sendmsg[0] == '!irc' and len(sendmsg) > 1:
  66.         selec = ''.join(text+' ' for text in sendmsg[1:])
  67.         esserver.privmsg(channel,'IG<%s>%s' % (player,selec))
  68.  
  69.  
  70.      
  71.          
  72.        
  73. # IRCSSbot 
  74. class BotToList(ircbot.SingleServerIRCBot):
  75.    
  76.     def __init__(self):
  77.         ircbot.SingleServerIRCBot.__init__(self, [('%s' % server, port)], '%s' % botname, 'Chatbox streaming')
  78.        
  79.  
  80.     def on_welcome(self, serv, ev):
  81.             global esserver
  82.             esserver = serv
  83.             serv.join(channel)
  84.            
  85.    
  86.     def on_pubmsg(self, serv, ev):
  87.             adminES = ev.source()  
  88.             ircfrom = irclib.nm_to_n(ev.source())
  89.             message = ev.arguments()[0]
  90.             banmessage = message.split()
  91.             lovemessage = message.split()
  92. # IRC ==> G            
  93.             if streamIRC == 1:
  94.                es.msg("#multi", "#green %s#lightgreen <%s>#default %s" % (channel,ircfrom,message))
  95.            
  96.             if message[0:5] == '!send' and len(message) > 6:
  97.                selecIRC = ''.join(text+'' for text in message[6:])
  98.                es.msg("#multi", "#green %s#lightgreen <%s>#default %s" % (channel,ircfrom,selecIRC))
  99.            
  100.             if message[0:7] == '!eskick' and len(message) > 8 and adminES == adminIRCSS:
  101.                userid = es.getuserid(''.join(text+'' for text in message[8:]))
  102.                playerlib.getPlayer(userid).kick("Kicked from IRC by %s" % ircfrom)
  103.                            
  104.             if banmessage[0] == '!esban' and len(banmessage) >1 and adminES == adminIRCSS:
  105.                banmessage = message.split(' ', 2)
  106.                bantime = int(banmessage[1])
  107.                userid = es.getuserid(banmessage[2])
  108.                playerlib.getPlayer(userid).banId(bantime, True, "Banned from IRC by %s" % ircfrom)
  109.                
  110.             if message[0:5] == '!serv' and len(message) > 6 and adminES == adminIRCSS:
  111.                command = ''.join(text+'' for text in message[6:])
  112.                es.server.insertcmd(command)
  113.                
  114.             if message == '!status':
  115.                 serv.privmsg(channel, "Player: %s/%s" % (es.getplayercount(), es.getmaxplayercount()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement