Esempio n. 1
0
        void ProcessTagStructs(BlamLib.CheApe.ProjectState state, IO.XmlStream s)
        {
            foreach (XmlNode n in s.Cursor.ChildNodes)
            {
                if (n.Name != "Struct")
                {
                    continue;
                }

                s.SaveCursor(n);
                var block = new TagStruct(state, s);
                s.RestoreCursor();
                string name_str = block.ToString();

                try { Structs.Add(name_str, block); }
                catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag struct definition", name_str); }
            }
        }
Esempio n. 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            // ftag to .json tagfile.
            TagData   tag_data = new TagData(@"C:\rollrat\");
            TagStruct tmp      = new TagStruct();

            foreach (FTagObject obj in stream.GetObjectList())
            {
                string path = obj.SubPath;
                if (path.EndsWith("/"))
                {
                    continue;
                }
                tmp.Folder[path.Remove(path.LastIndexOf('/'))][path.Substring(path.LastIndexOf('/') + 1)].Tags = obj.Tags;
            }
            tag_data.SetTag(tmp);
            tag_data.Save();
        }
        protected override void ProcessDefinition(XmlNode node, BlamLib.CheApe.ProjectState state, BlamLib.IO.XmlStream s)
        {
            StringIdFieldsInitialize(state);

            string name_str;

            switch (node.Name)
            {
                #region Tag Structs
            case "structs":
                s.SaveCursor(node);
                foreach (XmlNode n in s.Cursor.ChildNodes)
                {
                    if (n.Name != "Struct")
                    {
                        continue;
                    }

                    s.SaveCursor(n);
                    TagStruct block = new TagStruct(state, s);
                    s.RestoreCursor();
                    name_str = block.ToString();

                    try { Structs.Add(name_str, block); }
                    catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag struct definition", name_str); }
                }
                s.RestoreCursor();
                break;
                #endregion

                #region Tag Blocks
            case "blocks":
                s.SaveCursor(node);
                foreach (XmlNode n in s.Cursor.ChildNodes)
                {
                    if (n.Name != "TagBlock")
                    {
                        continue;
                    }

                    s.SaveCursor(n);
                    TagBlock block = new TagBlock(state, s);
                    s.RestoreCursor();
                    name_str = block.ToString();

                    try { Blocks.Add(name_str, block); }
                    catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag block definition", name_str); }
                }
                s.RestoreCursor();
                break;
                #endregion

                #region Tag Groups
            case "groups":
                s.SaveCursor(node);
                foreach (XmlNode n in s.Cursor.ChildNodes)
                {
                    if (n.Name != "TagGroup")
                    {
                        continue;
                    }

                    s.SaveCursor(n);
                    TagGroup group = new TagGroup(state, s);
                    s.RestoreCursor();
                    name_str = group.ToString();

                    try { Groups.Add(name_str, group); }
                    catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag group definition", name_str); }
                }
                s.RestoreCursor();
                break;
                #endregion
            }
        }
Esempio n. 4
0
		protected override void ProcessDefinition(XmlNode node, BlamLib.CheApe.ProjectState state, BlamLib.IO.XmlStream s)
		{
			StringIdFieldsInitialize(state);

			string name_str;

			switch (node.Name)
			{
				#region Tag Structs
				case "structs":
					s.SaveCursor(node);
					foreach (XmlNode n in s.Cursor.ChildNodes)
					{
						if (n.Name != "Struct") continue;

						s.SaveCursor(n);
						TagStruct block = new TagStruct(state, s);
						s.RestoreCursor();
						name_str = block.ToString();

						try { Structs.Add(name_str, block); }
						catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag struct definition", name_str); }
					}
					s.RestoreCursor();
					break;
				#endregion

				#region Tag Blocks
				case "blocks":
					s.SaveCursor(node);
					foreach (XmlNode n in s.Cursor.ChildNodes)
					{
						if (n.Name != "TagBlock") continue;

						s.SaveCursor(n);
						TagBlock block = new TagBlock(state, s);
						s.RestoreCursor();
						name_str = block.ToString();

						try { Blocks.Add(name_str, block); }
						catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag block definition", name_str); }
					}
					s.RestoreCursor();
					break;
				#endregion

				#region Tag Groups
				case "groups":
					s.SaveCursor(node);
					foreach (XmlNode n in s.Cursor.ChildNodes)
					{
						if (n.Name != "TagGroup") continue;

						s.SaveCursor(n);
						TagGroup group = new TagGroup(state, s);
						s.RestoreCursor();
						name_str = group.ToString();

						try { Groups.Add(name_str, group); }
						catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag group definition", name_str); }
					}
					s.RestoreCursor();
					break;
				#endregion
			}
		}
Esempio n. 5
0
        public async Task CreateTag(string entry, SocketCommandContext Context)
        {
            try
            {
                if (tagRestrictDict.ContainsKey(Context.Guild.Id))
                {
                    GuildPermission permiss;
                    tagRestrictDict.TryGetValue(Context.Guild.Id, out permiss);
                    if (!((SocketGuildUser)Context.User).GuildPermissions.Has(permiss))
                    {
                        await Context.Channel.SendMessageAsync(
                            ":no_entry_sign: You don't have the Permission to add a Tag!");

                        return;
                    }
                }
                int index = entry.IndexOf('|');
                //string[] tag = entry.Split('|');
                if (index < 1)
                {
                    await Context.Channel.SendMessageAsync(
                        $":no_entry_sign: Failed to add tag! Make sure its: `tag | what to do when tag is called`");

                    return;
                }
                string tag1    = entry.Remove(index);
                string content = entry.Substring(index);
                //if (tag.Length > 1 && !String.IsNullOrEmpty(tag[0]) && !String.IsNullOrEmpty(tag[1]))
                if (!String.IsNullOrEmpty(tag1) &&
                    !String.IsNullOrEmpty(content.Substring(content.IndexOf('|') + 1).Trim()))
                {
                    var tag = tag1.ToLower();
                    if (tag.Trim() == "taglist")
                    {
                        await Context.Channel.SendMessageAsync(
                            $":no_entry_sign: `taglist` is a command and cannot be added as tag! Use any other");

                        return;
                    }
                    TagStruct tagStruct = new TagStruct
                    {
                        tag       = tag.Trim(),
                        value     = content.Substring(content.IndexOf('|') + 1).Trim(),
                        creatorID = Context.User.Id
                    };

                    /*
                     * if (tag.Length > 2)
                     * {
                     *  for (int i = 2; i < tag.Length; i++)
                     *  {
                     *      tagStruct.value += tag[i];
                     *  }
                     * }*/
                    List <TagStruct> tagList = new List <TagStruct>();
                    if (tagDict.ContainsKey(Context.Guild.Id))
                    {
                        tagDict.TryGetValue(Context.Guild.Id, out tagList);

                        foreach (var t in tagList)
                        {
                            if (t.tag.Equals(tagStruct.tag))
                            {
                                await Context.Channel.SendMessageAsync(":no_entry_sign: Tag already exists!");

                                return;
                            }
                        }

                        tagList.Add(tagStruct);
                        tagDict.TryUpdate(Context.Guild.Id, tagList);
                    }
                    else
                    {
                        tagList.Add(tagStruct);
                        tagDict.TryAdd(Context.Guild.Id, tagList);
                    }
                    var eb = new EmbedBuilder()
                    {
                        Color  = new Color(4, 97, 247),
                        Footer = new EmbedFooterBuilder()
                        {
                            Text    = $"Requested by {Context.User.Username}#{Context.User.Discriminator}",
                            IconUrl = (Context.User.GetAvatarUrl())
                        }
                    };
                    eb.AddField((x) =>
                    {
                        x.Name     = "Successfully Added Tag!";
                        x.IsInline = true;
                        x.Value    = $"**Tag**\n" +
                                     $"{tagStruct.tag}\n" +
                                     $"**Value**\n" +
                                     $"{tagStruct.value}";
                    });
                    SaveDatabase();
                    await Context.Channel.SendMessageAsync("", false, eb);
                }
                else
                {
                    await Context.Channel.SendMessageAsync(
                        $":no_entry_sign: Failed to add tag! Make sure its: `tag | what to do when tag is called`");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                await SentryService.SendError(e, Context);
            }
        }
Esempio n. 6
0
		void ProcessTagStructs(BlamLib.CheApe.ProjectState state, IO.XmlStream s)
		{
			foreach (XmlNode n in s.Cursor.ChildNodes)
			{
				if (n.Name != "Struct") continue;

				s.SaveCursor(n);
				var block = new TagStruct(state, s);
				s.RestoreCursor();
				string name_str = block.ToString();

				try { Structs.Add(name_str, block); }
				catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag struct definition", name_str); }
			}
		}