@ -1,5 +1,6 @@
@@ -1,5 +1,6 @@
using System ;
using System.Collections.Generic ;
using System.Diagnostics ;
using System.Linq ;
using System.Reflection ;
using System.Threading ;
@ -49,26 +50,39 @@ namespace Combot.Modules.Plugins
@@ -49,26 +50,39 @@ namespace Combot.Modules.Plugins
public void HandleVersionQuery ( object sender , CTCPMessage message )
{
if ( message . Command . ToLower ( ) = = "version" )
if ( Enabled
& & ! Bot . ServerConfig . NickBlacklist . Contains ( message . Sender . Nickname )
& & ! NickBlacklist . Contains ( message . Sender . Nickname ) )
{
Bot . IRC . Command . SendCTCPNotice ( message . Sender . Nickname , "VERSION" , string . Format ( "Combot v{0} on {1}" , Assembly . GetExecutingAssembly ( ) . GetName ( ) . Version , GetOptionValue ( "Machine Reply" ) ) ) ;
if ( message . Command . ToLower ( ) = = "version" )
{
Assembly assembly = Assembly . GetExecutingAssembly ( ) ;
FileVersionInfo fileVersionInfo = FileVersionInfo . GetVersionInfo ( assembly . Location ) ;
string version = fileVersionInfo . ProductVersion ;
Bot . IRC . Command . SendCTCPNotice ( message . Sender . Nickname , "VERSION" , string . Format ( "Combot v{0} on {1}" , version , GetOptionValue ( "Machine Reply" ) ) ) ;
}
}
}
public void HandleVersionResponse ( object sender , CTCPMessage message )
{
if ( message . Command = = "VERSION" )
if ( Enabled
& & ! Bot . ServerConfig . NickBlacklist . Contains ( message . Sender . Nickname )
& & ! NickBlacklist . Contains ( message . Sender . Nickname ) )
{
listLock . EnterReadLock ( ) ;
VersionItem versionItem = versionList . Find ( item = > item . Nick . ToLower ( ) = = message . Sender . Nickname . ToLower ( ) ) ;
listLock . ExitReadLock ( ) ;
if ( versionItem ! = null )
if ( message . Command = = "VERSION" )
{
string verResponse = string . Format ( "[{0}] Using version: {1}" , versionItem . Nick , message . Arguments ) ;
SendResponse ( versionItem . MessageType , versionItem . Location , message . Sender . Nickname , verResponse ) ;
listLock . EnterWriteLock ( ) ;
versionList . RemoveAll ( item = > item . Nick = = versionItem . Nick ) ;
listLock . ExitWriteLock ( ) ;
listLock . EnterReadLock ( ) ;
VersionItem versionItem = versionList . Find ( item = > item . Nick . ToLower ( ) = = message . Sender . Nickname . ToLower ( ) ) ;
listLock . ExitReadLock ( ) ;
if ( versionItem ! = null )
{
string verResponse = string . Format ( "[{0}] Using version: {1}" , versionItem . Nick , message . Arguments ) ;
SendResponse ( versionItem . MessageType , versionItem . Location , message . Sender . Nickname , verResponse ) ;
listLock . EnterWriteLock ( ) ;
versionList . RemoveAll ( item = > item . Nick = = versionItem . Nick ) ;
listLock . ExitWriteLock ( ) ;
}
}
}
}