Imports Globals.GlobalResources
Imports System.IO
Public Class Class1
Implements Globals.Plgn
Public Win As Main
Private Origin As String = "Raffle2"
Public Sub Config() Implements Globals.Plgn.Config
On Error Resume Next
Win.Show()
End Sub
Public ReadOnly Property Name As String Implements Globals.Plgn.Name
Get
Return "Raffle 2 - TizzyT"
End Get
End Property
Public Function ProcessMessage(ByVal InputMessage As Message) As Boolean Implements Globals.Plgn.ProcessMessage
Win.Master = InputMessage.Owner
Win.BotNick = InputMessage.BotNick
If InputMessage.Type = MessageType.PRIVMSG Then
If InputMessage.Message.Trim.ToLower.StartsWith(Win.StartRaffle) Then
If InputMessage.Nick = InputMessage.Owner Then
If Win.CurrentlyRaffle Then
AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.OwnerMessageManyRaffles))
Else
AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.OwnerMessageRaffleStrt))
Win.CurrentlyRaffle = True
End If
Else
If Win.CurrentlyRaffle Then
If Win.Participants.Items.Contains(InputMessage.Nick) Then
AddToSend("PRIVMSG " & InputMessage.Target & " :" & InputMessage.Nick & " you are already participating")
Else
Win.AddToRaffle(InputMessage.Nick)
AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.UserJoinRaffle))
End If
Else
AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.UserjoinNoRaffle))
End If
End If
ElseIf InputMessage.Message.Trim.ToLower.StartsWith(Win.EndRaffle) Then
If Win.CurrentlyRaffle And InputMessage.Nick = InputMessage.Owner Then
Win.CurrentlyRaffle = False
If Win.Participants.Items.Count = 0 Then
AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.NoWinner))
Else
Win.previousWinner = Win.Participants.Items(New Random().Next(0, Win.Participants.Items.Count))
Win.ClearRaffle()
InputMessage.Nick = Win.previousWinner
AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.Winner))
End If
Else
If InputMessage.Nick = InputMessage.Owner Then
AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.EndNoRaffle))
Else
AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.EndUser))
End If
End If
End If
Return True
End If
Return False
End Function
Public Sub New()
Win = New Main
If System.IO.File.Exists(My.Application.Info.DirectoryPath & "\\Plugins\\Raffle2.ini") Then
Dim ConfigReader As New StreamReader(My.Application.Info.DirectoryPath & "\\Plugins\\Raffle2.ini")
While ConfigReader.Peek <> -1
Dim line As String = ConfigReader.ReadLine.Trim
If line.StartsWith("StartRaffle:") Then
Win.StartRaffle = line.Remove(0, 12)
ElseIf line.StartsWith("EndRaffle:") Then
Win.EndRaffle = line.Remove(0, 10)
ElseIf line.StartsWith("OwnerMessageRaffleStrt:") Then
Win.OwnerMessageRaffleStrt = line.Remove(0, 23)
ElseIf line.StartsWith("OwnerMessageManyRaffles:") Then
Win.OwnerMessageManyRaffles = line.Remove(0, 24)
ElseIf line.StartsWith("UserJoinRaffle:") Then
Win.UserJoinRaffle = line.Remove(0, 15)
ElseIf line.StartsWith("UserjoinNoRaffle:") Then
Win.UserjoinNoRaffle = line.Remove(0, 17)
ElseIf line.StartsWith("NoWinner:") Then
Win.NoWinner = line.Remove(0, 9)
ElseIf line.StartsWith("Winner:") Then
Win.Winner = line.Remove(0, 7)
ElseIf line.StartsWith("EndNoRaffle:") Then
Win.EndNoRaffle = line.Remove(0, 12)
ElseIf line.StartsWith("EndUser:") Then
Win.EndUser = line.Remove(0, 8)
End If
End While
End If
End Sub
End Class
Imports System.Windows.Forms
Imports Globals.GlobalResources
Imports System.IO
Public Class Main
Public Master As String = ""
Public BotNick As String = ""
Public StartRaffle As String = "!raffle"
Public EndRaffle As String = "!xraffle"
Public CurrentlyRaffle As Boolean = False
Public previousWinner As String = String.Empty
Public OwnerMessageRaffleStrt As String = "<OWNER> I have started a new raffle!"
Public OwnerMessageManyRaffles As String = "<OWNER> I cant keep track of two raffles!"
Public UserJoinRaffle As String = "<NICK> joined the raffle!"
Public UserjoinNoRaffle As String = "<OWNER> hasn\'t started a raffle yet <NICK>!"
Public NoWinner As String = "No one won the raffle!"
Public Winner As String = "<NICK> won the raffle!"
Public EndNoRaffle As String = "<OWNER> I don\'t remember starting a raffle!"
Public EndUser As String = "You don\'t control me <NICK>!"
Private Sub StrtBtn_Click(sender As Button, e As EventArgs) Handles StrtBtn.Click
If sender.Text = "Config" Then
sender.Text = "Set"
StrtTxt.Enabled = True
Else
If StrtTxt.Text.Trim = "" Then
StrtTxt.Text = StartRaffle
StrtTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf StrtTxt.Text = StartRaffle Then
StrtTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
StrtTxt.Enabled = False
sender.Text = "Config"
StartRaffle = StrtTxt.Text.Trim.ToLower
SaveInfo()
AddToSend("PRIVMSG " & GetCurrentChan() & " :Raffle command changed to " & StartRaffle)
End If
End Sub
Public Delegate Sub _AddToRaffle(ByVal nick As String)
Public Sub AddToRaffle(ByVal nick As String)
If InvokeRequired Then
Invoke(New _AddToRaffle(AddressOf AddToRaffle), nick)
Else
Participants.Items.Add(nick)
End If
End Sub
Public Delegate Sub _ClearRaffle()
Public Sub ClearRaffle()
If InvokeRequired Then
Invoke(New _ClearRaffle(AddressOf ClearRaffle))
Else
Participants.Items.Clear()
End If
End Sub
Public Delegate Sub _WinnerRaffle()
Public Sub WinnerRaffle()
If InvokeRequired Then
Invoke(New _WinnerRaffle(AddressOf WinnerRaffle))
Else
Participants.Items.Clear()
End If
End Sub
Private Sub StpBtn_Click(sender As Button, e As EventArgs) Handles StpBtn.Click
If sender.Text = "Config" Then
sender.Text = "Set"
StpTxt.Enabled = True
Else
If StpTxt.Text.Trim = "" Then
StpTxt.Text = EndRaffle
StpTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf StpTxt.Text = EndRaffle Then
StpTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
StpTxt.Enabled = False
sender.Text = "Config"
EndRaffle = StpTxt.Text.Trim.ToLower
SaveInfo()
End If
End Sub
Private Sub Main_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = True
Me.Hide()
End Sub
Private Sub MnlStrtBtn_Click(sender As Object, e As EventArgs) Handles MnlStrtBtn.Click
If CurrentlyRaffle Then
MsgBox("There is already a raffle in progress" & vbCrLf & "Stop the current raffle to start a new one")
Else
CurrentlyRaffle = True
AddToSend("PRIVMSG " & GetCurrentChan() & " :" & ParseMessage(New Globals.GlobalResources.Message(MessageType.PRIVMSG, "", "", "", "", "", Master, "", "", BotNick), OwnerMessageRaffleStrt))
End If
End Sub
Private Sub MnlStpBtn_Click(sender As Object, e As EventArgs) Handles MnlStpBtn.Click
If CurrentlyRaffle Then
CurrentlyRaffle = False
MsgBox("Raffle Stopped")
AddToSend("PRIVMSG " & GetCurrentChan() & " :Raffle Halted!")
Else
MsgBox("There is no raffle in progress to stop")
End If
End Sub
Private Sub MnlAdd_Click(sender As Object, e As EventArgs) Handles MnlAdd.Click
If Participants.Items.Contains(MnlAddTxt.Text) Then
MsgBox("User already part of raffle")
MnlAddTxt.Text = String.Empty
Else
If MnlAddTxt.Text.Trim = "" Then
MsgBox("Blank users not allowed")
MnlAddTxt.Text = ""
Else
Participants.Items.Add(MnlAddTxt.Text)
AddToSend("PRIVMSG " & GetCurrentChan() & " :" & MnlAddTxt.Text & " added to raffle!")
MnlAddTxt.Text = String.Empty
End If
End If
End Sub
Private Sub MnlRemBtn_Click(sender As Object, e As EventArgs) Handles MnlRemBtn.Click
If Participants.Items.Contains(MnlRemTxt.Text) Then
AddToSend("PRIVMSG " & GetCurrentChan() & " :" & MnlRemTxt.Text & " removed from raffle!")
Participants.Items.RemoveAt(Participants.Items.IndexOf(MnlRemTxt.Text))
MnlRemTxt.Text = String.Empty
Else
MsgBox("There is no such user participating")
MnlRemTxt.Text = String.Empty
End If
End Sub
Private Sub ChooseWin_Click(sender As Object, e As EventArgs) Handles ChooseWin.Click
If CurrentlyRaffle Then
CurrentlyRaffle = False
MsgBox("Raffle Stopped")
If Participants.Items.Count = 0 Then
AddToSend("PRIVMSG " & GetCurrentChan() & " :" & NoWinner)
Else
previousWinner = Participants.Items(New Random().Next(0, Participants.Items.Count))
PrevWinner.Text = previousWinner
Participants.Items.Clear()
AddToSend("PRIVMSG " & GetCurrentChan() & " :" & ParseMessage(New Globals.GlobalResources.Message(MessageType.PRIVMSG, previousWinner, previousWinner, "", GetCurrentChan, "", Master, "", "", BotNick), Winner))
End If
End If
End Sub
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
Participants.Items.Clear()
End Sub
Private Sub Participants_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Participants.SelectedIndexChanged
MnlRemTxt.Text = Participants.SelectedItem
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If sender.Text = "Config" Then
sender.Text = "Set"
StrtRaffleTxt.Enabled = True
Else
If StrtRaffleTxt.Text.Trim = "" Then
StrtRaffleTxt.Text = OwnerMessageRaffleStrt
StrtRaffleTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf StrtRaffleTxt.Text = OwnerMessageRaffleStrt Then
StrtRaffleTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
StrtRaffleTxt.Enabled = False
sender.Text = "Config"
OwnerMessageRaffleStrt = StrtRaffleTxt.Text.Trim
SaveInfo()
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If sender.Text = "Config" Then
sender.Text = "Set"
ManyRaffleTxt.Enabled = True
Else
If ManyRaffleTxt.Text.Trim = "" Then
ManyRaffleTxt.Text = OwnerMessageManyRaffles
ManyRaffleTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf ManyRaffleTxt.Text = OwnerMessageManyRaffles Then
ManyRaffleTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
ManyRaffleTxt.Enabled = False
sender.Text = "Config"
OwnerMessageManyRaffles = ManyRaffleTxt.Text.Trim
SaveInfo()
End If
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If sender.Text = "Config" Then
sender.Text = "Set"
JoinRaffleTxt.Enabled = True
Else
If JoinRaffleTxt.Text.Trim = "" Then
JoinRaffleTxt.Text = UserJoinRaffle
JoinRaffleTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf JoinRaffleTxt.Text = UserJoinRaffle Then
JoinRaffleTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
JoinRaffleTxt.Enabled = False
sender.Text = "Config"
UserJoinRaffle = JoinRaffleTxt.Text.Trim
SaveInfo()
End If
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If sender.Text = "Config" Then
sender.Text = "Set"
NoRaffleTxt.Enabled = True
Else
If NoRaffleTxt.Text.Trim = "" Then
NoRaffleTxt.Text = UserjoinNoRaffle
NoRaffleTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf NoRaffleTxt.Text = UserjoinNoRaffle Then
NoRaffleTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
NoRaffleTxt.Enabled = False
sender.Text = "Config"
UserjoinNoRaffle = NoRaffleTxt.Text.Trim
SaveInfo()
End If
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
If sender.Text = "Config" Then
sender.Text = "Set"
NoWinnerTxt.Enabled = True
Else
If NoWinnerTxt.Text.Trim = "" Then
NoWinnerTxt.Text = NoWinner
NoWinnerTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf NoWinnerTxt.Text = NoWinner Then
NoWinnerTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
NoWinnerTxt.Enabled = False
sender.Text = "Config"
NoWinner = NoWinnerTxt.Text.Trim
SaveInfo()
End If
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
If sender.Text = "Config" Then
sender.Text = "Set"
WinnerTxt.Enabled = True
Else
If WinnerTxt.Text.Trim = "" Then
WinnerTxt.Text = Winner
WinnerTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf WinnerTxt.Text = Winner Then
WinnerTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
WinnerTxt.Enabled = False
sender.Text = "Config"
Winner = WinnerTxt.Text.Trim
SaveInfo()
End If
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
If sender.Text = "Config" Then
sender.Text = "Set"
CantEndTxt.Enabled = True
Else
If CantEndTxt.Text.Trim = "" Then
CantEndTxt.Text = EndNoRaffle
CantEndTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf CantEndTxt.Text = EndNoRaffle Then
CantEndTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
CantEndTxt.Enabled = False
sender.Text = "Config"
EndNoRaffle = CantEndTxt.Text.Trim
SaveInfo()
End If
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
If sender.Text = "Config" Then
sender.Text = "Set"
NoControlTxt.Enabled = True
Else
If NoControlTxt.Text.Trim = "" Then
NoControlTxt.Text = EndUser
NoControlTxt.Enabled = False
sender.Text = "Config"
Exit Sub
ElseIf NoControlTxt.Text = EndUser Then
NoControlTxt.Enabled = False
sender.Text = "Config"
Exit Sub
End If
NoControlTxt.Enabled = False
sender.Text = "Config"
EndUser = NoControlTxt.Text.Trim
SaveInfo()
End If
End Sub
Public Sub SaveInfo()
Dim Saver As New StreamWriter(My.Application.Info.DirectoryPath & "\\Plugins\\Raffle2.ini", False)
Saver.WriteLine("StartRaffle:" & StartRaffle)
Saver.WriteLine("EndRaffle:" & EndRaffle)
Saver.WriteLine("OwnerMessageRaffleStrt:" & OwnerMessageRaffleStrt)
Saver.WriteLine("OwnerMessageManyRaffles:" & OwnerMessageManyRaffles)
Saver.WriteLine("UserJoinRaffle:" & UserJoinRaffle)
Saver.WriteLine("UserjoinNoRaffle:" & UserjoinNoRaffle)
Saver.WriteLine("NoWinner:" & NoWinner)
Saver.WriteLine("Winner:" & Winner)
Saver.WriteLine("EndNoRaffle:" & EndNoRaffle)
Saver.WriteLine("EndUser:" & EndUser)
Saver.Close()
Saver.Dispose()
End Sub
Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
StrtTxt.Text = StartRaffle
StpTxt.Text = EndRaffle
StrtRaffleTxt.Text = OwnerMessageRaffleStrt
ManyRaffleTxt.Text = OwnerMessageManyRaffles
JoinRaffleTxt.Text = UserJoinRaffle
NoRaffleTxt.Text = UserjoinNoRaffle
NoWinnerTxt.Text = NoWinner
WinnerTxt.Text = Winner
CantEndTxt.Text = EndNoRaffle
NoControlTxt.Text = EndUser
End Sub
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
If CurrentlyRaffle Then
CurrentlyRaffle = False
AddToSend("PRIVMSG " & GetCurrentChan() & " :Raffle Halted!")
End If
If Participants.Items.Count = 0 Then
MsgBox("No Participants")
Else
Dim crntwinner As Integer = New Random().Next(0, Participants.Items.Count)
previousWinner = Participants.Items(crntwinner)
PrevWinner.Text = previousWinner
Participants.Items.RemoveAt(crntwinner)
AddToSend("PRIVMSG " & GetCurrentChan() & " :" & ParseMessage(New Globals.GlobalResources.Message(MessageType.PRIVMSG, previousWinner, previousWinner, "", GetCurrentChan, "", Master, "", "", BotNick), Winner))
End If
End Sub
End Class