2
2
using System . Collections . Generic ;
3
3
using System . Data ;
4
4
using System . IO ;
5
+ using System . Linq ;
5
6
using Mono . Data . Sqlite ;
6
7
using MySql . Data . MySqlClient ;
7
8
using TerrariaApi . Server ;
8
9
using TShockAPI ;
9
10
using TShockAPI . DB ;
10
11
using Terraria ;
12
+ using TShockAPI . Hooks ;
11
13
12
14
namespace RegionFlags
13
15
{
@@ -78,6 +80,7 @@ public override void Initialize()
78
80
ServerApi . Hooks . ServerLeave . Register ( this , OnLeave ) ;
79
81
GetDataHandlers . NPCStrike += npchooks . OnNPCStrike ;
80
82
GetDataHandlers . PlayerDamage += playerhooks . OnDamage ;
83
+ TShockAPI . Hooks . GeneralHooks . ReloadEvent += OnReload ;
81
84
Database ( ) ;
82
85
}
83
86
@@ -118,7 +121,8 @@ private void Database()
118
121
new SqlColumn ( "Name" , MySqlDbType . VarChar , 56 ) { Length = 56 , Primary = true } ,
119
122
new SqlColumn ( "Flags" , MySqlDbType . Int32 ) { DefaultValue = "0" } ,
120
123
new SqlColumn ( "Damage" , MySqlDbType . Int32 ) { DefaultValue = "0" } ,
121
- new SqlColumn ( "Heal" , MySqlDbType . Int32 ) { DefaultValue = "0" }
124
+ new SqlColumn ( "Heal" , MySqlDbType . Int32 ) { DefaultValue = "0" } ,
125
+ new SqlColumn ( "BannedItems" , MySqlDbType . Text ) { DefaultValue = "" }
122
126
) ;
123
127
var creator = new SqlTableCreator ( db ,
124
128
db . GetSqlType ( ) == SqlType . Sqlite
@@ -127,6 +131,12 @@ private void Database()
127
131
creator . EnsureExists ( table ) ;
128
132
}
129
133
134
+ private void OnReload ( ReloadEventArgs args )
135
+ {
136
+ regions . Clear ( ) ;
137
+ Import ( new EventArgs ( ) ) ;
138
+ }
139
+
130
140
private void Import ( EventArgs args )
131
141
{
132
142
String query = "SELECT * FROM Regions" ;
@@ -139,7 +149,10 @@ private void Import(EventArgs args)
139
149
int flags = reader . Get < int > ( "Flags" ) ;
140
150
int damage = reader . Get < int > ( "Damage" ) ;
141
151
int heal = reader . Get < int > ( "Heal" ) ;
142
- regions . ImportRegion ( name , flags , damage , heal ) ;
152
+ string bannedItems = reader . Get < string > ( "BannedItems" ) ?? "" ;
153
+
154
+ List < string > bannedItemsList = new List < string > ( bannedItems . Split ( ',' ) . ToList ( ) . Select ( s => s . Trim ( ) ) ) ;
155
+ regions . ImportRegion ( name , flags , damage , heal , bannedItemsList ) ;
143
156
}
144
157
}
145
158
}
0 commit comments