コード例 #1
0
ファイル: adapter.py プロジェクト: metehanboy/mcedit2
    def createPlayer(self, playerUUID=""):
        """
        Create a new player with the given name and return the PlayerRef. Raises some kind of IOError if the player
         could not be created.

        :param playerUUID:
        :type playerUUID: str
        :return:
        :rtype: PCPlayer
        """
        if self.readonly:
            raise IOError("World is opened read only.")

        playerFilePath = "playerdata/%s.dat" % playerUUID

        if playerUUID == "":
            if "Player" in self.metadata.rootTag["Data"]:
                raise IOError("Single-player player already exists.")
            playerTag = nbt.TAG_Compound()
            self.metadata.rootTag["Data"]["Player"] = playerTag
        else:
            if self.selectedRevision.containsFile(playerFilePath):
                raise ValueError("Cannot create player %s: already exists.")

            playerTag = nbt.TAG_Compound()

        player = AnvilPlayerRef(playerTag, self)
        nbtattr.SetNBTDefaults(player)

        if playerUUID != "Player":
            self.checkSessionLock()
            self.selectedRevision.writeFile(playerFilePath, playerTag.save())

        return self.getPlayer(playerUUID)
コード例 #2
0
ファイル: storagedrawers.py プロジェクト: Damchou/modding-mc
 def __init__(self, rootTag=None, parent=None):
     if rootTag is None:
         rootTag = nbt.TAG_Compound()
         nbtattr.SetNBTDefaults(self)
     super(DrawerItemStackRef, self).__init__(rootTag, parent)
コード例 #3
0
ファイル: entities.py プロジェクト: brennced/mcedit2
 def create(cls):
     rootTag = nbt.TAG_Compound()
     ref = cls(rootTag)
     nbtattr.SetNBTDefaults(ref)
     return ref