55 using System . Drawing ;
66 using System . Linq ;
77 using System . Text . RegularExpressions ;
8+ using System . Threading . Tasks ;
89
910 using LeagueSharp ;
1011 using LeagueSharp . Common ;
1415 /// <summary>
1516 /// Program class.
1617 /// </summary>
17- internal class Program
18+ internal class RageBlock
1819 {
1920 #region Constants
2021
@@ -44,7 +45,12 @@ internal class Program
4445 private static readonly Dictionary < int , Count > HeroCount = new Dictionary < int , Count > ( ) ;
4546
4647 /// <summary>
47- /// The last tick.
48+ /// Queue Worker in terms of a list.
49+ /// </summary>
50+ private static readonly List < Task > Queue = new List < Task > ( ) ;
51+
52+ /// <summary>
53+ /// Last Tick of Environment.TickCount.
4854 /// </summary>
4955 private static float lastTick ;
5056
@@ -75,7 +81,7 @@ private static void GameOnGameLoad(EventArgs args)
7581 {
7682 m = new Menu ( R , R , true ) ;
7783 m . AddItem ( new MenuItem ( "Status" , "Enable" ) . SetValue ( true ) ) . ValueChanged +=
78- delegate ( object sender , OnValueChangeEventArgs eventArgs )
84+ delegate ( object sender , OnValueChangeEventArgs eventArgs )
7985 {
8086 if ( eventArgs . GetNewValue < bool > ( ) )
8187 {
@@ -96,7 +102,7 @@ private static void GameOnGameLoad(EventArgs args)
96102 } ;
97103 m . AddItem (
98104 new MenuItem ( "Block" , "Block modus:" ) . SetValue ( new StringList ( new [ ] { "Block and Mute" , "Block" } ) ) )
99- . ValueChanged += delegate ( object sender , OnValueChangeEventArgs eventArgs )
105+ . ValueChanged += delegate ( object sender , OnValueChangeEventArgs eventArgs )
100106 {
101107 if ( eventArgs . GetNewValue < StringList > ( ) . SelectedIndex == 0 )
102108 {
@@ -108,29 +114,29 @@ private static void GameOnGameLoad(EventArgs args)
108114 m . AddItem ( new MenuItem ( "CallOut" , "Block words for scripting" ) )
109115 . SetTooltip ( "Add/Remove words for scripting to the word filter." )
110116 . SetValue ( true )
111- . ValueChanged += delegate ( object sender , OnValueChangeEventArgs eventArgs )
117+ . ValueChanged += delegate ( object sender , OnValueChangeEventArgs eventArgs )
112118 {
113119 if ( eventArgs . GetNewValue < bool > ( ) )
114120 {
115- foreach ( var entry in Rage . IDont )
121+ foreach ( var entry in WordFilter . IDont )
116122 {
117- Rage . Flame . Add ( entry ) ;
123+ WordFilter . Flame . Add ( entry ) ;
118124 }
119125
120- Rage . Flame . Add ( GetRegex ( Rage . IDont ) ) ;
126+ WordFilter . Flame . Add ( GetRegex ( WordFilter . IDont ) ) ;
121127 }
122128
123129 if ( eventArgs . GetNewValue < bool > ( ) )
124130 {
125131 return ;
126132 }
127133
128- foreach ( var entry in Rage . IDont )
134+ foreach ( var entry in WordFilter . IDont )
129135 {
130- Rage . Flame . Remove ( entry ) ;
136+ WordFilter . Flame . Remove ( entry ) ;
131137 }
132138
133- Rage . Flame . Remove ( GetRegex ( Rage . IDont ) ) ;
139+ WordFilter . Flame . Remove ( GetRegex ( WordFilter . IDont ) ) ;
134140 } ;
135141
136142 m . AddItem ( new MenuItem ( "Ping" , "Block ping abuser" ) )
@@ -154,7 +160,14 @@ private static void GameOnGameLoad(EventArgs args)
154160 . ValueChanged += ( sender , eventArgs ) =>
155161 {
156162 var name = ( MenuItem ) sender ;
157- Game . Say ( "/mute " + name . Tooltip ) ;
163+
164+ if ( m . Item ( "Block" ) . GetValue < StringList > ( ) . SelectedIndex != 0 )
165+ {
166+ return ;
167+ }
168+
169+ Queue . Add ( new Task ( delegate { Game . Say ( "/mute " + name . Tooltip ) ; } ) ) ;
170+ Log ( "Release a key to mute " + name . Tooltip + "." ) ;
158171 } ;
159172 }
160173
@@ -169,20 +182,27 @@ private static void GameOnGameLoad(EventArgs args)
169182 . ValueChanged += ( sender , eventArgs ) =>
170183 {
171184 var name = ( MenuItem ) sender ;
172- Game . Say ( "/mute " + name . Tooltip ) ;
185+
186+ if ( m . Item ( "Block" ) . GetValue < StringList > ( ) . SelectedIndex != 0 )
187+ {
188+ return ;
189+ }
190+
191+ Queue . Add ( new Task ( delegate { Game . Say ( "/mute " + name . Tooltip ) ; } ) ) ;
192+ Log ( "Release a key to mute " + name . Tooltip + "." ) ;
173193 } ;
174194 }
175195
176196 m . AddToMainMenu ( ) ;
177197
178198 if ( m . Item ( "CallOut" ) . GetValue < bool > ( ) )
179199 {
180- foreach ( var entry in Rage . IDont )
200+ foreach ( var entry in WordFilter . IDont )
181201 {
182- Rage . Flame . Add ( entry ) ;
202+ WordFilter . Flame . Add ( entry ) ;
183203 }
184204
185- Rage . Flame . Add ( GetRegex ( Rage . IDont ) ) ;
205+ WordFilter . Flame . Add ( GetRegex ( WordFilter . IDont ) ) ;
186206 }
187207
188208 foreach ( var hero in
@@ -207,11 +227,12 @@ private static void GameOnChat(GameChatEventArgs args)
207227 {
208228 if ( ! m . Item ( "Status" ) . GetValue < bool > ( )
209229 || args . Sender == null
210- || args . Sender . IsMe
230+ || ! args . Sender . IsMe
211231 || args . Sender . IsBot
232+ || ! args . Sender . IsValid
212233 || m . Item ( args . Sender . NetworkId . ToString ( ) ) . GetValue < bool > ( )
213- || ! new Regex ( @"(?<!\S)(" + string . Join ( @"|" , Rage . Flame ) + @")(?!\S)" , RegexOptions . IgnoreCase ) . Match (
214- args . Message ) . Success )
234+ || ! new Regex ( @"(?<!\S)(" + string . Join ( @"|" , WordFilter . Flame ) + @")(?!\S)" , RegexOptions . IgnoreCase )
235+ . Match ( Regex . Replace ( args . Message , @"\p{P}\p{S}" , string . Empty ) ) . Success )
215236 {
216237 return ;
217238 }
@@ -223,13 +244,7 @@ private static void GameOnChat(GameChatEventArgs args)
223244 return ;
224245 }
225246
226- Utility . DelayAction . Add (
227- new Random ( ) . Next ( 127 , 723 ) ,
228- ( ) =>
229- m . SubMenu ( "Muted" )
230- . SubMenu ( args . Sender . IsAlly ? "Allies" : "Enemies" )
231- . Item ( args . Sender . Name )
232- . SetValue ( true ) ) ;
247+ m . SubMenu ( "Muted" ) . SubMenu ( args . Sender . IsAlly ? "Allies" : "Enemies" ) . Item ( args . Sender . Name ) . SetValue ( true ) ;
233248 }
234249
235250 /// <summary>
@@ -242,14 +257,15 @@ private static void GameOnInput(GameInputEventArgs args)
242257 {
243258 if ( ! m . Item ( "Status" ) . GetValue < bool > ( )
244259 || ! new Regex (
245- @"^(?!\/(?:whisper|w|reply|r)(?!\S)).*(?<!\S)(" + string . Join ( @"|" , Rage . Flame ) + @")(?!\S)" ,
246- RegexOptions . IgnoreCase ) . Match ( args . Input ) . Success )
260+ @"^(?!\/(?:whisper|w|reply|r)(?!\S)).*(?<!\S)(" + string . Join ( @"|" , WordFilter . Flame )
261+ + @")(?!\S)" ,
262+ RegexOptions . IgnoreCase ) . Match ( Regex . Replace ( args . Input , @"\p{P}\p{S}" , string . Empty ) ) . Success )
247263 {
248264 return ;
249265 }
250266
251267 args . Process = false ;
252- Log ( Rage . Jokes [ new Random ( ) . Next ( 0 , Rage . Jokes . Length ) ] ) ;
268+ Log ( WordFilter . Jokes [ new Random ( ) . Next ( 0 , WordFilter . Jokes . Length ) ] ) ;
253269 }
254270
255271 /// <summary>
@@ -261,7 +277,10 @@ private static void GameOnInput(GameInputEventArgs args)
261277 private static void GameOnPing ( GamePingEventArgs args )
262278 {
263279 var hero = ( Obj_AI_Hero ) args . Source ;
264- if ( hero == null
280+ if ( ! m . Item ( "Status" ) . GetValue < bool > ( )
281+ || ! m . Item ( "Ping" ) . GetValue < bool > ( )
282+ || hero == null
283+ || ! hero . IsValid
265284 || hero . IsMe
266285 || ! HeroCount . ContainsKey ( hero . NetworkId ) )
267286 {
@@ -286,11 +305,29 @@ private static void GameOnPing(GamePingEventArgs args)
286305 /// </param>
287306 private static void GameOnUpdate ( EventArgs args )
288307 {
308+ if ( ! m . Item ( "Status" ) . GetValue < bool > ( )
309+ || ! m . Item ( "Ping" ) . GetValue < bool > ( ) )
310+ {
311+ return ;
312+ }
313+
289314 foreach ( var hero in
290315 HeroManager . AllHeroes . Where ( me => ! me . IsMe && ! me . IsBot ) . Select ( hero => hero . NetworkId ) . ToList ( ) )
291316 {
292317 LowerCount ( hero ) ;
293318 }
319+
320+ if ( Orbwalking . Orbwalker . Instances . Count != 0
321+ && Orbwalking . Orbwalker . Instances . Any ( o => o . ActiveMode != Orbwalking . OrbwalkingMode . None ) )
322+ {
323+ return ;
324+ }
325+
326+ foreach ( var task in Queue . ToList ( ) . Where ( task => Queue . Any ( ) ) )
327+ {
328+ task . Start ( ) ;
329+ Queue . Remove ( task ) ;
330+ }
294331 }
295332
296333 /// <summary>
@@ -365,6 +402,8 @@ private static void Log(object value)
365402 Game . PrintChat ( "[" + DateTime . Now . ToString ( "HH:mm" ) + "] <font color='#eb7577'>" + R + "</font>: " + value ) ;
366403 }
367404
405+ #endregion
406+
368407 /// <summary>
369408 /// Class count.
370409 /// </summary>
@@ -379,6 +418,5 @@ private class Count
379418
380419 #endregion
381420 }
382- #endregion
383421 }
384422}
0 commit comments