Exemple #1
0
def enabled(onoroff):
    try:
        setting = config.get('config', onoroff)
    except:
        setting = "disabled"
        print "NO setting entry for "+onoroff+", disabled."
    if "enabled" in setting:
        return True
    else:
        action.say("This command has been disabled!", 0)
        return False
Exemple #2
0
def check_op(name, command):
    op = database.check_command_op(command)

    #If commmand does not need op, return OK
    if not op:
        return True

    else:
        #else, check if user is op, and return true
        if name.lower() in ops:
            return True

        #if not, deny.
        else:
            action.say("This command is not allowed for non-op's.", 0)
Exemple #3
0
def enabled(onoroff):
    #Check if regular command or feature
    if "!" in onoroff:
        setting = database.check_enabled_command(onoroff)

        #If not enabled say so.
        if not setting:
            action.say("This command has been disabled for this world!", 0)
        return setting

    else:
        try:
            setting = config.get('config', onoroff)
        except:
            setting = "disabled"
            print "NO setting entry for "+onoroff+", disabled."
        if "enabled" in setting:
            return True
        else:
            action.say("This command has been disabled for this world!", 0)
            return False
Exemple #4
0
def trigger(name):
    if "!sheen" in chatlog:
        if enabled("!sheen"):
            command.sheen()
            log.save(timestamp, "TEXT", "!sheen", name)

    elif "logged in with entity" in chatlog and not "CONSOLE" in chatlog:
        if enabled("login_manner"):
            player = command.login(chatlog)
            log.save(timestamp, "GREEN", "Login:"******"lost connection:" in chatlog and not "CONSOLE" in chatlog:
        if enabled("logout_manner"):
            player = command.logout(chatlog)
            log.save(timestamp, "RED", "Logout:", player)

    elif "!hax" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!hax"):
            if check_op(name):
                command.hax(name)
                log.save(timestamp, "SYSTEM", "!hax", name)

    elif "!unhax" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!unhax"):
            if check_op(name):
                command.unhax(name)
                log.save(timestamp, "SYSTEM", "!unhax", name)

    elif "!day" in chatlog:
        if enabled("!day"):
            command.day()
            log.save(timestamp, "SYSTEM", "!day", name)

    elif "!night" in chatlog:
        if enabled("!night"):
            command.night()
            log.save(timestamp, "SYSTEM", "!night", name)

    elif "!tp" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!tp"):
            who = command.tp(name, chatlog)
            log.save2(timestamp, "TEXT", "!tp", name, "] [ -> ] [", who)

    elif "!pull" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!pull"):
            if check_op(name):
                who = command.pull(name, chatlog)
                log.save2(timestamp, "TEXT", "!pull", name, "] [ <- ] [", who)

    elif "!map" in chatlog:
        if enabled("!map"):
            command.map(mapurl)
            log.save(timestamp, "SYSTEM", "!map", name)

    elif "!help" in chatlog:
        if enabled("!help"):
            command.help(helpurl)
            log.save(timestamp, "SYSTEM", "!help", name)

    elif "!version" in chatlog:
        action.say("Running MineMon version: " + version, 0)
        log.save(timestamp, "SYSTEM", "!version", name)

    elif "!list" in chatlog:
        action.say("Deprecated. Press <tab>", 0)

    elif "!roll" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!roll"):
            roll = command.roll(name)
            log.save2(timestamp, "TEXT", "!roll", name, "] [", roll)

    elif "!rain" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!rain"):
            command.rain()
            log.save(timestamp, "SYSTEM", "!rain", name)

    elif "!xp" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!xp"):
            if check_op(name):
                command.xp(name)
                log.save(timestamp, "TEXT", "!xp", name)

    elif "!kit" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!kit"):
            command.kit(name)
            log.save(timestamp, "TEXT", "!kit", name)

    elif "!leatherset" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!leatherset"):
            command.leatherset(name)
            log.save(timestamp, "TEXT", "!leatherset", name)

    elif "!diamondset" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!diamondset"):
            if check_op(name):
                command.diamondset(name)
                log.save(timestamp, "TEXT", "!diamondset", name)

    elif "!bow" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!bow"):
            command.bow(name)
            log.save(timestamp, "TEXT", "!bow", name)

    elif "!train" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!train"):
            command.train(name)
            log.save(timestamp, "TEXT", "!train", name)

    elif "!sleep" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!sleep"):
            command.sleep(name)
            log.save(timestamp, "TEXT", "!sleep", name)

    elif "!rail" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!rail"):
            command.rail(name)
            log.save(timestamp, "TEXT", "!rail", name)

    elif "!food" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!food"):
            command.food(name)
            log.save(timestamp, "TEXT", "!food", name)

    elif "!item" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!item"):
            if check_op(name):
                item = command.item(name, chatlog)
                log.save2(timestamp, "TEXT", "!item", name, "] [", item)

    elif "!restart" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!restart"):
            if check_op(name):
                command.restart()
                log.save(timestamp, "SYSTEM", "!restart", name)

    elif "!monsters" in chatlog:
        if enabled("!monsters"):
            if check_op(name):
                onoff = command.monsters(mcpath)
                log.save2(timestamp, "SYSTEM", "!monsters", name, "] [", onoff)

    elif "!update" in chatlog:
        if enabled("!update"):
            if check_op(name) or "CONSOLE" in chatlog:
                status = command.update(mcpath, mcport)
                log.save2(timestamp, "SYSTEM", "!update", name, "] [", status)

    elif "!temphax" in chatlog and not "CONSOLE" in chatlog:
        action.say("not implemented yet gogo MYSQL", 0)

    elif "!report" in chatlog and not "CONSOLE" in chatlog:
        if enabled("!report"):
            command.mail(name, chatlog)
            log.save(timestamp, "SYSTEM", "!report", name)



    elif "Opping" in chatlog or "De-opping" in chatlog:
        global ops
        ops = action.load_op(mcpath)
        action.say("Detecting change in OP's, refreshing list!", 0)
        log.save(timestamp, "SYSTEM", "OP-refresh", "SYSTEM")

    elif "[INFO] Done (" in chatlog or "[INFO] RCON running on" in chatlog:
        print "< STARTING SERVER > - Reconnecting to rcon"
        action.connect(mchost, mcport, mcpwd)

    elif "[INFO] Saving chunks" in chatlog:
        print "< STOPPING SERVER >"


    #old non-supported commands
    elif "!tnt" in chatlog or "!stone" in chatlog or "!wood" in chatlog or "!dirt" in chatlog:
        action.say("Deprecated command. use !hax or !item", 0)
Exemple #5
0
def check_op(name):
    if name.lower() in ops:
        return True
    else:
        action.say("This command is not allowed for non-op's.", 0)
Exemple #6
0
mcpwd = config.get('config', 'rpass')

#### some settings-var ####
mcpath = config.get('config', 'mcpath')
mapurl = config.get('config', 'mapurl')
helpurl = config.get('config', 'helpurl')
screen = config.get('config', 'screen')

gmail = config.get('config', 'gmail')
gpw = config.get('config', 'gmailpw')
mailrcvr = config.get('config', 'sendto')

#### announce that i'm running ####
action.connect(mchost, mcport, mcpwd)
action.load(gmail, gpw, mailrcvr, screen)
action.say("Minecraft Monitor Version "+version+" now running!", 1)
action.say("Type !help for available commands", 0)

ops = action.load_op(mcpath)

#### check if enabled & op func ####

def enabled(onoroff):
    try:
        setting = config.get('config', onoroff)
    except:
        setting = "disabled"
        print "NO setting entry for "+onoroff+", disabled."
    if "enabled" in setting:
        return True
    else:
Exemple #7
0
def trigger(name):
    global serverstop

    if "!help" in chatlog:
        if enabled("!help"):
            if check_op(name, "!help"):
                helpcmnd = command.help(helpurl, chatlog)
                log.save2(timestamp, "SYSTEM", "!help", name, "] [", helpcmnd)

    elif "!sheen" in chatlog:
        if enabled("!sheen"):
            if check_op(name, "!sheen"):
                command.sheen()
                log.save(timestamp, "TEXT", "!sheen", name)

    elif "joined the game" in chatlog and not "[Rcon]" in chatlog:
        if enabled("login_manner"):
            player = command.login(chatlog, v, helpurl)
            log.save(timestamp, "GREEN", "Login:"******"left the game" in chatlog and not "[Rcon]" in chatlog:
        if enabled("logout_manner"):
            player = command.logout(chatlog)
            log.save(timestamp, "RED", "Logout:", player)

    elif "!hax" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!hax"):
            if check_op(name, "!hax"):
                command.hax(name)
                log.save(timestamp, "SYSTEM", "!hax", name)

    elif "!unhax" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!unhax"):
            if check_op(name, "!unhax"):
                command.unhax(name)
                log.save(timestamp, "SYSTEM", "!unhax", name)

    elif "!adv" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!adv"):
            if check_op(name, "!adv"):
                command.adv(name)
                log.save(timestamp, "SYSTEM", "!adv", name)

    elif "!day" in chatlog:
        if enabled("!day"):
            if check_op(name, "!day"):
                command.day()
                log.save(timestamp, "SYSTEM", "!day", name)

    elif "!night" in chatlog:
        if enabled("!night"):
            if check_op(name, "!night"):
                command.night()
                log.save(timestamp, "SYSTEM", "!night", name)

    elif "!tp" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!tp"):
            if check_op(name, "!tp"):
                who = command.tp(name, chatlog)
                log.save2(timestamp, "TEXT", "!tp", name, "] -> [", who)

    elif "!pull" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!pull"):
            if check_op(name, "!pull"):
                who = command.pull(name, chatlog)
                log.save2(timestamp, "TEXT", "!pull", name, "] <- [", who)

    elif "!map" in chatlog:
        if enabled("!map"):
            if check_op(name, "!map"):
                command.map(mapurl)
                log.save(timestamp, "SYSTEM", "!map", name)

    elif "!version" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!version"):
            if check_op(name, "!version"):
                command.version(v)
                log.save(timestamp, "SYSTEM", "!version", name)

    elif "!list" in chatlog:
        action.say("Deprecated. Press Tab on your keyboard", 0)

    elif "!roll" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!roll"):
            if check_op(name, "!roll"):
                roll = command.roll(name)
                log.save2(timestamp, "TEXT", "!roll", name, "] [", roll)

    elif "!rain" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!rain"):
            if check_op(name, "!rain"):
                command.rain()
                log.save(timestamp, "SYSTEM", "!rain", name)

    elif "!xp" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!xp"):
            if check_op(name, "!xp"):
                command.xp(name)
                log.save(timestamp, "TEXT", "!xp", name)

    elif "!kit" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!kit"):
            if check_op(name, "!kit"):
                command.kit(name)
                log.save(timestamp, "TEXT", "!kit", name)

    elif "!leatherset" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!leatherset"):
            if check_op(name, "!leatherset"):
                command.leatherset(name)
                log.save(timestamp, "TEXT", "!leatherset", name)

    elif "!diamondset" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!diamondset"):
            if check_op(name, "!diamondset"):
                command.diamondset(name)
                log.save(timestamp, "TEXT", "!diamondset", name)

    elif "!bow" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!bow"):
            if check_op(name, "!bow"):
                command.bow(name)
                log.save(timestamp, "TEXT", "!bow", name)

    elif "!train" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!train"):
            if check_op(name, "!train"):
                command.train(name)
                log.save(timestamp, "TEXT", "!train", name)

    elif "!sleep" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!sleep"):
            if check_op(name, "!sleep"):
                command.sleep(name)
                log.save(timestamp, "TEXT", "!sleep", name)

    elif "!rail" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!rail"):
            if check_op(name, "!rail"):
                command.rail(name)
                log.save(timestamp, "TEXT", "!rail", name)

    elif "!food" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!food"):
            if check_op(name, "!food"):
                command.food(name)
                log.save(timestamp, "TEXT", "!food", name)

    elif "!item" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!item"):
            if check_op(name, "!item"):
                item = command.item(name, chatlog)
                log.save2(timestamp, "TEXT", "!item", name, "] [", item)

    elif "!restart" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!restart"):
            if check_op(name, "!restart"):
                command.restart()
                log.save(timestamp, "SYSTEM", "!restart", name)

    elif "!monsters" in chatlog:
        if enabled("!monsters"):
            if check_op(name, "!monsters"):
                onoff = command.monsters(mcpath)
                log.save2(timestamp, "SYSTEM", "!monsters", name, "] [", onoff)

    elif "!update" in chatlog:
        if enabled("!update"):
            if check_op(name, "!update") or "Banned Player" in chatlog:
                status = command.update(mcpath, mcport)
                log.save2(timestamp, "SYSTEM", "!update", name, "] [", status)

    elif "!temphax" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!temphax"):
            if check_op(name, "!temphax"):
                who = command.temphax(chatlog)
                log.save2(timestamp, "TEXT", "!temphax", name, "] -> [", who)

    elif "!report" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!report"):
            if check_op(name, "!report"):
                command.mail(name, chatlog, False)
                log.save(timestamp, "SYSTEM", "!report", name)

    elif "!played" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!played"):
            if check_op(name, "!played"):
		print "Checking played with name:"+ str(name)
                command.played(name)
                log.save(timestamp, "TEXT", "!played", name)

    elif "!world" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!world"):
            if check_op(name, "!world"):
                success = command.world(name, chatlog, mcpath)
                if success:
                    log.save2(timestamp, "SYSTEM", "!world", name, "] [", success)

    elif "!clear" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!clear"):
            if check_op(name, "!clear"):
                command.clear(name)
                log.save(timestamp, "TEXT", "!clear", name)

    elif "!spawn" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!spawn"):
            if check_op(name, "!spawn"):
                command.spawn(name)
                log.save(timestamp, "TEXT", "!spawn", name)

    elif "!gateway" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!gateway"):
            if check_op(name, "!gateway"):
                gw = command.gateway(name, chatlog)
                log.save2(timestamp, "TEXT", "!gateway", name, gw[0], gw[1])

    elif "!dial" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!dial"):
            if check_op(name, "!dial"):
                dest = command.dial(name, chatlog)
                log.save2(timestamp, "TEXT", "!dial", name, "] -> [", dest)

    elif "!warp" in chatlog and not "[Rcon]" in chatlog:
        if enabled("!warp"):
            if check_op(name, "!warp"):
                dest = command.warp(name, chatlog)
                log.save2(timestamp, "TEXT", "!warp", name, "] -> [", dest)


    elif "Opped" in chatlog or "De-opped" in chatlog:
        global ops
        ops = action.load_op(mcpath)
        action.say("Detecting change in OP's, refreshing list!", 0)
        log.save(timestamp, "SYSTEM", "OP-refresh", "SYSTEM")

    elif "[INFO] Done (" in chatlog or "[INFO] RCON running on" in chatlog:
        print "< STARTING SERVER > - Reconnecting to rcon"
        action.connect(mchost, mcport, mcpwd)
        log.raw_log("< STARTING SERVER >")
        serverstop = False
        global timetrk
        if silent_enabled("timetrack"):
            timetrk=timetrack.playtime()
            timetrk.start()
            print "< Playtime-tracking started >"


    elif "[INFO] Saving chunks" in chatlog and serverstop == False:
        print "< STOPPING SERVER >"
        log.raw_log("< STOPPING SERVER >")
        serverstop = True
        if silent_enabled("timetrack"):
            try:
                timetrk.stop()
                while timetrk.isAlive():
                    time.sleep(1)
                del timetrk
                print "< Playtime-tracking stopped >"
            except:
                print "Could not stop timetrack!"
                log.raw_log("Could not stop timetrack!")

    #old non-supported commands
    elif "!tnt" in chatlog or "!stone" in chatlog or "!wood" in chatlog or "!dirt" in chatlog:
        action.say("Deprecated command. use !hax or !item", 0)

# Un-commented since mc console now logs severe @ disconnect
#    elif "[SEVERE]" in chatlog or "(SourceFile:" in chatlog and not "<" in chatlog:
#        command.mail("SYSTEM", "MINECRAFT SEVERE EXCEPTION - TRYING TO RESTART", True)
#        action.say("§c[FATAL]: Minecraft Server encountered a serious error.", 4)
#        action.say("§c[WARNING] MineMon will try to restart the server as a precaution", 3)
#        time.sleep(2)
#        command.restart()

    elif "qwophidden" in chatlog:
        command.late()

    else:
        if '<' in chatlog:
            log.save_chat(name, chatlog)