public static void ProtectFact(string fact, bool protect) { var cmd = new Command("UPDATE bucket_facts SET protected=@protect WHERE fact=@fact"); cmd["@fact"] = fact.ToUtf8(); cmd["@protect"] = protect; cmd.ExecuteNonQuery(); }
public static void AddFact(ulong steamId, string fact, string tidbit, string verb, bool protect, bool re = false, byte? mood = null, byte? chance = null) { var cmd = new Command("INSERT INTO bucket_facts (SteamID,fact,tidbit,verb,RE,protected,mood,chance) VALUES (@steamid,@fact,@tidbit,@verb,@RE,@protected,@mood,@chance)"); cmd["@steamid"] = steamId; cmd["@fact"] = fact.ToUtf8(); cmd["@tidbit"] = tidbit.ToUtf8(); cmd["@verb"] = verb.ToUtf8(); cmd["@RE"] = re; cmd["@protected"] = protect; cmd["@mood"] = mood; cmd["@chance"] = chance; cmd.ExecuteNonQuery(); }
public bool Cmd60_Permissions(ulong sender, string message, bool mention) { if (!mention || !PermissionsRule.IsMatch(message)) return false; if (!DbHelper.GetPermissions(sender).HasFlag(Permissions.ModifyPermissions)) { Say(BadPermissions); return true; } var groups = PermissionsRule.Match(message).Groups; ulong steamId; ushort value; if (!ulong.TryParse(groups[1].Value, out steamId) || !ushort.TryParse(groups[2].Value, out value)) { Say("I probably would if you gave me valid parameters."); return true; } var cmd = new Command("INSERT INTO bucket_users (SteamID,AuthLevel) VALUES(@SteamID,@AuthLevel) ON DUPLICATE KEY UPDATE AuthLevel=@AuthLevel"); cmd["@SteamID"] = steamId; cmd["@AuthLevel"] = value; cmd.ExecuteNonQuery(); Say(Success); return true; }
public bool Cmd60_RemoveValue(ulong sender, string message, bool mention) { if (!mention || !RemoveValueRule.IsMatch(message)) return false; if (!DbHelper.GetPermissions(sender).HasFlag(Permissions.Trusted)) { Say(BadPermissions); return true; } var groups = RemoveValueRule.Match(message).Groups; var name = groups[1].Value.ToLower(); var value = groups[2].Value; if (name.Length <= 1 || !name.All(char.IsLetter)) { Say("I probably would if you gave me a valid name."); return true; } var cmd = new Command("SELECT * FROM bucket_vars WHERE name=@name"); cmd["@name"] = name.ToUtf8(); var variable = cmd.Execute().FirstOrDefault(); if (variable == null) { Say("That variable doesn't even exist!"); return true; } cmd = new Command("SELECT * FROM bucket_values WHERE var_id=@id AND value=@value"); cmd["@id"] = (uint)variable.id; cmd["@value"] = value.ToUtf8(); var valueRow = cmd.Execute().FirstOrDefault(); if (valueRow == null) { Say("That variable doesn't even have that value!"); return true; } cmd = new Command("DELETE FROM bucket_values WHERE var_id=@id AND value=@value"); cmd["@id"] = (uint)variable.id; cmd["@value"] = value.ToUtf8(); cmd.ExecuteNonQuery(); Say(Success); return true; }
public bool Cmd60_DeleteVar(ulong sender, string message, bool mention) { if (!mention || !DeleteVarRule.IsMatch(message)) return false; if (!DbHelper.GetPermissions(sender).HasFlag(Permissions.Trusted)) { Say(BadPermissions); return true; } var name = DeleteVarRule.Match(message).Groups[1].Value.ToLower(); if (name.Length <= 1 || !name.All(char.IsLetter)) { Say("I probably would if you gave me a valid name."); return true; } var cmd = new Command("SELECT * FROM bucket_vars WHERE name=@name"); cmd["@name"] = name.ToUtf8(); var variable = cmd.Execute().FirstOrDefault(); if (variable == null) { Say("Did you already delete that variable?"); return true; } if ((string)variable.perms == "read-only") { Say("That variable cannot be deleted."); return true; } cmd = new Command("DELETE FROM bucket_values WHERE var_id=@id; DELETE FROM bucket_vars WHERE id=@id"); cmd["@id"] = (uint)variable.id; cmd.ExecuteNonQuery(); Say(Success); return true; }
public bool Cmd60_CreateVar(ulong sender, string message, bool mention) { if (!mention || !CreateVarRule.IsMatch(message)) return false; if (!DbHelper.GetPermissions(sender).HasFlag(Permissions.Trusted)) { Say(BadPermissions); return true; } var name = CreateVarRule.Match(message).Groups[1].Value.ToLower(); if (name.Length <= 1 || !name.All(char.IsLetter)) { Say("I probably would if you gave me a valid name."); return true; } var cmd = new Command("SELECT * FROM bucket_vars WHERE name=@name"); cmd["@name"] = name.ToUtf8(); var count = cmd.Execute().Count(); if (count > 0) { Say("That variable already exists!"); return true; } cmd = new Command("INSERT INTO bucket_vars (name, perms, type) VALUES (@name, 'read-only', 'var')"); cmd["@name"] = name.ToUtf8(); cmd.ExecuteNonQuery(); Say(Success); return true; }
public bool Cmd55_Forget(ulong sender, string message, bool mention) { if (!mention || !ForgetXRule.IsMatch(message)) return false; if (!DbHelper.GetPermissions(sender).HasFlag(Permissions.Trusted)) { Say(BadPermissions); return true; } var x = ForgetXRule.Match(message).Groups[1].Value; if (x == "that") { if (that == null) { Say("Forget what?"); return true; } var cmd = new Command("DELETE FROM bucket_facts WHERE id=@id"); cmd["@id"] = that.Id; cmd.ExecuteNonQuery(); Say(Success); return true; } else { var cmd = new Command("DELETE FROM bucket_facts WHERE fact=@fact"); cmd["@fact"] = x.ToUtf8(); cmd.ExecuteNonQuery(); Say(Success); return true; } }
public bool Cmd55_DeleteX(ulong sender, string message, bool mention) { if (!mention || !DeleteXRule.IsMatch(message)) return false; if (!DbHelper.GetPermissions(sender).HasFlag(Permissions.Trusted)) { Say(BadPermissions); return true; } if (DeleteXRule.IsMatch(message)) { var x = DeleteXRule.Match(message).Groups[1].Value; if (DbHelper.GetFact(x) == null) { Say("That is not a fact."); return true; } var cmd = new Command("DELETE FROM bucket_facts WHERE fact=@fact"); cmd["@fact"] = x.ToUtf8(); cmd.ExecuteNonQuery(); Say(Success); return true; } return false; }
public bool Cmd55_DeleteN(ulong sender, string message, bool mention) { if (!mention || !DeleteNRule.IsMatch(message)) return false; if (!DbHelper.GetPermissions(sender).HasFlag(Permissions.Trusted)) { Say(BadPermissions); return true; } uint n; if (!uint.TryParse(DeleteNRule.Match(message).Groups[1].Value, out n)) { Say("I may be able to if you gave me a valid number."); return true; } var cmd = new Command("SELECT * FROM bucket_facts WHERE id=@id"); cmd["@id"] = n; var rows = cmd.Execute().Count(); if (rows == 0) { Say("That is not a fact."); return true; } cmd = new Command("DELETE FROM bucket_facts WHERE id=@id"); cmd["@id"] = n; cmd.ExecuteNonQuery(); Say(Success); return true; }