X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=random.lua;h=aad94eb9c831420a661fe9db7002ec1126a70f93;hb=9ef2b8fe1f3a13784c12f8fbdcbbc1b0154ca689;hp=d828ac31b3f1c2ec01baf683ae6ad063c01e317c;hpb=aaa2c8446d437d3b383010bd6c768bfad91d72a4;p=furrybot.git diff --git a/random.lua b/random.lua index d828ac3..aad94eb 100644 --- a/random.lua +++ b/random.lua @@ -1,81 +1,131 @@ 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 + 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