Ejemplo n.º 1
0
async def on_message(message):

    if not message.author.bot:

        if client.user in message.mentions:
            await parseCommands(message)

        elif message.channel.name == config.channelName:

            guildMember = message.guild.get_member(message.author.id)

            pseudo = guildMember.name
            if guildMember.nick:
                pseudo = guildMember.nick

            for msgLine in message.content.split("\n"):
                Minecraft.sayOnChat(pseudo, msgLine)
Ejemplo n.º 2
0
 def on_message(self, message):
     global mserver
     #print("Recieved message %s" % message)
     try:
         data = json.loads(message)
         if data["type"] == "console":
             mserver.writetoserver(data["data"], self)
         elif data["type"] == "start":
             if type(data["data"]) is str:
                 if data["data"] == "start":
                     if not mserver.running():
                         mserver.startserver()
                 else:
                     if not mserver.running():
                         sm.setcurrent(data["data"])
                         mserver = Minecraft.mserver(
                             socket=socks,
                             server_dir=sm.current["data"]["server_dir"],
                             run=sm.current["data"]["run"],
                             args=sm.current["data"]["args"])
                         mserver.startserver()
             else:
                 raise ValueError("Bad JSON")
         elif data["type"] == "status":
             socks.sendstatus(mserver)
         elif data["type"] == "stop_webserver":
             stopwebserver()
         elif data["type"] == "sigint":
             if mserver.running():
                 mserver.sigint()
                 socks.sendstatus(mserver)
         elif data["type"] == "kill":
             if mserver.running():
                 mserver.stopserver()
                 socks.sendstatus(mserver)
         else:
             raise ValueError("Bad JSON")
     except (ValueError, KeyError, json.decoder.JSONDecodeError):
         self.write_message(
             json.dumps({
                 "type": "error",
                 "content": {
                     "output":
                     "Malformed JSON. %s cannot be understood by this server"
                     % message
                 }
             }))
     except NotADirectoryError:
         self.write_message(
             json.dumps({
                 "type": "error",
                 "content": {
                     "output":
                     "Improper directory. %s is not a valid path" %
                     sm.current["data"]["server_dir"]
                 }
             }))
Ejemplo n.º 3
0
async def __updateTopic(channel, playersInfo=None):
    print("[INFO] update channel topic")
    if playersInfo == None:
        playersInfo = Minecraft.getPlayersList()

    if playersInfo != None:
        topic = ""
        if playersInfo["count"] > 1:
            topic += "Joueurs en ligne "
        else:
            topic += "Joueur en ligne "

        topic += str(playersInfo["count"])
        topic += "/"
        topic += str(playersInfo["max"])
        topic += config.channelTopicSufix

        print("[INFO] new topic on (", channel.name, ") :", topic)

        out = await channel.edit(topic=topic)
        print("channel edit return :", out)
Ejemplo n.º 4
0
# -*- coding: utf-8 -*-
"""
Created on Fri Aug 24 10:43:42 2018

@author: NTPU
"""

form time import sleep
form mcpi.minecraft import Minecraft
thomas = Minecraft.create()
list2 = [[103,41,14],
         [35,73,86]]
myID = thomas.getPlayerEntityId("Thomas0217")
x,y,z=thomas.entity.getTilePos(myID)
Startx = x
for list in list2:
    for i in list1:
        thomas.setBlock(x,y,z,1)
        x = x+1
    x = Startx
    z = z+1
list2 = [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
         [1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1],
         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
         [1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1],
         [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
         [1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1],
         [1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1],
Ejemplo n.º 5
0
# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""


cpi.minecraft import Minecraft
mc = Minecraft.create()

print(mc.player.getTilePos())
Ejemplo n.º 6
0
async def parseCommands(message):
    print("[INFO] discord command :", message.content)
    command = message.content.split(" ")

    if "help" in command:
        msg = "Les commandes disponibles sont :\n"
        msg += "\n**help** : affiche cette aide."

        if message.channel.name == config.channelName:
            msg += "\n**list** : affiche la liste des joueurs connecté."
            msg += "\n**stats** : affiche les stats serveur."

        await message.channel.send(msg)

    elif "list" in command and message.channel.name == config.channelName:
        playersList = Minecraft.getPlayersList()
        msg = "Il y a " + str(playersList["count"])
        if playersList["count"] > 1:
            msg += " joueurs "
        else:
            msg += " joueur "
        msg += "connecté sur " + str(playersList["max"])

        if playersList["count"] > 0:
            msg += " : \n"

        for player in playersList["list"]:
            msg += "\t - " + player + "\n"

        await message.channel.send(msg)
        await __updateTopic(message.channel, playersInfo=playersList)

    elif "stats" in command and message.channel.name == config.channelName:
        servStat = Minecraft.serverStat()

        msg = "Serveur status :\n"

        if servStat["alive"]:
            msg += "**Minecraft** : ON\n"
            if (servStat["tps1m"] != -1) and (servStat["tps5m"] != -1) and (
                    servStat["tps15m"] != -1):
                msg += "**Minecraft TPS** : " + str(
                    servStat["tps1m"]) + "(1m) " + str(
                        servStat["tps5m"]) + "(5m) " + str(
                            servStat["tps15m"]) + "(15m)\n"
        else:
            msg += "**Minecraft** : OFF\n"

        if (servStat["cpuUse"] != -1):
            msg += "**Utilisation CPU** : " + str(servStat["cpuUse"]) + " %\n"

        if (servStat["memUse"] != -1) and (servStat["memTot"] != -1):
            msg += "**Utilisation Memoire** : " + str(
                round(servStat["memUse"] / 10**9, 2)) + " Go / " + str(
                    round(servStat["memTot"] / 10**9, 2)) + " Go\n"

        if (servStat["diskUse"] != -1) and (servStat["diskTot"] != -1):
            msg += "**Utilisation Disque** : " + str(
                round(servStat["diskUse"] / 10**9, 2)) + " Go / " + str(
                    round(servStat["diskTot"] / 10**9, 2)) + " Go\n"

        await message.channel.send(msg)

    elif "debug" in command:
        for member in message.channel.members:
            print(member.name, member.nick)
Ejemplo n.º 7
0
                                      **settings)
    else:
        app = tornado.web.Application([(r"/", MainWebsite),
                                       (r"/dynamic/.*", RenderPage),
                                       (r"/ws", MainWebSocket),
                                       (r"/login", login.LoginHandler)],
                                      **settings)

    socks = Socketinterface()

    if not sm.loadservers():
        stopwebserver()
    sm.current = sm.getdefserver()

    mserver = Minecraft.mserver(socket=socks,
                                server_dir=sm.current["data"]["server_dir"],
                                run=sm.current["data"]["run"],
                                args=sm.current["data"]["args"])

    if Settings.loaded and Settings.settings["ssl"]["enabled"]:
        server = tornado.httpserver.HTTPServer(
            app,
            ssl_options={
                "certfile": Settings.settings["ssl"]["certfile"],
                "keyfile": Settings.settings["ssl"]["keyfile"]
            })
        server.listen(Settings.settings["ssl"]["port"])

        redirapp = tornado.web.Application([(r"/.*", RedirectToSSL)])
        redirapp.listen(Settings.settings["port"])
    else:
        server = app.listen(Settings.settings["port"])
Ejemplo n.º 8
0
#!/usr/bin/python3

import time

import Minecraft
import Discord

print("[INFO] Start Agora bot.")

Minecraft.startLogParser()
Discord.startBot()