Add length to database primary keys.
Tweak some of the itembans code to be less inefficient. Removed a chunk of code from the buff code that prevented users from being buffed with a buff that comes from an item. This code seemed to cause max cpu usage when being disabled. I don't think this code is useful, but I leave that to people who own servers. IMO all buff code should be removed.
This commit is contained in:
parent
c29f01b959
commit
d5527ade42
5 changed files with 10 additions and 13 deletions
|
|
@ -101,12 +101,8 @@ namespace TShockAPI.DB
|
||||||
|
|
||||||
public bool ItemIsBanned(string name, TSPlayer ply)
|
public bool ItemIsBanned(string name, TSPlayer ply)
|
||||||
{
|
{
|
||||||
if (ItemBans.Contains(new ItemBan(name)))
|
ItemBan b = GetItemBanByName(name);
|
||||||
{
|
return b != null &&!b.HasPermissionToUseItem(ply);
|
||||||
ItemBan b = GetItemBanByName(name);
|
|
||||||
return !b.HasPermissionToUseItem(ply);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool AllowGroup(string item, string name)
|
public bool AllowGroup(string item, string name)
|
||||||
|
|
@ -162,11 +158,11 @@ namespace TShockAPI.DB
|
||||||
|
|
||||||
public ItemBan GetItemBanByName(String name)
|
public ItemBan GetItemBanByName(String name)
|
||||||
{
|
{
|
||||||
foreach (ItemBan b in ItemBans)
|
for (int i = 0; i < ItemBans.Count; i++)
|
||||||
{
|
{
|
||||||
if (b.Name == name)
|
if (ItemBans[i].Name == name)
|
||||||
{
|
{
|
||||||
return b;
|
return ItemBans[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ namespace TShockAPI.DB
|
||||||
new SqlColumn("width", MySqlDbType.Int32),
|
new SqlColumn("width", MySqlDbType.Int32),
|
||||||
new SqlColumn("height", MySqlDbType.Int32),
|
new SqlColumn("height", MySqlDbType.Int32),
|
||||||
new SqlColumn("RegionName", MySqlDbType.VarChar, 50) {Unique = true},
|
new SqlColumn("RegionName", MySqlDbType.VarChar, 50) {Unique = true},
|
||||||
new SqlColumn("WorldID", MySqlDbType.Text) {Unique = true},
|
new SqlColumn("WorldID", MySqlDbType.VarChar, 50) { Unique = true },
|
||||||
new SqlColumn("UserIds", MySqlDbType.Text),
|
new SqlColumn("UserIds", MySqlDbType.Text),
|
||||||
new SqlColumn("Protected", MySqlDbType.Int32),
|
new SqlColumn("Protected", MySqlDbType.Int32),
|
||||||
new SqlColumn("Groups", MySqlDbType.Text),
|
new SqlColumn("Groups", MySqlDbType.Text),
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ namespace TShockAPI.DB
|
||||||
new SqlColumn("WarpName", MySqlDbType.VarChar, 50) {Unique = true},
|
new SqlColumn("WarpName", MySqlDbType.VarChar, 50) {Unique = true},
|
||||||
new SqlColumn("X", MySqlDbType.Int32),
|
new SqlColumn("X", MySqlDbType.Int32),
|
||||||
new SqlColumn("Y", MySqlDbType.Int32),
|
new SqlColumn("Y", MySqlDbType.Int32),
|
||||||
new SqlColumn("WorldID", MySqlDbType.Text) {Unique = true},
|
new SqlColumn("WorldID", MySqlDbType.VarChar, 50) { Unique = true },
|
||||||
new SqlColumn("Private", MySqlDbType.Text)
|
new SqlColumn("Private", MySqlDbType.Text)
|
||||||
);
|
);
|
||||||
var creator = new SqlTableCreator(db,
|
var creator = new SqlTableCreator(db,
|
||||||
|
|
|
||||||
|
|
@ -3292,7 +3292,7 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
var buff = args.Data.ReadInt8();
|
var buff = args.Data.ReadInt8();
|
||||||
|
|
||||||
if (TShock.Itembans.ItemBans.Any(s =>
|
/*if (TShock.Itembans.ItemBans.Any(s =>
|
||||||
{
|
{
|
||||||
Item item = new Item();
|
Item item = new Item();
|
||||||
item.SetDefaults(s.Name);
|
item.SetDefaults(s.Name);
|
||||||
|
|
@ -3300,7 +3300,7 @@ namespace TShockAPI
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
buff = 0;
|
buff = 0;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
if (buff == 10 && TShock.Config.DisableInvisPvP && args.TPlayer.hostile)
|
if (buff == 10 && TShock.Config.DisableInvisPvP && args.TPlayer.hostile)
|
||||||
buff = 0;
|
buff = 0;
|
||||||
|
|
|
||||||
|
|
@ -804,6 +804,7 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
player.IgnoreActionsForCheating = check;
|
player.IgnoreActionsForCheating = check;
|
||||||
check = "none";
|
check = "none";
|
||||||
|
//todo: pretty sure we check every place a players inventory can change, so do we really need to do this?
|
||||||
foreach (Item item in player.TPlayer.armor)
|
foreach (Item item in player.TPlayer.armor)
|
||||||
{
|
{
|
||||||
if (Itembans.ItemIsBanned(item.name, player))
|
if (Itembans.ItemIsBanned(item.name, player))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue