Esempio n. 1
0
    public byte[] Serialize()
    {
        List <byte> list = new List <byte>();

        list.AddRange(ByteSerializer.SerializeString(this.username));
        list.AddRange(ByteSerializer.SerializeString(this.reason));
        return(list.ToArray());
    }
Esempio n. 2
0
    public byte[] Serialize()
    {
        List <byte> list = new List <byte>();

        list.AddRange(ByteSerializer.SerializeString(this.message));
        list.AddRange(ByteSerializer.SerializeString(this.username));
        list.AddRange(ByteSerializer.SerializeColor(this.nameColor));
        return(list.ToArray());
    }
Esempio n. 3
0
    public byte[] Serialize()
    {
        List <byte> list = new List <byte>();

        list.AddRange(ByteSerializer.SerializeString(this.type));
        list.AddRange(ByteSerializer.SerializeByteArray(this.content));
        list.AddRange(ByteSerializer.SerializeString(this.metadata));
        return(list.ToArray());
    }
Esempio n. 4
0
    public byte[] Serialize()
    {
        List <byte> list = new List <byte>();

        list.AddRange(ByteSerializer.SerializeString(this.username));
        list.AddRange(ByteSerializer.SerializeVector3(this.position));
        list.AddRange(ByteSerializer.SerializeInt((int)this.pointerMode));
        list.AddRange(ByteSerializer.SerializeColor(this.pointerColor));
        return(list.ToArray());
    }
Esempio n. 5
0
    public byte[] Serialize()
    {
        List <byte> list = new List <byte>();

        list.AddRange(ByteSerializer.SerializeInt((int)this.action));
        list.AddRange(ByteSerializer.SerializeInt(this.userCap));
        list.AddRange(ByteSerializer.SerializeBool(this.acceptingConnections));
        list.AddRange(ByteSerializer.SerializeString(this.newPassword));
        list.AddRange(ByteSerializer.SerializeInt((int)this.lobbyMode));
        return(list.ToArray());
    }
Esempio n. 6
0
    public byte[] Serialize()
    {
        List <byte> list = new List <byte>();

        list.AddRange(ByteSerializer.SerializeInt((int)this.action));
        list.AddRange(ByteSerializer.SerializeByteArray(this.content));
        list.AddRange(ByteSerializer.SerializeString(this.username));
        list.AddRange(ByteSerializer.SerializeString(this.metadata));
        list.AddRange(ByteSerializer.SerializeBool(this.playSound));
        return(list.ToArray());
    }
        private static void patchSerializerTwo(SandboxLayoutData __instance, List <byte> bytes)
        {
            ptfInstance.ptfLogger.LogMessage($"Layout post version: {__instance.m_Version}");

            // add number of mods stored
            //bytes.AddRange(ByteSerializer.SerializeInt(noncheatMods.Where(x => x.shouldSaveData).Count() + cheatMods.Where(x => x.shouldSaveData).Count()));

            // add mod data for each mod

            // make sure to be backwards compatible!
            List <string> modData = cheatMods.Where(x => x.isEnabled).Select(x => $"{x.Info.Metadata.Name}\u058D{x.Info.Metadata.Version}\u058D{x.getSettings()}").ToList();

            modData.AddRange(noncheatMods.Where(x => x.shouldSaveData && x.isEnabled).Select(x => $"{x.Info.Metadata.Name}\u058D{x.Info.Metadata.Version}\u058D{x.getSettings()}").ToList());
            string[] mods = modData.ToArray();

            if (__instance.m_Version >= 0)
            {
                return;
            }
            bytes.AddRange(ByteSerializer.SerializeStrings(mods));

            // add an int indicating the number of mods that will save binary data
            int modsSavingBinary = noncheatMods.Where(x => x.shouldSaveData).Count() + cheatMods.Where(x => x.shouldSaveData).Count();

            bytes.AddRange(ByteSerializer.SerializeInt(modsSavingBinary));

            foreach (var mod in noncheatMods)
            {
                if (mod.isEnabled && mod.shouldSaveData)
                {
                    bytes.AddRange(ByteSerializer.SerializeString(
                                       $"{mod.Info.Metadata.Name}\u058D{mod.Info.Metadata.Version}"
                                       ));
                    bytes.AddRange(ByteSerializer.SerializeByteArray(
                                       mod.saveData()
                                       ));
                }
            }
            foreach (var mod in cheatMods)
            {
                if (mod.isEnabled && mod.shouldSaveData)
                {
                    bytes.AddRange(ByteSerializer.SerializeString(
                                       $"{mod.Info.Metadata.Name}\u058D{mod.Info.Metadata.Version}"
                                       ));
                    bytes.AddRange(ByteSerializer.SerializeByteArray(
                                       mod.saveData()
                                       ));
                }
            }
            ptfInstance.ptfLogger.LogMessage($"Serialized {mods.Length.ToString()} Mod Names");
        }
Esempio n. 8
0
        public void AddThisLevel(string cPath, SandboxLayoutData data, CampaignLayoutData cData, int num)
        {
            data.m_Workshop.m_Id = data.m_Workshop.m_Title + "CampaignMod";
            byte[] layoutData = data.SerializeBinary();

            List <byte> bytes = new List <byte>();

            WorkshopPreview.Create();
            bytes.AddRange(ByteSerializer.SerializeByteArray(layoutData));
            bytes.AddRange(ByteSerializer.SerializeByteArray(WorkshopPreview.m_PreviewBytes));
            bytes.AddRange(ByteSerializer.SerializeString(mName.Value));

            File.WriteAllBytes(cPath + "/" + data.m_Workshop.m_Title + ".level", bytes.ToArray());

            if (cData.m_ItemIds.Contains(data.m_Workshop.m_Id))
            {
                cData.m_ItemIds.Remove(data.m_Workshop.m_Id);
            }
            if (num == -1)
            {
                cData.m_ItemIds.Add(data.m_Workshop.m_Id);
            }
            else
            {
                if (cData.m_ItemIds.Count < num)
                {
                    cData.m_ItemIds.Add(data.m_Workshop.m_Id);
                }
                else
                {
                    cData.m_ItemIds.Insert(num - 1, data.m_Workshop.m_Id);
                }
            }

            try
            {
                string json = JsonUtility.ToJson(cData);
                File.WriteAllText(cPath + "/CampaignData.json", json);
            }
            catch (Exception e)
            {
                uConsole.Log("Something went wrong:\n" + e);
                return;
            }
            uConsole.Log("Level added to campaign at position " + (cData.m_ItemIds.IndexOf(data.m_Workshop.m_Id) + 1));
        }
Esempio n. 9
0
        public void ExportCampaignCommand()
        {
            if (!instance.CheckForCheating())
            {
                uConsole.Log("Campaign Mod is not enabled!");
                return;
            }
            int Args = uConsole.GetNumParameters();

            if (Args != 1)
            {
                uConsole.Log("Usage: export_campaign <campaign>");
            }
            else
            {
                string Name  = uConsole.GetString();
                string cPath = MainPath + "Campaigns/" + Name;
                if (!Directory.Exists(cPath))
                {
                    uConsole.Log(Name + " does not exist!");
                    return;
                }
                else if (!File.Exists(cPath + "/CampaignData.json"))
                {
                    uConsole.Log(Name + " is missing CampaignData.json!");
                    return;
                }

                List <byte> cBytes = new List <byte>();

                CampaignLayoutData cData = JsonUtility.FromJson <CampaignLayoutData>(File.ReadAllText(cPath + "/CampaignData.json"));

                cBytes.AddRange(ByteSerializer.SerializeString(File.ReadAllText(cPath + "/CampaignData.json")));

                List <LevelData> levelDatas = new List <LevelData>();
                foreach (string id in cData.m_ItemIds)
                {
                    if (!File.Exists(cPath + "/" + id.Replace("CampaignMod", "") + ".level"))
                    {
                        uConsole.Log(Name + " tried to export " + id.Replace("CampaignMod", "") + " but it doesn't exist!");
                        return;
                    }

                    cBytes.AddRange(ByteSerializer.SerializeString(id.Replace("CampaignMod", "")));
                    cBytes.AddRange(ByteSerializer.SerializeByteArray(File.ReadAllBytes(cPath + "/" + id.Replace("CampaignMod", "") + ".level")));
                }

                if (File.Exists(MainPath + "Exports/" + Name + ".campaign"))
                {
                    PopUpMessage.Display("an export of " + Name + "already exists\noverwrite it?", delegate {
                        File.WriteAllBytes(MainPath + "Exports/" + Name + ".campaign", Utils.ZipPayload(cBytes.ToArray()));
                        uConsole.Log("Export created at '" + MainPath + "Exports/" + Name + ".campaign'");
                    });
                }
                else
                {
                    File.WriteAllBytes(MainPath + "Exports/" + Name + ".campaign", Utils.ZipPayload(cBytes.ToArray()));
                    uConsole.Log("Export created at '" + MainPath + "Exports/" + Name + ".campaign'");
                }
            }
        }