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:
Zack Piispanen 2014-09-15 09:05:28 -04:00
parent c29f01b959
commit d5527ade42
5 changed files with 10 additions and 13 deletions

View file

@ -101,12 +101,8 @@ namespace TShockAPI.DB
public bool ItemIsBanned(string name, TSPlayer ply)
{
if (ItemBans.Contains(new ItemBan(name)))
{
ItemBan b = GetItemBanByName(name);
return !b.HasPermissionToUseItem(ply);
}
return false;
ItemBan b = GetItemBanByName(name);
return b != null &&!b.HasPermissionToUseItem(ply);
}
public bool AllowGroup(string item, string name)
@ -162,11 +158,11 @@ namespace TShockAPI.DB
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;

View file

@ -44,7 +44,7 @@ namespace TShockAPI.DB
new SqlColumn("width", MySqlDbType.Int32),
new SqlColumn("height", MySqlDbType.Int32),
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("Protected", MySqlDbType.Int32),
new SqlColumn("Groups", MySqlDbType.Text),

View file

@ -44,7 +44,7 @@ namespace TShockAPI.DB
new SqlColumn("WarpName", MySqlDbType.VarChar, 50) {Unique = true},
new SqlColumn("X", 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)
);
var creator = new SqlTableCreator(db,

View file

@ -3292,7 +3292,7 @@ namespace TShockAPI
{
var buff = args.Data.ReadInt8();
if (TShock.Itembans.ItemBans.Any(s =>
/*if (TShock.Itembans.ItemBans.Any(s =>
{
Item item = new Item();
item.SetDefaults(s.Name);
@ -3300,7 +3300,7 @@ namespace TShockAPI
}))
{
buff = 0;
}
}*/
if (buff == 10 && TShock.Config.DisableInvisPvP && args.TPlayer.hostile)
buff = 0;

View file

@ -804,6 +804,7 @@ namespace TShockAPI
}
player.IgnoreActionsForCheating = check;
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)
{
if (Itembans.ItemIsBanned(item.name, player))