]> git.lizzy.rs Git - furrybot.git/blobdiff - random.lua
Structure overhaul
[furrybot.git] / random.lua
index 8b0345fc4b731d6c3e123f200eb41a20d39decd6..aad94eb9c831420a661fe9db7002ec1126a70f93 100644 (file)
 local http, env, storage
 local C = minetest.get_color_escape_sequence
 
-function furrybot.commands.rolldice(name)
-       furrybot.ping_message(name, "rolled a dice and got a " .. furrybot.random(1, 6, furrybot.colors.system) .. ".", furrybot.colors.system)
-end
+furrybot.commands.rolldice = {
+       func = function(name)
+               furrybot.ping_message(name, "rolled a dice and got a " .. furrybot.random(1, 6, furrybot.colors.system) .. ".", furrybot.colors.system)
+       end,
+}
+
+furrybot.commands.coinflip = {
+       func = function(name)
+               furrybot.ping_message(name, "flipped a coin and got " .. furrybot.choose({"Heads", "Tails"}, furrybot.colors.system) .. ".", furrybot.colors.system)
+       end,
+}
+
+furrybot.commands.choose = {
+       func = function(name, ...)
+               local options = {...}
+               if #options > 1 then
+                       furrybot.ping_message(name, "I choose " .. furrybot.choose(options, "", furrybot.colors.system) .. ".", furrybot.colors.system)
+               else
+                       furrybot.error_message(name, "Not enough options")
+               end
+       end,
+}
 
-function furrybot.commands.coinflip(name)
-       furrybot.ping_message(name, "flipped a coin and got " .. furrybot.choose({"Heads", "Tails"}, furrybot.colors.system) .. ".", furrybot.colors.system)
-end
+furrybot.commands.uwu = {
+       func = function()
+               local msg = ""
 
-function furrybot.commands.choose(name, ...)
-       local options = {...}
-       if #options > 1 then
-               furrybot.ping_message(name, "I choose " .. furrybot.choose(options, "", furrybot.colors.system) .. ".", furrybot.colors.system)
-       else
-               furrybot.error_message(name, "Not enough options")
-       end
-end
+               local m = math.random(10)
 
-function furrybot.commands.uwu()
-       local msg = ""
+               for i = 1, m do
+                       local u_list = {"u", "ü", "o", "ö"}
 
-       local m = math.random(10)
+                       local u = u_list[math.random(#u_list)]
+                       local w = "w"
 
-       for i = 1, m do
-               local u_list = {"u", "ü", "o", "ö"}
+                       if math.random() < 0.5 then
+                               u = u:upper()
+                       end
 
-               local u = u_list[math.random(#u_list)]
-               local w = "w"
+                       if math.random() < 0.5 then
+                               w = w:upper()
+                       end
 
-               if math.random() < 0.5 then
-                       u = u:upper()
-               end
+                       msg = msg .. u .. w .. u
 
-               if math.random() < 0.5 then
-                       w = w:upper()
+                       if i ~= m then
+                               msg = msg .. " "
+                       end
                end
 
-               msg = msg .. u .. w .. u
-
-               if i ~= m then
-                       msg = msg .. " "
+               furrybot.send(msg, furrybot.colors.system)
+       end,
+}
+
+furrybot.commands.extinct = {
+       func = function(name, species)
+               if species then
+                       species = furrybot.uppercase(species .. (species:sub(#species, #species):lower() == "s" and "" or "s"))
+                       furrybot.ping_message(name, species  .. " are " .. (furrybot.strrandom(species, 420, 0, 1) == 0 and "not " or "") .. "extinct." , furrybot.colors.system)
+               else
+                       furrybot.error_message(name, "You need to specify a species")
                end
-       end
-
-       furrybot.send(msg, furrybot.colors.system)
-end
-
-function furrybot.commands.extinct(name, species)
-       if species then
-               furrybot.ping_message(name, species:sub(1, 1):upper() .. species:sub(2, #species) .. (species:sub(#species, #species):lower() == "s" and "" or "s") .. " are " .. (furrybot.strrandom(species, 420, 0, 1) == 0 and "not " or "") .. "extinct." , furrybot.colors.system)
-       else
-               furrybot.error_message(name, "You need to specify a species")
-       end
-end
-
-function furrybot.commands.german(name)
-       local messages = {
-               "Schnauze!",
-               "Sprich Deutsch, du Hurensohn!",
-               "NEIN NEIN NEIN NEIN NEIN NEIN",
-               "Deine Mutter",
-               "Das war ein BEFEHL!",
-               "Das bleibt hier alles so wie das hier ist!",
-               "Scheißße",
-               "Digga was falsch bei dir",
-               "Lass mich deine Arschfalten sehen",
-               "Krieg mal deinen Ödipuskomplex unter Kontrolle",
-               "Meine Nudel ist 30cm lang und al dente",
-               "Wie die Nase eines Mannes, so auch sein Johannes.",
-       }
-
-       local msg = messages[math.random(#messages)]
-       local stripe = math.floor(#msg / 3)
-
-       furrybot.ping_message(name, msg:sub(1, stripe) .. C("red") .. msg:sub(stripe + 1, stripe * 2) .. C("yellow") .. msg:sub(stripe * 2 + 1, #msg), C("black"))
-end
-
-function furrybot.commands.color(name)
-       local color = string.format("#%06x", math.random(16777216) - 1):upper()
-
-       furrybot.ping_message(name, "Here's your color: " .. C(color) .. color, furrybot.colors.system)
-end
-
-function furrybot.commands.book(name)
-       local books = {
-               "Johann Wolfgang von Goethe - Faust, Der Tragödie Erster Teil",
-               "Johann Wolfgang von Goethe - Faust, Der Tragödie Zweiter Teil",
-               "Karl Marx & Friedrich Engels - The Communist Manifesto",
-               "Brian Kernhigan & Dennis Ritchie - The C Programming Language",
-               "Heinrich Heine - Die Harzreise",
-               "Johann Wolfgang von Goethe - Die Leiden des jungen Werther",
-               "Friedrich Schiller - Die Jungfrau von Orleans",
-               "Theodor Fontane - Irrungen, Wirrungen",
-               "Friedrich Schiller - Die Räuber",
-               "Theodor Storm - Der Schimmelreiter",
-               "Josef von Eichendorff - Aus dem Leben eines Taugenichts",
-               "Richard Esplin - Advanced Linux Programming",
-               "Joey de Vries - Learn OpenGL",
-               "Gerard Beekmans - Linux From Scratch",
-       }
-
-       furrybot.ping_message(name, books[math.random(#books)], furrybot.colors.system)
-end
-
-function furrybot.commands.video(name)
-       furrybot.ping_message(name, "https://youtube.com/watch?v=dQw4w9WgXcQ", furrybot.colors.system)
-end
+       end,
+}
+
+furrybot.commands.german = {
+       func = function(name)
+               local messages = {
+                       "Schnauze!",
+                       "Sprich Deutsch, du Hurensohn!",
+                       "NEIN NEIN NEIN NEIN NEIN NEIN",
+                       "Deine Mutter",
+                       "Das war ein BEFEHL!",
+                       "Das bleibt hier alles so wie das hier ist!",
+                       "Scheißße",
+                       "Digga was falsch bei dir",
+                       "Lass mich deine Arschfalten sehen",
+                       "Krieg mal deinen Ödipuskomplex unter Kontrolle",
+                       "Meine Nudel ist 30cm lang und al dente",
+                       "Wie die Nase eines Mannes, so auch sein Johannes.",
+               }
+
+               local msg = messages[math.random(#messages)]
+               local stripe = math.floor(#msg / 3)
+
+               furrybot.ping_message(name, msg:sub(1, stripe) .. C("red") .. msg:sub(stripe + 1, stripe * 2) .. C("yellow") .. msg:sub(stripe * 2 + 1, #msg), C("black"))
+       end,
+}
+
+furrybot.commands.color = {
+       func = function(name)
+               local color = string.format("#%06x", math.random(16777216) - 1):upper()
+
+               furrybot.ping_message(name, "Here's your color: " .. C(color) .. color, furrybot.colors.system)
+       end,
+}
+
+furrybot.commands.book = {
+       func = function(name)
+               local books = {
+                       "Johann Wolfgang von Goethe - Faust, Der Tragödie Erster Teil",
+                       "Johann Wolfgang von Goethe - Faust, Der Tragödie Zweiter Teil",
+                       "Karl Marx & Friedrich Engels - The Communist Manifesto",
+                       "Brian Kernhigan & Dennis Ritchie - The C Programming Language",
+                       "Heinrich Heine - Die Harzreise",
+                       "Johann Wolfgang von Goethe - Die Leiden des jungen Werther",
+                       "Friedrich Schiller - Die Jungfrau von Orleans",
+                       "Theodor Fontane - Irrungen, Wirrungen",
+                       "Friedrich Schiller - Die Räuber",
+                       "Theodor Storm - Der Schimmelreiter",
+                       "Josef von Eichendorff - Aus dem Leben eines Taugenichts",
+                       "Richard Esplin - Advanced Linux Programming",
+                       "Joey de Vries - Learn OpenGL",
+                       "Gerard Beekmans - Linux From Scratch",
+               }
+
+               furrybot.ping_message(name, books[math.random(#books)], furrybot.colors.system)
+       end,
+}
+
+furrybot.commands.video = {
+       func = function(name)
+               furrybot.ping_message(name, "https://youtube.com/watch?v=dQw4w9WgXcQ", furrybot.colors.system)
+       end,
+}
 
 return function(_http, _env, _storage)
        http, env, storage = _http, _env, _storage