Ä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>