Änderungen

Zeile 956: Zeile 956:  
<pre>
 
<pre>
 
--Vote Poll v1.0
 
--Vote Poll v1.0
  −
  −
   
--Made by nErBoS  
 
--Made by nErBoS  
   
--Converted to Lua 5 by jiten
 
--Converted to Lua 5 by jiten
   
--Changed Visual Design / Translated to german / Added Rightclick by pulsar
 
--Changed Visual Design / Translated to german / Added Rightclick by pulsar
  −
      
Bot = "Vote Poll"  
 
Bot = "Vote Poll"  
  −
      
vt = {}  
 
vt = {}  
   
nr = {}  
 
nr = {}  
  −
      
votetext = "voting.txt"
 
votetext = "voting.txt"
   
oldpolls = "voting-old.txt"
 
oldpolls = "voting-old.txt"
   −
 
+
function Main()
 
+
frmHub:RegBot(Bot)
function Main()  
  −
 
  −
frmHub:RegBot(Bot)  
  −
 
   
end  
 
end  
  −
      
function NewUserConnected(user, data)  
 
function NewUserConnected(user, data)  
   
if (vt[user.sName] == nil) then  
 
if (vt[user.sName] == nil) then  
 +
vt[user.sName] = 0
 +
end
 +
if (nr[user.sName] == nil) then
 +
nr[user.sName] = 0
 +
end
   −
vt[user.sName] = 0
+
end
 
  −
end  
  −
 
  −
if (nr[user.sName] == nil) then
  −
 
  −
nr[user.sName] = 0
  −
 
  −
end
  −
 
  −
end
  −
 
  −
 
      
function NewUserConnected(user,data)
 
function NewUserConnected(user,data)
   
UserCmds(user)
 
UserCmds(user)
   
if user.bOperator then
 
if user.bOperator then
   
OpCmds(user)
 
OpCmds(user)
  −
  −
   
end
 
end
   
end
 
end
  −
      
OpConnected = NewUserConnected
 
OpConnected = NewUserConnected
  −
  −
   
rcmenue = "Voting"
 
rcmenue = "Voting"
  −
      
function UserCmds(user)            -- User Befehle
 
function UserCmds(user)            -- User Befehle
 
+
        user:SendData("$UserCommand 1 3 "..rcmenue.."\\Zeige aktuelle Umfragen$<%[mynick]> +votefor&#124;|")
 
  −
 
  −
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Zeige aktuelle Umfragen$<%[mynick]> +votefor&#124;|")
  −
 
   
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Zeige beendete Umfragen$<%[mynick]> +votelist&#124;|")
 
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Zeige beendete Umfragen$<%[mynick]> +votelist&#124;|")
   
user:SendData("$UserCommand 0 3 |") -- separator
 
user:SendData("$UserCommand 0 3 |") -- separator
   
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Bei einer aktuellen Umfrage abstimmen$<%[mynick]> +vote %[line:Welche Zuordnungsnummer?] %[line:y / n ?  (Yes or No)]&#124;|")
 
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Bei einer aktuellen Umfrage abstimmen$<%[mynick]> +vote %[line:Welche Zuordnungsnummer?] %[line:y / n ?  (Yes or No)]&#124;|")
   
user:SendData("$UserCommand 0 3 |") -- separator
 
user:SendData("$UserCommand 0 3 |") -- separator
   
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Abstimmungsergebnisse\\PM\\aktuelle Umfragen$<%[mynick]> +showvote %[line:Welche Zuordnungsnummer?] new&#124;|")
 
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Abstimmungsergebnisse\\PM\\aktuelle Umfragen$<%[mynick]> +showvote %[line:Welche Zuordnungsnummer?] new&#124;|")
 
+
        user:SendData("$UserCommand 1 3 "..rcmenue.."\\Abstimmungsergebnisse\\PM\\beendete Umfragen$<%[mynick]> +showvote %[line:Welche Zuordnungsnummer?] old&#124;|")
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Abstimmungsergebnisse\\PM\\beendete Umfragen$<%[mynick]> +showvote %[line:Welche Zuordnungsnummer?] old&#124;|")
  −
 
   
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Abstimmungsergebnisse\\Main\\aktuelle Umfragen$<%[mynick]> +svmain %[line:Welche Zuordnungsnummer?] new&#124;|")
 
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Abstimmungsergebnisse\\Main\\aktuelle Umfragen$<%[mynick]> +svmain %[line:Welche Zuordnungsnummer?] new&#124;|")
   
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Abstimmungsergebnisse\\Main\\beendete Umfragen$<%[mynick]> +svmain %[line:Welche Zuordnungsnummer?] old&#124;|")
 
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Abstimmungsergebnisse\\Main\\beendete Umfragen$<%[mynick]> +svmain %[line:Welche Zuordnungsnummer?] old&#124;|")
   
end
 
end
  −
  −
   
function OpCmds(user)              -- OP Befehle
 
function OpCmds(user)              -- OP Befehle
   
-- leer
 
-- leer
  −
  −
   
if (user.iProfile == 0) then        -- Master Befehle
 
if (user.iProfile == 0) then        -- Master Befehle
   
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Admin\\Umfrage erstellen$<%[mynick]> +createvote %[line:Welche Zuordnungsnummer?] %[line:Welche Umfrage?]&#124;|")
 
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Admin\\Umfrage erstellen$<%[mynick]> +createvote %[line:Welche Zuordnungsnummer?] %[line:Welche Umfrage?]&#124;|")
   
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Admin\\Umfrage beenden$<%[mynick]> +stopvote %[line:Welche Zuordnungsnummer?]&#124;|")
 
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Admin\\Umfrage beenden$<%[mynick]> +stopvote %[line:Welche Zuordnungsnummer?]&#124;|")
   
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Admin\\Umfrage löschen$<%[mynick]> +delvote %[line:Welche Zuordnungsnummer?]&#124;|")
 
user:SendData("$UserCommand 1 3 "..rcmenue.."\\Admin\\Umfrage löschen$<%[mynick]> +delvote %[line:Welche Zuordnungsnummer?]&#124;|")
   
end
 
end
   
end
 
end
   −
 
+
function ChatArrival(user, data)
 
+
data=string.sub(data,1,string.len(data)-1)
function ChatArrival(user, data)  
+
s,e,cmd = string.find(data,"%b<>%s+(%S+)")
 
+
if (cmd=="+votehelp") then
data=string.sub(data,1,string.len(data)-1)  
+
local msg = ""
 
+
if (user.iProfile == 0) then
s,e,cmd = string.find(data,"%b<>%s+(%S+)")  
+
msg = msg.."Befehle für das Voting:\r\n"
 
+
msg = msg.."\r\n"
if (cmd=="+votehelp") then  
+
msg = msg.."+createvote <nr> <q>\tErstellt eine Umfrage (nr = Zuordnungsnummer für die Umfrage) (q = Umfrage)\r\n"
 
+
msg = msg.."+stopvote <nr>\t\tBeendet die Umfrage\r\n"
local msg = ""  
+
msg = msg.."+showvote <nr> <old/new>\tZeigt die Abstimmungsergebnisse der Umfrage (old = alte Umfragen) oder (new = Umfragen die noch nicht beendet worden sind)\r\n"
 
+
msg = msg.."+svmain <nr> <old/new>\tZeigt die Abstimmungsergebnisse im Main (old = alte Umfragen) oder (new = Umfragen die noch nicht beendet worden sind)\r\n"
if (user.iProfile == 0) then  
+
msg = msg.."+votelist\t\t\tZeigt alle Umfragen\r\n"
 
+
msg = msg.."+votefor\t\t\tZeigt die Umfragen bei denen du abstimmen kannst\r\n"
msg = msg.."Befehle für das Voting:\r\n"  
+
msg = msg.."+vote <nr> <y/n>\t\tUm bei einer Umfrage abzustimmen (y = ja) (n = nein) (nr = Nummer der Umfrage)\r\n"
 
+
msg = msg.."+delvote <nr>\t\tUm alte Umfragen zu löschen (nr = Nummer der zu löschenden Umfrage)\r\n"
msg = msg.."\r\n"  
+
msg = msg.."\r\n"
 
+
user:SendPM(Bot, msg)
msg = msg.."+createvote <nr> <q>\tErstellt eine Umfrage (nr = Zuordnungsnummer für die Umfrage) (q = Umfrage)\r\n"  
  −
 
  −
msg = msg.."+stopvote <nr>\t\tBeendet die Umfrage\r\n"  
  −
 
  −
msg = msg.."+showvote <nr> <old/new>\tZeigt die Abstimmungsergebnisse der Umfrage (old = alte Umfragen) oder (new = Umfragen die noch nicht beendet worden sind)\r\n"  
  −
 
  −
msg = msg.."+svmain <nr> <old/new>\tZeigt die Abstimmungsergebnisse im Main (old = alte Umfragen) oder (new = Umfragen die noch nicht beendet worden sind)\r\n"  
  −
 
  −
msg = msg.."+votelist\t\t\tZeigt alle Umfragen\r\n"  
  −
 
  −
msg = msg.."+votefor\t\t\tZeigt die Umfragen bei denen du abstimmen kannst\r\n"  
  −
 
  −
msg = msg.."+vote <nr> <y/n>\t\tUm bei einer Umfrage abzustimmen (y = ja) (n = nein) (nr = Nummer der Umfrage)\r\n"  
  −
 
  −
msg = msg.."+delvote <nr>\t\tUm alte Umfragen zu löschen (nr = Nummer der zu löschenden Umfrage)\r\n"  
  −
 
  −
msg = msg.."\r\n"  
  −
 
  −
user:SendPM(Bot, msg)  
  −
 
   
else  
 
else  
 
+
msg = msg.."Befehle für das Voting:\r\n"
msg = msg.."Befehle für das Voting:\r\n"  
+
msg = msg.."\r\n"
 
  −
msg = msg.."\r\n"  
  −
 
   
msg = msg.."+votefor\t\t\tZeigt die Umfragen bei denen du abstimmen kannst\r\n"  
 
msg = msg.."+votefor\t\t\tZeigt die Umfragen bei denen du abstimmen kannst\r\n"  
 
+
msg = msg.."+vote <nr> <y/n>\t\tUm bei einer Umfrage abzustimmen (y = ja) (n = nein) (nr = Nummer der Umfrage)\r\n"
msg = msg.."+vote <nr> <y/n>\t\tUm bei einer Umfrage abzustimmen (y = ja) (n = nein) (nr = Nummer der Umfrage)\r\n"  
+
msg = msg.."\r\n"
 
+
user:SendPM(Bot, msg)
msg = msg.."\r\n"  
  −
 
  −
user:SendPM(Bot, msg)  
  −
 
   
end  
 
end  
 
+
return 1
return 1  
+
elseif (cmd=="+createvote") then
 
+
if (user.iProfile == 0) then
elseif (cmd=="+createvote") then  
+
local s,e,number,question = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(.*)")
 
+
if (tonumber(number) == nil) then
if (user.iProfile == 0) then  
+
user:SendPM(Bot, "Syntax error, +createvote <nr> <q>, nr muss eine Nummer sein!")
 
+
else
local s,e,number,question = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(.*)")  
+
number = tonumber(number)
 
+
        if (question == nil or question == "") then
if (tonumber(number) == nil) then  
+
user:SendPM(Bot, "Syntax error, +createvote <nr> <q>, du musst schon auch ne Frage erstellen worüber abgestimmt werden soll!")
 
+
else
user:SendPM(Bot, "Syntax error, +createvote <nr> <q>, nr muss eine Nummer sein!")  
+
        if (CreatePoll(user, number, question) == 1) then
 
  −
else  
  −
 
  −
number = tonumber(number)  
  −
 
  −
if (question == nil or question == "") then  
  −
 
  −
user:SendPM(Bot, "Syntax error, +createvote <nr> <q>, du musst schon auch ne Frage erstellen worüber abgestimmt werden soll!")  
  −
 
  −
else  
  −
 
  −
if (CreatePoll(user, number, question) == 1) then  
  −
 
   
user:SendPM(Bot, "Die Abstimmung bzw. Umfrage wurde erstellt.")  
 
user:SendPM(Bot, "Die Abstimmung bzw. Umfrage wurde erstellt.")  
 
+
else
else  
+
user:SendPM(Bot, "Es existiert bereits eine Abstimmung bzw. Umfrage mit der Nummer  "..number..".")
 
+
end
user:SendPM(Bot, "Es existiert bereits eine Abstimmung bzw. Umfrage mit der Nummer  "..number..".")  
+
end
 
+
end
end  
+
else
 
+
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")
end  
+
end
 
+
return 1
end  
+
elseif (cmd=="+stopvote") then
 
+
if (user.iProfile == 0) then
else  
+
local s,e,number = string.find(data,"%b<>%s+%S+%s+(.*)")
 
+
if (tonumber(number) == nil or number == "") then
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")  
+
user:SendPM(Bot, "Syntax error, +stopvote <nr>, nr muss eine Nummer sein!")
 
+
else
end  
+
number = tonumber(number)
 
+
if (OldPoll(user, number) == 1) then
return 1  
+
user:SendPM(Bot, "Die Abstimmung bzw. Umfrage wurde beendet und gespeichert in der  "..oldpolls..".")
 
  −
elseif (cmd=="+stopvote") then  
  −
 
  −
if (user.iProfile == 0) then  
  −
 
  −
local s,e,number = string.find(data,"%b<>%s+%S+%s+(.*)")  
  −
 
  −
if (tonumber(number) == nil or number == "") then  
  −
 
  −
user:SendPM(Bot, "Syntax error, +stopvote <nr>, nr muss eine Nummer sein!")  
  −
 
   
else  
 
else  
 
+
user:SendPM(Bot, "Es gibt keine Abstimmung bzw. Umfrage mit der Nummer  "..number..".")
number = tonumber(number)
+
end
 
+
end
if (OldPoll(user, number) == 1) then
+
else
 
+
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")
user:SendPM(Bot, "Die Abstimmung bzw. Umfrage wurde beendet und gespeichert in der  "..oldpolls..".")
+
end
 
+
return 1
else
+
elseif (cmd=="+showvote") then
 
+
if (user.iProfile == 0) then
user:SendPM(Bot, "Es gibt keine Abstimmung bzw. Umfrage mit der Nummer  "..number..".")  
+
local s,e,number, opt = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(%S+)")
 
+
if (tonumber(number) == nil) then
end  
+
user:SendPM(Bot, "Syntax error, +showvote <nr> <old/new>, nr muss eine Nummer sein!")
 
+
else
end  
+
number = tonumber(number)
 
+
if (opt == "old") then
else  
+
if (CheckPoll(user, number, oldpolls) == "") then
 
+
user:SendPM(Bot, "Es gibt keine beendete Umfrage mit der Nummer  "..number..".")
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")  
+
else
 
+
user:SendPM(Bot, CheckPoll(user, number, oldpolls))
end  
+
end
 
+
elseif(opt == "new") then
return 1  
+
if (CheckPoll(user, number, votetext) == "") then
 
+
user:SendPM(Bot, "Es gibt keine Umfrage mit der Nummer  "..number..".")
elseif (cmd=="+showvote") then  
+
else
 
  −
if (user.iProfile == 0) then  
  −
 
  −
local s,e,number, opt = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(%S+)")  
  −
 
  −
if (tonumber(number) == nil) then  
  −
 
  −
user:SendPM(Bot, "Syntax error, +showvote <nr> <old/new>, nr muss eine Nummer sein!")  
  −
 
  −
else  
  −
 
  −
number = tonumber(number)  
  −
 
  −
if (opt == "old") then  
  −
 
  −
if (CheckPoll(user, number, oldpolls) == "") then  
  −
 
  −
user:SendPM(Bot, "Es gibt keine beendete Umfrage mit der Nummer  "..number..".")  
  −
 
  −
else  
  −
 
  −
user:SendPM(Bot, CheckPoll(user, number, oldpolls))  
  −
 
  −
end  
  −
 
  −
elseif(opt == "new") then  
  −
 
  −
if (CheckPoll(user, number, votetext) == "") then  
  −
 
  −
user:SendPM(Bot, "Es gibt keine Umfrage mit der Nummer  "..number..".")  
  −
 
  −
else  
  −
 
   
user:SendPM(Bot, CheckPoll(user, number, votetext))  
 
user:SendPM(Bot, CheckPoll(user, number, votetext))  
 
+
end
end  
+
else
 
+
user:SendPM(Bot, "Syntax error, +showvote <nr> <old/new>, muss sein (old = alte Umfragen) oder (new = Umfragen die noch nicht beendet worden sind)")
else  
+
end
 
+
end
user:SendPM(Bot, "Syntax error, +showvote <nr> <old/new>, muss sein (old = alte Umfragen) oder (new = Umfragen die noch nicht beendet worden sind)")  
+
else
 
+
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")
end  
+
end
 
  −
end  
  −
 
  −
else  
  −
 
  −
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")  
  −
 
  −
end  
  −
 
   
return 1  
 
return 1  
 
+
elseif (cmd=="+svmain") then
elseif (cmd=="+svmain") then  
+
if (user.iProfile == 0) then
 
+
local s,e,number, opt = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(%S+)")
if (user.iProfile == 0) then  
+
if (tonumber(number) == nil) then
 
  −
local s,e,number, opt = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(%S+)")  
  −
 
  −
if (tonumber(number) == nil) then  
  −
 
   
user:SendPM(Bot, "Syntax error, +svmain <nr> <old/new>, nr muss eine Nummer sein!")  
 
user:SendPM(Bot, "Syntax error, +svmain <nr> <old/new>, nr muss eine Nummer sein!")  
 +
else
 +
number = tonumber(number)
 +
if (opt == "old") then
 +
if (CheckPoll(user, number, oldpolls) == "") then
 +
user:SendPM(Bot, "Es gibt keine beendete Umfrage mit der Nummer  "..number..".")
 +
else
 +
SendToAll(Bot, CheckPoll(user, number, oldpolls))
 +
end
 +
elseif(opt == "new") then
 +
if (CheckPoll(user, number, votetext) == "") then
 +
user:SendPM(Bot, "Es gibt keine Umfrage mit der Nummer  "..number..".")
   −
else
+
        else
 
+
SendToAll(Bot, CheckPoll(user, number, votetext))
number = tonumber(number)
+
end
 
+
else
if (opt == "old") then
+
user:SendPM(Bot, "Syntax error, +svmain <nr> <old/new>, muss sein (old = alte Umfragen) oder (new = Umfragen die noch nicht beendet worden sind)")
 
+
end
if (CheckPoll(user, number, oldpolls) == "") then
+
end
 
+
else
user:SendPM(Bot, "Es gibt keine beendete Umfrage mit der Nummer  "..number..".")
+
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")
 
+
end
else
+
return 1
 
+
elseif (cmd=="+votelist") then
SendToAll(Bot, CheckPoll(user, number, oldpolls))
+
if (user.iProfile == 0) then
 
  −
end
  −
 
  −
elseif(opt == "new") then
  −
 
  −
if (CheckPoll(user, number, votetext) == "") then
  −
 
  −
user:SendPM(Bot, "Es gibt keine Umfrage mit der Nummer  "..number..".")
  −
 
  −
else  
  −
 
  −
SendToAll(Bot, CheckPoll(user, number, votetext))  
  −
 
  −
end  
  −
 
  −
else  
  −
 
  −
user:SendPM(Bot, "Syntax error, +svmain <nr> <old/new>, muss sein (old = alte Umfragen) oder (new = Umfragen die noch nicht beendet worden sind)")  
  −
 
  −
end  
  −
 
  −
end  
  −
 
  −
else  
  −
 
  −
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")  
  −
 
  −
end  
  −
 
  −
return 1  
  −
 
  −
elseif (cmd=="+votelist") then  
  −
 
  −
if (user.iProfile == 0) then  
  −
 
   
local l = io.open(oldpolls, "r")
 
local l = io.open(oldpolls, "r")
 
+
if (ReadPoll(user, oldpolls) == "") then
if (ReadPoll(user, oldpolls) == "") then  
+
user:SendPM(Bot, "Es gibt keine beendeten Umfragen")
 
+
else
user:SendPM(Bot, "Es gibt keine beendeten Umfragen")  
+
user:SendPM(Bot, ReadPoll(user, oldpolls))
 
+
end
else  
+
else
 
+
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")
user:SendPM(Bot, ReadPoll(user, oldpolls))  
+
end
 
+
return 1
end  
+
elseif (cmd=="+votefor") then
 
+
if (ReadPoll(user, votetext) == "") then
else  
+
user:SendPM(Bot, "Es gibt keine Abstimmungen bzw. Umfragen")
 
+
else
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")  
+
user:SendPM(Bot, ReadPoll(user, votetext))
 
+
end
 +
return 1
 +
elseif (cmd=="+vote") then
 +
local s,e,number,opt = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(%S+)")
 +
if (tonumber(number) == nil) then
 +
user:SendPM(Bot, "Syntax error, +vote <nr> <y/n>, nr muss eine Nummer sein!")
 +
else
 +
number = tonumber(number)
 +
if (opt == nil or opt == "" or opt ~= "n" and opt ~= "y") then
 +
user:SendPM(Bot, "Syntax error, +vote <nr> <y/n>, du musst schreiben (y = ja) oder (n = nein).")
 +
else
 +
if (Vote(user, number, opt) == 1) then
 +
user:SendPM(Bot, "Deine Abstimmung wurde registriert.")
 +
vt[user.sName] = 1
 +
nr[user.sName] = number
 +
elseif(Vote(user, number, opt) == 2) then
 +
user:SendPM(Bot, "Du hast bei dieser Umfrage bereits abgestimmt")
 +
else
 +
user:SendPM(Bot, "Es gibt keine Umfrage mit der Nummer  "..number..".")
 +
end
 +
end
 
end  
 
end  
   
return 1  
 
return 1  
 
+
elseif (cmd=="+delvote") then
elseif (cmd=="+votefor") then
+
if (user.iProfile == 0) then
 
+
local s,e,number = string.find(data,"%b<>%s+%S+%s+(%S+)")
if (ReadPoll(user, votetext) == "") then
+
if (tonumber(number) == nil) then
 
+
user:SendPM(Bot, "Syntax error, +delvote <nr>, nr muss eine Nummer sein!")
user:SendPM(Bot, "Es gibt keine Abstimmungen bzw. Umfragen")
+
else
 
+
number = tonumber(number)
else
+
if (DelOldPoll(user, number) == 0) then
 
+
user:SendPM(Bot, "Es gibt keine beendete Umfrage mit der Nummer  "..number)
user:SendPM(Bot, ReadPoll(user, votetext))
+
else
 
+
user:SendPM(Bot, "Die alte Umfrage wurde gelöscht.")
end
+
end
 
+
end
return 1
+
else
 
+
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")
elseif (cmd=="+vote") then
+
end
 
+
return 1
local s,e,number,opt = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(%S+)")
+
end
 
+
end
if (tonumber(number) == nil) then
  −
 
  −
user:SendPM(Bot, "Syntax error, +vote <nr> <y/n>, nr muss eine Nummer sein!")
  −
 
  −
else
  −
 
  −
number = tonumber(number)
  −
 
  −
if (opt == nil or opt == "" or opt ~= "n" and opt ~= "y") then
  −
 
  −
user:SendPM(Bot, "Syntax error, +vote <nr> <y/n>, du musst schreiben (y = ja) oder (n = nein).")
  −
 
  −
else
  −
 
  −
if (Vote(user, number, opt) == 1) then
  −
 
  −
user:SendPM(Bot, "Deine Abstimmung wurde registriert.")
  −
 
  −
vt[user.sName] = 1
  −
 
  −
nr[user.sName] = number
  −
 
  −
elseif(Vote(user, number, opt) == 2) then
  −
 
  −
user:SendPM(Bot, "Du hast bei dieser Umfrage bereits abgestimmt")
  −
 
  −
else
  −
 
  −
user:SendPM(Bot, "Es gibt keine Umfrage mit der Nummer  "..number..".")
  −
 
  −
end
  −
 
  −
end
  −
 
  −
end
  −
 
  −
return 1
  −
 
  −
elseif (cmd=="+delvote") then  
  −
 
  −
if (user.iProfile == 0) then  
  −
 
  −
local s,e,number = string.find(data,"%b<>%s+%S+%s+(%S+)")  
  −
 
  −
if (tonumber(number) == nil) then  
  −
 
  −
user:SendPM(Bot, "Syntax error, +delvote <nr>, nr muss eine Nummer sein!")  
  −
 
  −
else  
  −
 
  −
number = tonumber(number)  
  −
 
  −
if (DelOldPoll(user, number) == 0) then  
  −
 
  −
user:SendPM(Bot, "Es gibt keine beendete Umfrage mit der Nummer  "..number)  
  −
 
  −
else  
  −
 
  −
user:SendPM(Bot, "Die alte Umfrage wurde gelöscht.")  
  −
 
  −
end  
  −
 
  −
end  
  −
 
  −
else  
  −
 
  −
user:SendPM(Bot, "Du hast keine Befugnis diesen Befehl zu nutzen!")  
  −
 
  −
end  
  −
 
  −
return 1  
  −
 
  −
end  
  −
 
  −
end  
  −
 
  −
 
      
ToArrival = ChatArrival  
 
ToArrival = ChatArrival  
  −
  −
  −
      
function CreatePoll(user, number, question)  
 
function CreatePoll(user, number, question)  
   
local tmp = ""  
 
local tmp = ""  
 
+
local time = 0
local time = 0  
  −
 
   
local a = io.open(oldpolls, "r")
 
local a = io.open(oldpolls, "r")
   
if a then
 
if a then
 
+
while 1 do
while 1 do  
+
local line = a:read()
 
+
if (line == nil) then
local line = a:read()  
+
break
 
+
else
if (line == nil) then  
+
local s,e,num = string.find(line,"Nr:%s+(%S+)%s+")
 
+
if (tonumber(num) ~= nil and tonumber(num) == number) then
break  
+
time = 2
 
+
else
else  
+
end
 
+
end
local s,e,num = string.find(line,"Nr:%s+(%S+)%s+")  
+
end
 
  −
if (tonumber(num) ~= nil and tonumber(num) == number) then  
  −
 
  −
time = 2  
  −
 
  −
else  
  −
 
  −
end  
  −
 
  −
end  
  −
 
  −
end  
  −
 
   
a:close()
 
a:close()
 
+
else
else  
+
dofile(oldpolls)
 
  −
dofile(oldpolls)  
  −
 
   
-- return a.." doesnt exist"
 
-- return a.." doesnt exist"
   
end
 
end
  −
      
local b = io.open(votetext,"r")
 
local b = io.open(votetext,"r")
   
if b then
 
if b then
 
+
while 1 do
while 1 do  
+
local line = b:read()
 
+
if (line == nil) then
local line = b:read()  
+
if (time == 2) then
 
+
break
if (line == nil) then  
+
else
 
+
tmp = tmp.."Nr: "..number.." Umfrage: "..question.." Ja: 0 Nein: 0 Active: Ja\r\n"
if (time == 2) then  
+
time = 1
 
+
break
break  
+
end
 
+
else
else  
+
local s,e,num = string.find(line,"Nr:%s+(%S+)%s+")
 
+
if (tonumber(num) ~= nil and tonumber(num) == number) then
tmp = tmp.."Nr: "..number.." Umfrage: "..question.." Ja: 0 Nein: 0 Active: Ja\r\n"  
+
tmp = tmp..line.."\r\n"
 
+
time = 2
time = 1  
+
else
 
+
tmp = tmp..line.."\r\n"
break  
+
end
 
+
end
end  
+
end
 
  −
else  
  −
 
  −
local s,e,num = string.find(line,"Nr:%s+(%S+)%s+")  
  −
 
  −
if (tonumber(num) ~= nil and tonumber(num) == number) then  
  −
 
  −
tmp = tmp..line.."\r\n"  
  −
 
  −
time = 2  
  −
 
  −
else  
  −
 
  −
tmp = tmp..line.."\r\n"  
  −
 
  −
end  
  −
 
  −
end  
  −
 
  −
end  
      
b:close()
 
b:close()
   
local l = io.open(votetext,"w+")
 
local l = io.open(votetext,"w+")
   
l:write(tmp)
 
l:write(tmp)
   
l:flush()
 
l:flush()
   
l:close()
 
l:close()
   
return time  
 
return time  
 
+
else
else  
+
dofile(votetext)
 
  −
dofile(votetext)  
  −
 
   
-- return b.." doesnt exist"
 
-- return b.." doesnt exist"
   
end
 
end
 
+
return time
return time  
+
end
 
  −
end  
  −
 
  −
 
      
function OldPoll(user, number)  
 
function OldPoll(user, number)  
   
local tmp = ""  
 
local tmp = ""  
   
local tmp2 = ""  
 
local tmp2 = ""  
 
+
local time = 0
local time = 0  
  −
 
   
local c = io.open(votetext,"r")
 
local c = io.open(votetext,"r")
   
if c then
 
if c then
 
+
while 1 do
while 1 do  
+
local line = c:read()
 
+
if (line == nil) then
local line = c:read()  
+
break
 
+
else
if (line == nil) then  
+
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")
 
+
if (tonumber(num) ~= nil and tonumber(num) == number) then
break  
+
tmp2 = tmp2.."Nr: "..number.." "..question.."Ja: "..ny.." Nein: "..nn.." Active: Nein\r\n"
 
+
time = 1
else  
+
else
 
+
tmp = tmp..line.."\r\n"
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")  
+
end
 
+
end
if (tonumber(num) ~= nil and tonumber(num) == number) then  
+
end
 
  −
tmp2 = tmp2.."Nr: "..number.." "..question.."Ja: "..ny.." Nein: "..nn.." Active: Nein\r\n"  
  −
 
  −
time = 1  
  −
 
  −
else  
  −
 
  −
tmp = tmp..line.."\r\n"  
  −
 
  −
end  
  −
 
  −
end  
  −
 
  −
end  
  −
 
   
c:close()
 
c:close()
   
local d = io.open(votetext,"w+")
 
local d = io.open(votetext,"w+")
   
d:write(tmp)
 
d:write(tmp)
   
d:flush()
 
d:flush()
   
d:close()
 
d:close()
   
if (time == 0) then  
 
if (time == 0) then  
 
+
else
else  
  −
 
   
local e = io.open(oldpolls, "a+") -- "a+"
 
local e = io.open(oldpolls, "a+") -- "a+"
 
+
e:write(tmp2)
e:write(tmp2)  
  −
 
   
e:close()
 
e:close()
 
+
end
end  
+
return time
 
+
else
return time  
+
dofile(votetext)
 
  −
else  
  −
 
  −
dofile(votetext)  
  −
 
   
-- return c.." existiert nicht"
 
-- return c.." existiert nicht"
    
end
 
end
 +
end
   −
end
+
function CheckPoll(user, number, file)
 
+
local tmp = ""
 
  −
 
  −
function CheckPoll(user, number, file)  
  −
 
  −
local tmp = ""  
  −
 
   
local f = io.open(file,"r")
 
local f = io.open(file,"r")
   
if f then
 
if f then
 
+
while 1 do
while 1 do  
+
local line = f:read()
 
+
if (line == nil) then
local line = f:read()  
+
break
 
+
else
if (line == nil) then  
+
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")
 
+
if (tonumber(num) ~= nil and tonumber(num) == number) then
break  
+
tmp = tmp.."\r\n________________________________________________"  
 
+
tmp = tmp.."\r\n------------------------------------------ Voting ------------------------------------------"
else  
+
tmp = tmp.."\r\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\r\n\r\n"
 
+
tmp = tmp.."Ergebnis von Umfrage Nr:  "..num.." "
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")  
  −
 
  −
if (tonumber(num) ~= nil and tonumber(num) == number) then  
  −
 
  −
tmp = tmp.."\r\n________________________________________________"
  −
 
  −
tmp = tmp.."\r\n------------------------------------------ Voting ------------------------------------------"  
  −
 
  −
tmp = tmp.."\r\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\r\n\r\n"  
  −
 
  −
tmp = tmp.."Ergebnis von Umfrage Nr:  "..num.." "  
  −
 
   
tmp = tmp.."\r\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\r\n\r\n"
 
tmp = tmp.."\r\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\r\n\r\n"
 
+
tmp = tmp..""..question.."\r\n"
tmp = tmp..""..question.."\r\n"  
+
tmp = tmp.."------------------------------\r\n"
 
+
tmp = tmp.."Ja:    "..ny.."\r\n"
tmp = tmp.."------------------------------\r\n"  
+
tmp = tmp.."Nein: "..nn.."\r\n"
 
+
tmp = tmp.."------------------------------\r\n"
tmp = tmp.."Ja:    "..ny.."\r\n"  
+
if (tonumber(ny) > tonumber(nn)) then
 
+
tmp = tmp.."Ja liegt vorne"
tmp = tmp.."Nein: "..nn.."\r\n"  
+
elseif (tonumber(ny) < tonumber(nn)) then
 
+
tmp = tmp.."Nein hat gewonnen."
tmp = tmp.."------------------------------\r\n"  
+
elseif (tonumber(ny) == tonumber(nn)) then
 
+
tmp = tmp.."unentschieden."
if (tonumber(ny) > tonumber(nn)) then  
+
end
 
  −
tmp = tmp.."Ja liegt vorne"  
  −
 
  −
elseif (tonumber(ny) < tonumber(nn)) then  
  −
 
  −
tmp = tmp.."Nein hat gewonnen."  
  −
 
  −
elseif (tonumber(ny) == tonumber(nn)) then  
  −
 
  −
tmp = tmp.."unentschieden."  
  −
 
  −
end  
  −
 
   
break  
 
break  
 
+
else
else  
+
end
 
+
end
end  
  −
 
  −
end  
  −
 
   
end
 
end
   
f:close()
 
f:close()
 
+
return tmp
return tmp  
+
else
 
+
dofile(file)
else  
  −
 
  −
dofile(file)  
  −
 
   
-- return f.." existiert nicht"
 
-- return f.." existiert nicht"
   
end
 
end
 
+
end
end  
  −
 
  −
 
      
function ReadPoll(user, file)  
 
function ReadPoll(user, file)  
   
local tmp = ""  
 
local tmp = ""  
   
local g = io.open(file,"r")
 
local g = io.open(file,"r")
   
if g then
 
if g then
   
while 1 do  
 
while 1 do  
   
local line = g:read()  
 
local line = g:read()  
   
if (line == nil or line == "") then  
 
if (line == nil or line == "") then  
 
+
              break  
break  
  −
 
   
else  
 
else  
   
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")  
 
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")  
   
if (num == nil) then  
 
if (num == nil) then  
   
else  
 
else  
   
tmp = tmp.."\r\n________________________________________________"  
 
tmp = tmp.."\r\n________________________________________________"  
   
tmp = tmp.."\r\n------------------------------------------ Voting ------------------------------------------"  
 
tmp = tmp.."\r\n------------------------------------------ Voting ------------------------------------------"  
   
tmp = tmp.."\r\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\r\n\r\n"  
 
tmp = tmp.."\r\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\r\n\r\n"  
   
tmp = tmp.."Ergebnis von Umfrage Nr:  "..num.." "  
 
tmp = tmp.."Ergebnis von Umfrage Nr:  "..num.." "  
   
tmp = tmp.."\r\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\r\n\r\n"
 
tmp = tmp.."\r\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\r\n\r\n"
   
tmp = tmp..""..question.."\r\n"  
 
tmp = tmp..""..question.."\r\n"  
   
tmp = tmp.."------------------------------\r\n"  
 
tmp = tmp.."------------------------------\r\n"  
   
tmp = tmp.."Ja:    "..ny.."\r\n"  
 
tmp = tmp.."Ja:    "..ny.."\r\n"  
   
tmp = tmp.."Nein: "..nn.."\r\n"  
 
tmp = tmp.."Nein: "..nn.."\r\n"  
   
tmp = tmp.."------------------------------\r\n"  
 
tmp = tmp.."------------------------------\r\n"  
   
if (file == oldpolls) then  
 
if (file == oldpolls) then  
   
tmp = tmp.."Umfrage beendet\r\n"  
 
tmp = tmp.."Umfrage beendet\r\n"  
   
elseif (file == votetext) then  
 
elseif (file == votetext) then  
   
tmp = tmp.."Umfrage läuft noch\r\n"  
 
tmp = tmp.."Umfrage läuft noch\r\n"  
   
end  
 
end  
   
end  
 
end  
   
end  
 
end  
   
end  
 
end  
   
g:close()
 
g:close()
   
return tmp  
 
return tmp  
   
else  
 
else  
   
dofile(file)  
 
dofile(file)  
   
-- return g.." existiert nicht"
 
-- return g.." existiert nicht"
   
end
 
end
   
end  
 
end  
  −
      
function Vote(user, number, opt)  
 
function Vote(user, number, opt)  
   
local tmp = ""  
 
local tmp = ""  
   
local time = 0  
 
local time = 0  
   
if (vt[user.sName] == 1 and nr[user.sName] == number) then  
 
if (vt[user.sName] == 1 and nr[user.sName] == number) then  
   
time = 2  
 
time = 2  
   
else  
 
else  
  −
      
local h = io.open(votetext,"r")
 
local h = io.open(votetext,"r")
   
if h then
 
if h then
   
while 1 do  
 
while 1 do  
   
local line = h:read()  
 
local line = h:read()  
   
if (line == nil) then  
 
if (line == nil) then  
   
break  
 
break  
   
else  
 
else  
   
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")  
 
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")  
   
if (tonumber(num) ~= nil and tonumber(num) == number) then  
 
if (tonumber(num) ~= nil and tonumber(num) == number) then  
   
if (opt == "y") then  
 
if (opt == "y") then  
   
ny = tonumber(ny) + 1  
 
ny = tonumber(ny) + 1  
   
elseif (opt == "n") then  
 
elseif (opt == "n") then  
   
nn = tonumber(nn) + 1  
 
nn = tonumber(nn) + 1  
   
end  
 
end  
   
tmp = tmp.."Nr: "..number.." "..question.."Ja: "..ny.." Nein: "..nn.." Active: Ja\r\n"  
 
tmp = tmp.."Nr: "..number.." "..question.."Ja: "..ny.." Nein: "..nn.." Active: Ja\r\n"  
   
time = 1  
 
time = 1  
   
else  
 
else  
   
tmp = tmp..line.."\r\n"  
 
tmp = tmp..line.."\r\n"  
   
end  
 
end  
   
end  
 
end  
   
end  
 
end  
   
h:close()
 
h:close()
   
else  
 
else  
   
dofile(votetext)  
 
dofile(votetext)  
   
-- return h.." existiert nicht"
 
-- return h.." existiert nicht"
   
end
 
end
   
local i = io.open(votetext,"w+")
 
local i = io.open(votetext,"w+")
   
i:write(tmp)
 
i:write(tmp)
   
i:flush()
 
i:flush()
   
i:close()
 
i:close()
   
end  
 
end  
   
return time  
 
return time  
   
end  
 
end  
  −
      
function DelOldPoll(user, number)  
 
function DelOldPoll(user, number)  
   
local tmp = ""  
 
local tmp = ""  
   
local time = 0  
 
local time = 0  
  −
  −
   
local j = io.open(oldpolls,"r")
 
local j = io.open(oldpolls,"r")
   
if j then
 
if j then
   
while 1 do  
 
while 1 do  
   
local line = j:read()  
 
local line = j:read()  
   
if (line == nil) then  
 
if (line == nil) then  
   
break  
 
break  
   
else  
 
else  
   
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")  
 
local s,e, num, question, ny, nn = string.find(line,"Nr:%s+(%S+)%s+(.*)Ja:%s+(%S+)%s+Nein:%s+(%S+)%s+Active:")  
   
if (tonumber(num) ~= nil and tonumber(num) == number) then  
 
if (tonumber(num) ~= nil and tonumber(num) == number) then  
   
time = 1  
 
time = 1  
   
else  
 
else  
   
tmp = tmp..line.."\r\n"  
 
tmp = tmp..line.."\r\n"  
   
end  
 
end  
   
end  
 
end  
   
end  
 
end  
   
j:close()
 
j:close()
   
else  
 
else  
 
+
        dofile(oldpolls)  
dofile(oldpolls)  
  −
 
   
-- return j.." existiert nicht"
 
-- return j.." existiert nicht"
   
end
 
end
   
local k = io.open(oldpolls,"w+")
 
local k = io.open(oldpolls,"w+")
   
k:write(tmp)
 
k:write(tmp)
   
k:flush()
 
k:flush()
   
k:close()
 
k:close()
   
return time  
 
return time  
   
end
 
end
 
</pre>
 
</pre>