document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. Imports Globals.GlobalResources
  2. Imports System.IO
  3. Public Class Class1
  4.     Implements Globals.Plgn
  5.     Public Win As Main
  6.     Private Origin As String = "Raffle2"
  7.     Public Sub Config() Implements Globals.Plgn.Config
  8.         On Error Resume Next
  9.         Win.Show()
  10.     End Sub
  11.     Public ReadOnly Property Name As String Implements Globals.Plgn.Name
  12.         Get
  13.             Return "Raffle 2 - TizzyT"
  14.         End Get
  15.     End Property
  16.     Public Function ProcessMessage(ByVal InputMessage As Message) As Boolean Implements Globals.Plgn.ProcessMessage
  17.         Win.Master = InputMessage.Owner
  18.         Win.BotNick = InputMessage.BotNick
  19.         If InputMessage.Type = MessageType.PRIVMSG Then
  20.             If InputMessage.Message.Trim.ToLower.StartsWith(Win.StartRaffle) Then
  21.                 If InputMessage.Nick = InputMessage.Owner Then
  22.                     If Win.CurrentlyRaffle Then
  23.                         AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.OwnerMessageManyRaffles))
  24.                     Else
  25.                         AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.OwnerMessageRaffleStrt))
  26.                         Win.CurrentlyRaffle = True
  27.                     End If
  28.                 Else
  29.                     If Win.CurrentlyRaffle Then
  30.                         If Win.Participants.Items.Contains(InputMessage.Nick) Then
  31.                             AddToSend("PRIVMSG " & InputMessage.Target & " :" & InputMessage.Nick & " you are already participating")
  32.                         Else
  33.                             Win.AddToRaffle(InputMessage.Nick)
  34.                             AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.UserJoinRaffle))
  35.                         End If
  36.                     Else
  37.                         AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.UserjoinNoRaffle))
  38.                     End If
  39.                 End If
  40.             ElseIf InputMessage.Message.Trim.ToLower.StartsWith(Win.EndRaffle) Then
  41.                 If Win.CurrentlyRaffle And InputMessage.Nick = InputMessage.Owner Then
  42.                     Win.CurrentlyRaffle = False
  43.                     If Win.Participants.Items.Count = 0 Then
  44.                         AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.NoWinner))
  45.                     Else
  46.                         Win.previousWinner = Win.Participants.Items(New Random().Next(0, Win.Participants.Items.Count))
  47.                         Win.ClearRaffle()
  48.                         InputMessage.Nick = Win.previousWinner
  49.                         AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.Winner))
  50.                     End If
  51.                 Else
  52.                     If InputMessage.Nick = InputMessage.Owner Then
  53.                         AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.EndNoRaffle))
  54.                     Else
  55.                         AddToSend("PRIVMSG " & InputMessage.Target & " :" & ParseMessage(InputMessage, Win.EndUser))
  56.                     End If
  57.                 End If
  58.             End If
  59.             Return True
  60.         End If
  61.         Return False
  62.     End Function
  63.     Public Sub New()
  64.         Win = New Main
  65.         If System.IO.File.Exists(My.Application.Info.DirectoryPath & "\\Plugins\\Raffle2.ini") Then
  66.             Dim ConfigReader As New StreamReader(My.Application.Info.DirectoryPath & "\\Plugins\\Raffle2.ini")
  67.             While ConfigReader.Peek <> -1
  68.                 Dim line As String = ConfigReader.ReadLine.Trim
  69.                 If line.StartsWith("StartRaffle:") Then
  70.                     Win.StartRaffle = line.Remove(0, 12)
  71.                 ElseIf line.StartsWith("EndRaffle:") Then
  72.                     Win.EndRaffle = line.Remove(0, 10)
  73.                 ElseIf line.StartsWith("OwnerMessageRaffleStrt:") Then
  74.                     Win.OwnerMessageRaffleStrt = line.Remove(0, 23)
  75.                 ElseIf line.StartsWith("OwnerMessageManyRaffles:") Then
  76.                     Win.OwnerMessageManyRaffles = line.Remove(0, 24)
  77.                 ElseIf line.StartsWith("UserJoinRaffle:") Then
  78.                     Win.UserJoinRaffle = line.Remove(0, 15)
  79.                 ElseIf line.StartsWith("UserjoinNoRaffle:") Then
  80.                     Win.UserjoinNoRaffle = line.Remove(0, 17)
  81.                 ElseIf line.StartsWith("NoWinner:") Then
  82.                     Win.NoWinner = line.Remove(0, 9)
  83.                 ElseIf line.StartsWith("Winner:") Then
  84.                     Win.Winner = line.Remove(0, 7)
  85.                 ElseIf line.StartsWith("EndNoRaffle:") Then
  86.                     Win.EndNoRaffle = line.Remove(0, 12)
  87.                 ElseIf line.StartsWith("EndUser:") Then
  88.                     Win.EndUser = line.Remove(0, 8)
  89.                 End If
  90.             End While
  91.         End If
  92.     End Sub
  93. End Class
  94.  
  95. Imports System.Windows.Forms
  96. Imports Globals.GlobalResources
  97. Imports System.IO
  98. Public Class Main
  99.     Public Master As String = ""
  100.     Public BotNick As String = ""
  101.     Public StartRaffle As String = "!raffle"
  102.     Public EndRaffle As String = "!xraffle"
  103.     Public CurrentlyRaffle As Boolean = False
  104.     Public previousWinner As String = String.Empty
  105.     Public OwnerMessageRaffleStrt As String = "<OWNER> I have started a new raffle!"
  106.     Public OwnerMessageManyRaffles As String = "<OWNER> I cant keep track of two raffles!"
  107.     Public UserJoinRaffle As String = "<NICK> joined the raffle!"
  108.     Public UserjoinNoRaffle As String = "<OWNER> hasn\'t started a raffle yet <NICK>!"
  109.     Public NoWinner As String = "No one won the raffle!"
  110.     Public Winner As String = "<NICK> won the raffle!"
  111.     Public EndNoRaffle As String = "<OWNER> I don\'t remember starting a raffle!"
  112.     Public EndUser As String = "You don\'t control me <NICK>!"
  113.     Private Sub StrtBtn_Click(sender As Button, e As EventArgs) Handles StrtBtn.Click
  114.         If sender.Text = "Config" Then
  115.             sender.Text = "Set"
  116.             StrtTxt.Enabled = True
  117.         Else
  118.             If StrtTxt.Text.Trim = "" Then
  119.                 StrtTxt.Text = StartRaffle
  120.                 StrtTxt.Enabled = False
  121.                 sender.Text = "Config"
  122.                 Exit Sub
  123.             ElseIf StrtTxt.Text = StartRaffle Then
  124.                 StrtTxt.Enabled = False
  125.                 sender.Text = "Config"
  126.                 Exit Sub
  127.             End If
  128.             StrtTxt.Enabled = False
  129.             sender.Text = "Config"
  130.             StartRaffle = StrtTxt.Text.Trim.ToLower
  131.             SaveInfo()
  132.             AddToSend("PRIVMSG " & GetCurrentChan() & " :Raffle command changed to " & StartRaffle)
  133.         End If
  134.     End Sub
  135.     Public Delegate Sub _AddToRaffle(ByVal nick As String)
  136.     Public Sub AddToRaffle(ByVal nick As String)
  137.         If InvokeRequired Then
  138.             Invoke(New _AddToRaffle(AddressOf AddToRaffle), nick)
  139.         Else
  140.             Participants.Items.Add(nick)
  141.         End If
  142.     End Sub
  143.     Public Delegate Sub _ClearRaffle()
  144.     Public Sub ClearRaffle()
  145.         If InvokeRequired Then
  146.             Invoke(New _ClearRaffle(AddressOf ClearRaffle))
  147.         Else
  148.             Participants.Items.Clear()
  149.         End If
  150.     End Sub
  151.     Public Delegate Sub _WinnerRaffle()
  152.     Public Sub WinnerRaffle()
  153.         If InvokeRequired Then
  154.             Invoke(New _WinnerRaffle(AddressOf WinnerRaffle))
  155.         Else
  156.             Participants.Items.Clear()
  157.         End If
  158.     End Sub
  159.     Private Sub StpBtn_Click(sender As Button, e As EventArgs) Handles StpBtn.Click
  160.         If sender.Text = "Config" Then
  161.             sender.Text = "Set"
  162.             StpTxt.Enabled = True
  163.         Else
  164.             If StpTxt.Text.Trim = "" Then
  165.                 StpTxt.Text = EndRaffle
  166.                 StpTxt.Enabled = False
  167.                 sender.Text = "Config"
  168.                 Exit Sub
  169.             ElseIf StpTxt.Text = EndRaffle Then
  170.                 StpTxt.Enabled = False
  171.                 sender.Text = "Config"
  172.                 Exit Sub
  173.             End If
  174.             StpTxt.Enabled = False
  175.             sender.Text = "Config"
  176.             EndRaffle = StpTxt.Text.Trim.ToLower
  177.             SaveInfo()
  178.         End If
  179.     End Sub
  180.     Private Sub Main_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  181.         e.Cancel = True
  182.         Me.Hide()
  183.     End Sub
  184.     Private Sub MnlStrtBtn_Click(sender As Object, e As EventArgs) Handles MnlStrtBtn.Click
  185.         If CurrentlyRaffle Then
  186.             MsgBox("There is already a raffle in progress" & vbCrLf & "Stop the current raffle to start a new one")
  187.         Else
  188.             CurrentlyRaffle = True
  189.             AddToSend("PRIVMSG " & GetCurrentChan() & " :" & ParseMessage(New Globals.GlobalResources.Message(MessageType.PRIVMSG, "", "", "", "", "", Master, "", "", BotNick), OwnerMessageRaffleStrt))
  190.         End If
  191.     End Sub
  192.     Private Sub MnlStpBtn_Click(sender As Object, e As EventArgs) Handles MnlStpBtn.Click
  193.         If CurrentlyRaffle Then
  194.             CurrentlyRaffle = False
  195.             MsgBox("Raffle Stopped")
  196.             AddToSend("PRIVMSG " & GetCurrentChan() & " :Raffle Halted!")
  197.         Else
  198.             MsgBox("There is no raffle in progress to stop")
  199.         End If
  200.     End Sub
  201.     Private Sub MnlAdd_Click(sender As Object, e As EventArgs) Handles MnlAdd.Click
  202.         If Participants.Items.Contains(MnlAddTxt.Text) Then
  203.             MsgBox("User already part of raffle")
  204.             MnlAddTxt.Text = String.Empty
  205.         Else
  206.             If MnlAddTxt.Text.Trim = "" Then
  207.                 MsgBox("Blank users not allowed")
  208.                 MnlAddTxt.Text = ""
  209.             Else
  210.                 Participants.Items.Add(MnlAddTxt.Text)
  211.                 AddToSend("PRIVMSG " & GetCurrentChan() & " :" & MnlAddTxt.Text & " added to raffle!")
  212.                 MnlAddTxt.Text = String.Empty
  213.             End If
  214.         End If
  215.     End Sub
  216.     Private Sub MnlRemBtn_Click(sender As Object, e As EventArgs) Handles MnlRemBtn.Click
  217.         If Participants.Items.Contains(MnlRemTxt.Text) Then
  218.             AddToSend("PRIVMSG " & GetCurrentChan() & " :" & MnlRemTxt.Text & " removed from raffle!")
  219.             Participants.Items.RemoveAt(Participants.Items.IndexOf(MnlRemTxt.Text))
  220.             MnlRemTxt.Text = String.Empty
  221.         Else
  222.             MsgBox("There is no such user participating")
  223.             MnlRemTxt.Text = String.Empty
  224.         End If
  225.     End Sub
  226.     Private Sub ChooseWin_Click(sender As Object, e As EventArgs) Handles ChooseWin.Click
  227.         If CurrentlyRaffle Then
  228.             CurrentlyRaffle = False
  229.             MsgBox("Raffle Stopped")
  230.             If Participants.Items.Count = 0 Then
  231.                 AddToSend("PRIVMSG " & GetCurrentChan() & " :" & NoWinner)
  232.             Else
  233.                 previousWinner = Participants.Items(New Random().Next(0, Participants.Items.Count))
  234.                 PrevWinner.Text = previousWinner
  235.                 Participants.Items.Clear()
  236.                 AddToSend("PRIVMSG " & GetCurrentChan() & " :" & ParseMessage(New Globals.GlobalResources.Message(MessageType.PRIVMSG, previousWinner, previousWinner, "", GetCurrentChan, "", Master, "", "", BotNick), Winner))
  237.             End If
  238.         End If
  239.     End Sub
  240.     Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
  241.         Participants.Items.Clear()
  242.     End Sub
  243.     Private Sub Participants_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Participants.SelectedIndexChanged
  244.         MnlRemTxt.Text = Participants.SelectedItem
  245.     End Sub
  246.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  247.         If sender.Text = "Config" Then
  248.             sender.Text = "Set"
  249.             StrtRaffleTxt.Enabled = True
  250.         Else
  251.             If StrtRaffleTxt.Text.Trim = "" Then
  252.                 StrtRaffleTxt.Text = OwnerMessageRaffleStrt
  253.                 StrtRaffleTxt.Enabled = False
  254.                 sender.Text = "Config"
  255.                 Exit Sub
  256.             ElseIf StrtRaffleTxt.Text = OwnerMessageRaffleStrt Then
  257.                 StrtRaffleTxt.Enabled = False
  258.                 sender.Text = "Config"
  259.                 Exit Sub
  260.             End If
  261.             StrtRaffleTxt.Enabled = False
  262.             sender.Text = "Config"
  263.             OwnerMessageRaffleStrt = StrtRaffleTxt.Text.Trim
  264.             SaveInfo()
  265.         End If
  266.     End Sub
  267.     Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  268.         If sender.Text = "Config" Then
  269.             sender.Text = "Set"
  270.             ManyRaffleTxt.Enabled = True
  271.         Else
  272.             If ManyRaffleTxt.Text.Trim = "" Then
  273.                 ManyRaffleTxt.Text = OwnerMessageManyRaffles
  274.                 ManyRaffleTxt.Enabled = False
  275.                 sender.Text = "Config"
  276.                 Exit Sub
  277.             ElseIf ManyRaffleTxt.Text = OwnerMessageManyRaffles Then
  278.                 ManyRaffleTxt.Enabled = False
  279.                 sender.Text = "Config"
  280.                 Exit Sub
  281.             End If
  282.             ManyRaffleTxt.Enabled = False
  283.             sender.Text = "Config"
  284.             OwnerMessageManyRaffles = ManyRaffleTxt.Text.Trim
  285.             SaveInfo()
  286.         End If
  287.     End Sub
  288.     Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  289.         If sender.Text = "Config" Then
  290.             sender.Text = "Set"
  291.             JoinRaffleTxt.Enabled = True
  292.         Else
  293.             If JoinRaffleTxt.Text.Trim = "" Then
  294.                 JoinRaffleTxt.Text = UserJoinRaffle
  295.                 JoinRaffleTxt.Enabled = False
  296.                 sender.Text = "Config"
  297.                 Exit Sub
  298.             ElseIf JoinRaffleTxt.Text = UserJoinRaffle Then
  299.                 JoinRaffleTxt.Enabled = False
  300.                 sender.Text = "Config"
  301.                 Exit Sub
  302.             End If
  303.             JoinRaffleTxt.Enabled = False
  304.             sender.Text = "Config"
  305.             UserJoinRaffle = JoinRaffleTxt.Text.Trim
  306.             SaveInfo()
  307.         End If
  308.     End Sub
  309.     Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  310.         If sender.Text = "Config" Then
  311.             sender.Text = "Set"
  312.             NoRaffleTxt.Enabled = True
  313.         Else
  314.             If NoRaffleTxt.Text.Trim = "" Then
  315.                 NoRaffleTxt.Text = UserjoinNoRaffle
  316.                 NoRaffleTxt.Enabled = False
  317.                 sender.Text = "Config"
  318.                 Exit Sub
  319.             ElseIf NoRaffleTxt.Text = UserjoinNoRaffle Then
  320.                 NoRaffleTxt.Enabled = False
  321.                 sender.Text = "Config"
  322.                 Exit Sub
  323.             End If
  324.             NoRaffleTxt.Enabled = False
  325.             sender.Text = "Config"
  326.             UserjoinNoRaffle = NoRaffleTxt.Text.Trim
  327.             SaveInfo()
  328.         End If
  329.     End Sub
  330.     Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
  331.         If sender.Text = "Config" Then
  332.             sender.Text = "Set"
  333.             NoWinnerTxt.Enabled = True
  334.         Else
  335.             If NoWinnerTxt.Text.Trim = "" Then
  336.                 NoWinnerTxt.Text = NoWinner
  337.                 NoWinnerTxt.Enabled = False
  338.                 sender.Text = "Config"
  339.                 Exit Sub
  340.             ElseIf NoWinnerTxt.Text = NoWinner Then
  341.                 NoWinnerTxt.Enabled = False
  342.                 sender.Text = "Config"
  343.                 Exit Sub
  344.             End If
  345.             NoWinnerTxt.Enabled = False
  346.             sender.Text = "Config"
  347.             NoWinner = NoWinnerTxt.Text.Trim
  348.             SaveInfo()
  349.         End If
  350.     End Sub
  351.     Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
  352.         If sender.Text = "Config" Then
  353.             sender.Text = "Set"
  354.             WinnerTxt.Enabled = True
  355.         Else
  356.             If WinnerTxt.Text.Trim = "" Then
  357.                 WinnerTxt.Text = Winner
  358.                 WinnerTxt.Enabled = False
  359.                 sender.Text = "Config"
  360.                 Exit Sub
  361.             ElseIf WinnerTxt.Text = Winner Then
  362.                 WinnerTxt.Enabled = False
  363.                 sender.Text = "Config"
  364.                 Exit Sub
  365.             End If
  366.             WinnerTxt.Enabled = False
  367.             sender.Text = "Config"
  368.             Winner = WinnerTxt.Text.Trim
  369.             SaveInfo()
  370.         End If
  371.     End Sub
  372.     Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
  373.         If sender.Text = "Config" Then
  374.             sender.Text = "Set"
  375.             CantEndTxt.Enabled = True
  376.         Else
  377.             If CantEndTxt.Text.Trim = "" Then
  378.                 CantEndTxt.Text = EndNoRaffle
  379.                 CantEndTxt.Enabled = False
  380.                 sender.Text = "Config"
  381.                 Exit Sub
  382.             ElseIf CantEndTxt.Text = EndNoRaffle Then
  383.                 CantEndTxt.Enabled = False
  384.                 sender.Text = "Config"
  385.                 Exit Sub
  386.             End If
  387.             CantEndTxt.Enabled = False
  388.             sender.Text = "Config"
  389.             EndNoRaffle = CantEndTxt.Text.Trim
  390.             SaveInfo()
  391.         End If
  392.     End Sub
  393.     Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
  394.         If sender.Text = "Config" Then
  395.             sender.Text = "Set"
  396.             NoControlTxt.Enabled = True
  397.         Else
  398.             If NoControlTxt.Text.Trim = "" Then
  399.                 NoControlTxt.Text = EndUser
  400.                 NoControlTxt.Enabled = False
  401.                 sender.Text = "Config"
  402.                 Exit Sub
  403.             ElseIf NoControlTxt.Text = EndUser Then
  404.                 NoControlTxt.Enabled = False
  405.                 sender.Text = "Config"
  406.                 Exit Sub
  407.             End If
  408.             NoControlTxt.Enabled = False
  409.             sender.Text = "Config"
  410.             EndUser = NoControlTxt.Text.Trim
  411.             SaveInfo()
  412.         End If
  413.     End Sub
  414.     Public Sub SaveInfo()
  415.         Dim Saver As New StreamWriter(My.Application.Info.DirectoryPath & "\\Plugins\\Raffle2.ini", False)
  416.         Saver.WriteLine("StartRaffle:" & StartRaffle)
  417.         Saver.WriteLine("EndRaffle:" & EndRaffle)
  418.         Saver.WriteLine("OwnerMessageRaffleStrt:" & OwnerMessageRaffleStrt)
  419.         Saver.WriteLine("OwnerMessageManyRaffles:" & OwnerMessageManyRaffles)
  420.         Saver.WriteLine("UserJoinRaffle:" & UserJoinRaffle)
  421.         Saver.WriteLine("UserjoinNoRaffle:" & UserjoinNoRaffle)
  422.         Saver.WriteLine("NoWinner:" & NoWinner)
  423.         Saver.WriteLine("Winner:" & Winner)
  424.         Saver.WriteLine("EndNoRaffle:" & EndNoRaffle)
  425.         Saver.WriteLine("EndUser:" & EndUser)
  426.         Saver.Close()
  427.         Saver.Dispose()
  428.     End Sub
  429.     Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  430.         StrtTxt.Text = StartRaffle
  431.         StpTxt.Text = EndRaffle
  432.         StrtRaffleTxt.Text = OwnerMessageRaffleStrt
  433.         ManyRaffleTxt.Text = OwnerMessageManyRaffles
  434.         JoinRaffleTxt.Text = UserJoinRaffle
  435.         NoRaffleTxt.Text = UserjoinNoRaffle
  436.         NoWinnerTxt.Text = NoWinner
  437.         WinnerTxt.Text = Winner
  438.         CantEndTxt.Text = EndNoRaffle
  439.         NoControlTxt.Text = EndUser
  440.     End Sub
  441.     Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
  442.         If CurrentlyRaffle Then
  443.             CurrentlyRaffle = False
  444.             AddToSend("PRIVMSG " & GetCurrentChan() & " :Raffle Halted!")
  445.         End If
  446.         If Participants.Items.Count = 0 Then
  447.             MsgBox("No Participants")
  448.         Else
  449.             Dim crntwinner As Integer = New Random().Next(0, Participants.Items.Count)
  450.             previousWinner = Participants.Items(crntwinner)
  451.             PrevWinner.Text = previousWinner
  452.             Participants.Items.RemoveAt(crntwinner)
  453.             AddToSend("PRIVMSG " & GetCurrentChan() & " :" & ParseMessage(New Globals.GlobalResources.Message(MessageType.PRIVMSG, previousWinner, previousWinner, "", GetCurrentChan, "", Master, "", "", BotNick), Winner))
  454.         End If
  455.     End Sub
  456. End Class
');