Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class GlobalResources
- Public Enum MessageType
- PRIVMSG
- NS
- End Enum
- Public Structure Message
- Dim Type As MessageType
- Dim Nick As String
- Dim User As String
- Dim Host As String
- Dim Target As String
- Dim Message As String
- Dim Owner As String
- Dim Server As String
- Dim BotNick As String
- Dim Raw As String
- Public Sub New(ByVal _Type As MessageType, _
- ByVal _Nick As String, _
- ByVal _User As String, _
- ByVal _Host As String, _
- ByVal _Target As String, _
- ByVal _Message As String, _
- ByVal _Owner As String, _
- ByVal _Server As String, _
- ByVal _BotNick As String, _
- ByVal _Raw As String)
- Type = _Type
- Nick = _Nick
- User = _User
- Host = _Host
- Target = _Target
- Message = _Message
- Owner = _Owner
- Server = _Server
- End Sub
- Public Sub New(ByVal RawMessage As String, ByVal _Owner As String, ByVal _Server As String, _BotNick As String)
- Raw = RawMessage
- Owner = _Owner
- Server = _Server
- BotNick = _BotNick
- If RawMessage.StartsWith(":") Then
- Dim PreInfo As String = RawMessage.Remove(0, 1).Split(" ")(0)
- If RawMessage.Split(" ")(1) = "PRIVMSG" Then
- Try
- Type = MessageType.PRIVMSG
- Nick = PreInfo.Split("!")(0)
- User = PreInfo.Split("!")(1).Split("@")(0)
- Host = PreInfo.Split("@")(1).Split(" ")(0)
- Target = RawMessage.Split(" ")(2)
- Message = RawMessage.Substring(Nick.Length + _
- User.Length + _
- Host.Length + _
- Target.Length + 14)
- Catch ex As Exception
- Type = MessageType.NS
- End Try
- Else
- Type = MessageType.NS
- End If
- End If
- If Type = MessageType.PRIVMSG Then
- If Nick = Nothing Or _
- User = Nothing Or _
- Host = Nothing Or _
- Target = Nothing Or _
- Message = Nothing Then
- Type = MessageType.NS
- End If
- End If
- End Sub
- End Structure
- Public Structure ResourceElement
- Dim Type As String
- Dim Name As String
- Dim Value As Object
- Public Sub New(ByVal Type As String, ByVal Name As String, ByVal Value As Object)
- Me.Type = Type
- Me.Name = Name
- Me.Value = Value
- End Sub
- End Structure
- Public Structure Resource
- Dim Origin As String
- Dim Resources As List(Of ResourceElement)
- Public Sub New(ByVal Origin As String, ByVal Resources As ResourceElement)
- Me.Origin = Origin
- Me.Resources = New List(Of ResourceElement)
- Me.Resources.Add(Resources)
- End Sub
- Public Sub New(ByVal Origin As String, Optional ByVal Resources() As ResourceElement = Nothing)
- Me.Origin = Origin
- If Resources Is Nothing Then Me.Resources = New List(Of ResourceElement) Else Me.Resources = Resources.ToList
- End Sub
- End Structure
- Public Shared SharedResources As New List(Of Resource)
- Public Shared Function GetToSend() As String
- Dim crntsnd As String = String.Empty
- SyncLock SharedResources(0).Resources(1).Value
- If SharedResources(0).Resources(1).Value.count > 0 Then
- crntsnd = SharedResources(0).Resources(1).Value(0)
- SharedResources(0).Resources(1).Value.RemoveAt(0)
- End If
- End SyncLock
- Return crntsnd
- End Function
- Public Shared Function GetRecvMsg(Optional ByVal RemoveOnGet As Boolean = True) As String
- Dim Holding As String = String.Empty
- SyncLock SharedResources(0).Resources(0).Value
- If SharedResources(0).Resources(0).Value.count > 0 Then
- Holding = SharedResources(0).Resources(0).Value(0)
- If RemoveOnGet Then SharedResources(0).Resources(0).Value.RemoveAt(0)
- End If
- End SyncLock
- Return Holding
- End Function
- Public Shared Function GetConsoleMsg(Optional ByVal RemoveOnGet As Boolean = True) As String
- Dim Holding As String = String.Empty
- SyncLock SharedResources(0).Resources(6).Value
- If SharedResources(0).Resources(6).Value.count > 0 Then
- Holding = SharedResources(0).Resources(6).Value(0)
- If RemoveOnGet Then SharedResources(0).Resources(6).Value.RemoveAt(0)
- End If
- End SyncLock
- Return Holding
- End Function
- Public Shared Function ParseMessage(ByRef sourceInfo As Message, ByVal Input As String) As String
- On Error Resume Next
- ParseMessage = Input.Replace("<HOST>", sourceInfo.Host)
- ParseMessage = ParseMessage.Replace("<MESSAGE>", sourceInfo.Message)
- ParseMessage = ParseMessage.Replace("<NICK>", sourceInfo.Nick)
- ParseMessage = ParseMessage.Replace("<OWNER>", sourceInfo.Owner)
- ParseMessage = ParseMessage.Replace("<RAW>", sourceInfo.Raw)
- ParseMessage = ParseMessage.Replace("<SERVER>", sourceInfo.Server)
- ParseMessage = ParseMessage.Replace("<TARGET>", sourceInfo.Target)
- End Function
- Public Shared Sub AddResource(ByVal newResource As Resource)
- SyncLock SharedResources
- SharedResources.Add(newResource)
- End SyncLock
- End Sub
- Public Shared Sub AddResource(ByVal newResourceOrigin As String)
- SyncLock SharedResources
- SharedResources.Add(New Resource(newResourceOrigin))
- End SyncLock
- End Sub
- Public Shared Sub RemoveResource(ByVal Origin As String)
- SyncLock SharedResources
- For i = 0 To SharedResources.Count - 1
- If SharedResources(i).Origin = Origin Then
- SharedResources.RemoveAt(i)
- Exit For
- End If
- Next
- End SyncLock
- End Sub
- Public Shared Sub RemoveResourceAt(ByVal index As Integer)
- If index < 0 Then Exit Sub
- SyncLock SharedResources
- If index < SharedResources.Count Then
- SharedResources.RemoveAt(index)
- End If
- End SyncLock
- End Sub
- Public Shared Sub AddResourceElement(ByVal ResourceIndex As Integer, ByVal Type As String, ByVal Name As String, ByVal Value As Object)
- SyncLock SharedResources(ResourceIndex).Resources
- SharedResources(ResourceIndex).Resources.Add(New ResourceElement(Type, Name, Value))
- End SyncLock
- End Sub
- Public Shared Sub AddResourceElement(ByVal ResourceOrigin As String, ByVal Type As String, ByVal Name As String, ByVal Value As Object)
- Dim OriginIndex As Integer = GetResourceIndexOfOrigin(ResourceOrigin)
- AddResourceElement(OriginIndex, Type, Name, Value)
- End Sub
- Public Shared Sub RemoveResourceElementAt(ByVal ResourceIndex As Integer, ByVal ElementIndex As Integer)
- If ElementIndex < 0 Then Exit Sub
- SyncLock SharedResources(ResourceIndex).Resources
- If ElementIndex < SharedResources(ResourceIndex).Resources.Count Then
- SharedResources(ResourceIndex).Resources.RemoveAt(ElementIndex)
- End If
- End SyncLock
- End Sub
- Public Shared Sub RemoveResourceElement(ByVal ResourceOrigin As String, ByVal Name As String)
- Dim OriginIndex As Integer = GetResourceIndexOfOrigin(ResourceOrigin)
- Dim NameIndex As Integer = GetElementIndexOfName(OriginIndex, Name)
- RemoveResourceElementAt(OriginIndex, NameIndex)
- End Sub
- Public Shared Sub SetResourceElement(ByVal ResourceIndex As Integer, ByVal ElementIndex As Integer, ByVal Value As Object)
- Dim sameType, sameName As String
- SyncLock SharedResources(ResourceIndex).Resources
- sameType = SharedResources(ResourceIndex).Resources(ElementIndex).Type
- sameName = SharedResources(ResourceIndex).Resources(ElementIndex).Name
- SharedResources(ResourceIndex).Resources(ElementIndex) = New ResourceElement(sameType, sameName, Value)
- End SyncLock
- End Sub
- Public Shared Function GetResourceElement(ByVal ResourceIndex As Integer, ByVal ElementIndex As Integer)
- SyncLock SharedResources(ResourceIndex).Resources
- Return SharedResources(ResourceIndex).Resources(ElementIndex).Value
- End SyncLock
- End Function
- Public Shared Sub AddToSend(ByVal msg As String)
- SyncLock SharedResources(0).Resources(1).Value
- SharedResources(0).Resources(1).Value.add(msg)
- End SyncLock
- End Sub
- Public Shared Sub AddToRecv(ByVal msg As String)
- SyncLock SharedResources(0).Resources(0).Value
- SharedResources(0).Resources(0).Value.add(msg)
- End SyncLock
- End Sub
- Public Shared Sub AddToConsole(ByVal msg As String)
- SyncLock SharedResources(0).Resources(6).Value
- SharedResources(0).Resources(6).Value.add(msg)
- End SyncLock
- End Sub
- Public Shared Sub SetCurrentChan(ByVal newChan As String)
- SetResourceElement(0, 7, newChan)
- End Sub
- Public Shared Function GetCurrentChan() As String
- On Error Resume Next
- SyncLock SharedResources(0).Resources(7).Value
- Return SharedResources(0).Resources(7).Value
- End SyncLock
- End Function
- Public Shared Function GetResourceIndexOfOrigin(ByVal Origin As String) As Integer
- SyncLock SharedResources
- For i = 0 To SharedResources.Count - 1
- If SharedResources(i).Origin = Origin Then Return i
- Next
- End SyncLock
- Return -1
- End Function
- Public Shared Function GetElementIndexOfName(ByVal Name As String) As Integer()
- SyncLock SharedResources
- For i = 0 To SharedResources.Count - 1
- For x = 0 To SharedResources(i).Resources.Count - 1
- If SharedResources(i).Resources(x).Name = Name Then Return {i, x}
- Next
- Next
- End SyncLock
- Return {-1, -1}
- End Function
- Public Shared Function GetElementIndexOfName(ByVal ResourceIndex As Integer, ByVal Name As String) As Integer
- SyncLock SharedResources(ResourceIndex).Resources
- For i = 0 To SharedResources(ResourceIndex).Resources.Count - 1
- If SharedResources(ResourceIndex).Resources(i).Name = Name Then Return i
- Next
- End SyncLock
- Return -1
- End Function
- Public Shared Sub StopPluginManager()
- SyncLock SharedResources(0).Resources(3).Value
- SharedResources(0).Resources(3).Value.Close()
- End SyncLock
- End Sub
- Public Shared Sub StartPluginManager(ByVal Owner As String, ByVal Server As String, ByVal BotNick As String)
- SyncLock SharedResources(0).Resources(3).Value
- SharedResources(0).Resources(3).Value.Start(Owner, Server, BotNick)
- End SyncLock
- End Sub
- Public Shared Sub StopConnectionClient()
- SharedResources(0).Resources(4).Value.Close()
- End Sub
- 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
- SyncLock SharedResources(0).Resources(4).Value
- Return SharedResources(0).Resources(4).Value.StartConnection(Server, Port, Nick, Channel, Pass, JoinMsg)
- End SyncLock
- End Function
- Public Shared Function ConnectionStatus() As Boolean
- Try
- Return SharedResources(0).Resources(4).Value.ConnectionStatus
- Catch ex As Exception
- Return False
- End Try
- End Function
- End Class
- Public Interface Plgn
- ReadOnly Property Name() As String
- Function ProcessMessage(ByVal InputMessage As GlobalResources.Message) As Boolean
- Sub Config()
- End Interface
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement