document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. Public Class GlobalResources
  2.     Public Enum MessageType
  3.         PRIVMSG
  4.         NS
  5.     End Enum
  6.     Public Structure Message
  7.         Dim Type As MessageType
  8.         Dim Nick As String
  9.         Dim User As String
  10.         Dim Host As String
  11.         Dim Target As String
  12.         Dim Message As String
  13.         Dim Owner As String
  14.         Dim Server As String
  15.         Dim BotNick As String
  16.         Dim Raw As String
  17.         Public Sub New(ByVal _Type As MessageType, _
  18.                        ByVal _Nick As String, _
  19.                        ByVal _User As String, _
  20.                        ByVal _Host As String, _
  21.                        ByVal _Target As String, _
  22.                        ByVal _Message As String, _
  23.                        ByVal _Owner As String, _
  24.                        ByVal _Server As String, _
  25.                        ByVal _BotNick As String, _
  26.                        ByVal _Raw As String)
  27.             Type = _Type
  28.             Nick = _Nick
  29.             User = _User
  30.             Host = _Host
  31.             Target = _Target
  32.             Message = _Message
  33.             Owner = _Owner
  34.             Server = _Server
  35.         End Sub
  36.         Public Sub New(ByVal RawMessage As String, ByVal _Owner As String, ByVal _Server As String, _BotNick As String)
  37.             Raw = RawMessage
  38.             Owner = _Owner
  39.             Server = _Server
  40.             BotNick = _BotNick
  41.             If RawMessage.StartsWith(":") Then
  42.                 Dim PreInfo As String = RawMessage.Remove(0, 1).Split(" ")(0)
  43.                 If RawMessage.Split(" ")(1) = "PRIVMSG" Then
  44.                     Try
  45.                         Type = MessageType.PRIVMSG
  46.                         Nick = PreInfo.Split("!")(0)
  47.                         User = PreInfo.Split("!")(1).Split("@")(0)
  48.                         Host = PreInfo.Split("@")(1).Split(" ")(0)
  49.                         Target = RawMessage.Split(" ")(2)
  50.                         Message = RawMessage.Substring(Nick.Length + _
  51.                                                        User.Length + _
  52.                                                        Host.Length + _
  53.                                                        Target.Length + 14)
  54.                     Catch ex As Exception
  55.                         Type = MessageType.NS
  56.                     End Try
  57.                 Else
  58.                     Type = MessageType.NS
  59.                 End If
  60.             End If
  61.             If Type = MessageType.PRIVMSG Then
  62.                 If Nick = Nothing Or _
  63.                     User = Nothing Or _
  64.                     Host = Nothing Or _
  65.                     Target = Nothing Or _
  66.                     Message = Nothing Then
  67.                     Type = MessageType.NS
  68.                 End If
  69.             End If
  70.         End Sub
  71.     End Structure
  72.     Public Structure ResourceElement
  73.         Dim Type As String
  74.         Dim Name As String
  75.         Dim Value As Object
  76.         Public Sub New(ByVal Type As String, ByVal Name As String, ByVal Value As Object)
  77.             Me.Type = Type
  78.             Me.Name = Name
  79.             Me.Value = Value
  80.         End Sub
  81.     End Structure
  82.     Public Structure Resource
  83.         Dim Origin As String
  84.         Dim Resources As List(Of ResourceElement)
  85.         Public Sub New(ByVal Origin As String, ByVal Resources As ResourceElement)
  86.             Me.Origin = Origin
  87.             Me.Resources = New List(Of ResourceElement)
  88.             Me.Resources.Add(Resources)
  89.         End Sub
  90.         Public Sub New(ByVal Origin As String, Optional ByVal Resources() As ResourceElement = Nothing)
  91.             Me.Origin = Origin
  92.             If Resources Is Nothing Then Me.Resources = New List(Of ResourceElement) Else Me.Resources = Resources.ToList
  93.         End Sub
  94.     End Structure
  95.     Public Shared SharedResources As New List(Of Resource)
  96.     Public Shared Function GetToSend() As String
  97.         Dim crntsnd As String = String.Empty
  98.         SyncLock SharedResources(0).Resources(1).Value
  99.             If SharedResources(0).Resources(1).Value.count > 0 Then
  100.                 crntsnd = SharedResources(0).Resources(1).Value(0)
  101.                 SharedResources(0).Resources(1).Value.RemoveAt(0)
  102.             End If
  103.         End SyncLock
  104.         Return crntsnd
  105.     End Function
  106.     Public Shared Function GetRecvMsg(Optional ByVal RemoveOnGet As Boolean = True) As String
  107.         Dim Holding As String = String.Empty
  108.         SyncLock SharedResources(0).Resources(0).Value
  109.             If SharedResources(0).Resources(0).Value.count > 0 Then
  110.                 Holding = SharedResources(0).Resources(0).Value(0)
  111.                 If RemoveOnGet Then SharedResources(0).Resources(0).Value.RemoveAt(0)
  112.             End If
  113.         End SyncLock
  114.         Return Holding
  115.     End Function
  116.     Public Shared Function GetConsoleMsg(Optional ByVal RemoveOnGet As Boolean = True) As String
  117.         Dim Holding As String = String.Empty
  118.         SyncLock SharedResources(0).Resources(6).Value
  119.             If SharedResources(0).Resources(6).Value.count > 0 Then
  120.                 Holding = SharedResources(0).Resources(6).Value(0)
  121.                 If RemoveOnGet Then SharedResources(0).Resources(6).Value.RemoveAt(0)
  122.             End If
  123.         End SyncLock
  124.         Return Holding
  125.     End Function
  126.     Public Shared Function ParseMessage(ByRef sourceInfo As Message, ByVal Input As String) As String
  127.         On Error Resume Next
  128.         ParseMessage = Input.Replace("<HOST>", sourceInfo.Host)
  129.         ParseMessage = ParseMessage.Replace("<MESSAGE>", sourceInfo.Message)
  130.         ParseMessage = ParseMessage.Replace("<NICK>", sourceInfo.Nick)
  131.         ParseMessage = ParseMessage.Replace("<OWNER>", sourceInfo.Owner)
  132.         ParseMessage = ParseMessage.Replace("<RAW>", sourceInfo.Raw)
  133.         ParseMessage = ParseMessage.Replace("<SERVER>", sourceInfo.Server)
  134.         ParseMessage = ParseMessage.Replace("<TARGET>", sourceInfo.Target)
  135.     End Function
  136.     Public Shared Sub AddResource(ByVal newResource As Resource)
  137.         SyncLock SharedResources
  138.             SharedResources.Add(newResource)
  139.         End SyncLock
  140.     End Sub
  141.     Public Shared Sub AddResource(ByVal newResourceOrigin As String)
  142.         SyncLock SharedResources
  143.             SharedResources.Add(New Resource(newResourceOrigin))
  144.         End SyncLock
  145.     End Sub
  146.     Public Shared Sub RemoveResource(ByVal Origin As String)
  147.         SyncLock SharedResources
  148.             For i = 0 To SharedResources.Count - 1
  149.                 If SharedResources(i).Origin = Origin Then
  150.                     SharedResources.RemoveAt(i)
  151.                     Exit For
  152.                 End If
  153.             Next
  154.         End SyncLock
  155.     End Sub
  156.     Public Shared Sub RemoveResourceAt(ByVal index As Integer)
  157.         If index < 0 Then Exit Sub
  158.         SyncLock SharedResources
  159.             If index < SharedResources.Count Then
  160.                 SharedResources.RemoveAt(index)
  161.             End If
  162.         End SyncLock
  163.     End Sub
  164.     Public Shared Sub AddResourceElement(ByVal ResourceIndex As Integer, ByVal Type As String, ByVal Name As String, ByVal Value As Object)
  165.         SyncLock SharedResources(ResourceIndex).Resources
  166.             SharedResources(ResourceIndex).Resources.Add(New ResourceElement(Type, Name, Value))
  167.         End SyncLock
  168.     End Sub
  169.     Public Shared Sub AddResourceElement(ByVal ResourceOrigin As String, ByVal Type As String, ByVal Name As String, ByVal Value As Object)
  170.         Dim OriginIndex As Integer = GetResourceIndexOfOrigin(ResourceOrigin)
  171.         AddResourceElement(OriginIndex, Type, Name, Value)
  172.     End Sub
  173.     Public Shared Sub RemoveResourceElementAt(ByVal ResourceIndex As Integer, ByVal ElementIndex As Integer)
  174.         If ElementIndex < 0 Then Exit Sub
  175.         SyncLock SharedResources(ResourceIndex).Resources
  176.             If ElementIndex < SharedResources(ResourceIndex).Resources.Count Then
  177.                 SharedResources(ResourceIndex).Resources.RemoveAt(ElementIndex)
  178.             End If
  179.         End SyncLock
  180.     End Sub
  181.     Public Shared Sub RemoveResourceElement(ByVal ResourceOrigin As String, ByVal Name As String)
  182.         Dim OriginIndex As Integer = GetResourceIndexOfOrigin(ResourceOrigin)
  183.         Dim NameIndex As Integer = GetElementIndexOfName(OriginIndex, Name)
  184.         RemoveResourceElementAt(OriginIndex, NameIndex)
  185.     End Sub
  186.     Public Shared Sub SetResourceElement(ByVal ResourceIndex As Integer, ByVal ElementIndex As Integer, ByVal Value As Object)
  187.         Dim sameType, sameName As String
  188.         SyncLock SharedResources(ResourceIndex).Resources
  189.             sameType = SharedResources(ResourceIndex).Resources(ElementIndex).Type
  190.             sameName = SharedResources(ResourceIndex).Resources(ElementIndex).Name
  191.             SharedResources(ResourceIndex).Resources(ElementIndex) = New ResourceElement(sameType, sameName, Value)
  192.         End SyncLock
  193.     End Sub
  194.     Public Shared Function GetResourceElement(ByVal ResourceIndex As Integer, ByVal ElementIndex As Integer)
  195.         SyncLock SharedResources(ResourceIndex).Resources
  196.             Return SharedResources(ResourceIndex).Resources(ElementIndex).Value
  197.         End SyncLock
  198.     End Function
  199.     Public Shared Sub AddToSend(ByVal msg As String)
  200.         SyncLock SharedResources(0).Resources(1).Value
  201.             SharedResources(0).Resources(1).Value.add(msg)
  202.         End SyncLock
  203.     End Sub
  204.     Public Shared Sub AddToRecv(ByVal msg As String)
  205.         SyncLock SharedResources(0).Resources(0).Value
  206.             SharedResources(0).Resources(0).Value.add(msg)
  207.         End SyncLock
  208.     End Sub
  209.     Public Shared Sub AddToConsole(ByVal msg As String)
  210.         SyncLock SharedResources(0).Resources(6).Value
  211.             SharedResources(0).Resources(6).Value.add(msg)
  212.         End SyncLock
  213.     End Sub
  214.     Public Shared Sub SetCurrentChan(ByVal newChan As String)
  215.         SetResourceElement(0, 7, newChan)
  216.     End Sub
  217.     Public Shared Function GetCurrentChan() As String
  218.         On Error Resume Next
  219.         SyncLock SharedResources(0).Resources(7).Value
  220.             Return SharedResources(0).Resources(7).Value
  221.         End SyncLock
  222.     End Function
  223.     Public Shared Function GetResourceIndexOfOrigin(ByVal Origin As String) As Integer
  224.         SyncLock SharedResources
  225.             For i = 0 To SharedResources.Count - 1
  226.                 If SharedResources(i).Origin = Origin Then Return i
  227.             Next
  228.         End SyncLock
  229.         Return -1
  230.     End Function
  231.     Public Shared Function GetElementIndexOfName(ByVal Name As String) As Integer()
  232.         SyncLock SharedResources
  233.             For i = 0 To SharedResources.Count - 1
  234.                 For x = 0 To SharedResources(i).Resources.Count - 1
  235.                     If SharedResources(i).Resources(x).Name = Name Then Return {i, x}
  236.                 Next
  237.             Next
  238.         End SyncLock
  239.         Return {-1, -1}
  240.     End Function
  241.     Public Shared Function GetElementIndexOfName(ByVal ResourceIndex As Integer, ByVal Name As String) As Integer
  242.         SyncLock SharedResources(ResourceIndex).Resources
  243.             For i = 0 To SharedResources(ResourceIndex).Resources.Count - 1
  244.                 If SharedResources(ResourceIndex).Resources(i).Name = Name Then Return i
  245.             Next
  246.         End SyncLock
  247.         Return -1
  248.     End Function
  249.     Public Shared Sub StopPluginManager()
  250.         SyncLock SharedResources(0).Resources(3).Value
  251.             SharedResources(0).Resources(3).Value.Close()
  252.         End SyncLock
  253.     End Sub
  254.     Public Shared Sub StartPluginManager(ByVal Owner As String, ByVal Server As String, ByVal BotNick As String)
  255.         SyncLock SharedResources(0).Resources(3).Value
  256.             SharedResources(0).Resources(3).Value.Start(Owner, Server, BotNick)
  257.         End SyncLock
  258.     End Sub
  259.     Public Shared Sub StopConnectionClient()
  260.         SharedResources(0).Resources(4).Value.Close()
  261.     End Sub
  262.     Public Shared Function StartConnectionClient(ByVal Server As String, ByVal Port As String, ByVal Nick As String, ByVal Channel As String, ByVal Pass As String, ByVal JoinMsg As String) As Boolean
  263.         SyncLock SharedResources(0).Resources(4).Value
  264.             Return SharedResources(0).Resources(4).Value.StartConnection(Server, Port, Nick, Channel, Pass, JoinMsg)
  265.         End SyncLock
  266.     End Function
  267.     Public Shared Function ConnectionStatus() As Boolean
  268.         Try
  269.             Return SharedResources(0).Resources(4).Value.ConnectionStatus
  270.         Catch ex As Exception
  271.             Return False
  272.         End Try
  273.     End Function
  274. End Class
  275. Public Interface Plgn
  276.     ReadOnly Property Name() As String
  277.     Function ProcessMessage(ByVal InputMessage As GlobalResources.Message) As Boolean
  278.     Sub Config()
  279. End Interface
');