on 5:text:!raffleOpen:#: {
if (%raffleIsOn == $false) {
%raffleIsOn = $true
write -c %raffleFile
%raffleID = 0
msg $chan /me The raffle is now open, you can enter the raffle by saying !raffle in the chat.
}
elseif (%raffleIsOn == $true) {
msg $chan /me The raffle is already open!
}
}
on 5:text:!raffleClose:#: {
if (%raffleIsOn == $true) {
%raffleIsOn = $false
msg $chan /me The raffle is now closed.
}
elseif (%raffleIsOn == $false) {
msg $chan /me The raffle is already closed.
}
}
on *:text:!raffle:#: {
if (%raffleIsOn == $false) {
msg $chan /me You cannot enter the raffle until it is opened.
}
else {
if ($findID(%raffleFile, %raffleID, $nick) == 0) {
writeini -n %raffleFile $calc(%raffleID + 1) name $nick
writeini -n %raffleFile $calc(%raffleID + 1) hasWon false
inc %raffleID
}
else {
msg $chan /me $nick is already in the raffle!
}
}
}
on 3:text:!winner:#: {
if (%raffleID != 0 && $isViableRaffle == $true) {
var %winnerChosen = $false
while (%winnerChosen == $false) {
var %winnerID = $rand(1, %raffleID)
if ($readini(%raffleFile, %winnerID, hasWon) == false) {
var %winner = $readini(%raffleFile, %winnerID, name)
msg $chan /me The winner is... %winner !
writeini -n %raffleFile %winnerID hasWon true
%winnerChosen = $true
}
}
}
else {
msg $chan /me The raffle is not currently viable.
}
}
//-------------------------------------------------------------------------------------------------------------------------
// Format: $findID([file], [.ini sections], [name])
// Returns the ID of a person in the specified file. If the person does not exist, returns 0
alias -l findID {
var %file = $1
var %ID = $2
var %user = $3
var %i = 1
while (%i <= %ID) {
if ($readini(%file, %i, name) == %user) {
return %i
}
inc %i
}
return 0
}
// Format: $isViableRaffle
// Checks the raffle to make sure there is someone who can win. Returns either $true or $false
alias -l isViableRaffle
var %i = 1
while (%i <= %raffleID) {
if ($readini(%raffleFile, %i, hasWon) == false) {
return $true
}
inc %i
}
return $false
}