return function(_http, _env, _storage)
http, env, storage = _http, _env, _storage
- for _, f in ipairs {"nsfw", "roleplay", "death", "economy", "random", "http", "operator"} do
+ for _, f in ipairs {"nsfw", "roleplay", "death", "economy", "random", "http", "operator", "bullshit"} do
local func, err = env.loadfile("clientmods/furrybot/" .. f .. ".lua")
if not func then
--- /dev/null
+local http, env, storage
+local C = minetest.get_color_escape_sequence
+
+-- taken from 9front source code: /rc/bin/bullshit
+local bullshit_code = [[
+function min(a, b){
+ if(a > b)
+ return b
+ else
+ return a
+}
+function suffix(){
+ if(hassuffix = (rand() < 0.2))
+ return suffixes[int(rand() * nsuffix)]
+ return ""
+}
+$2 == "*" { protocol[nprotocol++] = $1; next }
+$2 == "$" { end[nend++] = $1; next }
+$2 == "%" { suffixes[nsuffix++] = $1; next }
+$2 == "^" { start[nstart++] = $1; next }
+$2 == "|" { noend[nword] = 1 }
+{ word[nword++] = $1; next }
+END {
+ srand()
+ last = -1
+ out = 0
+ total = int(rand() * 7) + 3
+ n = int(rand() * min(total - out, 3))
+ for(i = 0; i < n; i++)
+ printf "%s ", start[int(rand() * nstart)]
+ out += n
+ hassuffix = 0
+ n = int(rand() * min(total - out, 3))
+ for(i = 0; i < n; i++)
+ printf "%s%s ", word[last = int(rand() * nword)], suffix()
+ out += n
+ if(rand() > 0.5){
+ n = int(rand() * 3)
+ for(i = 0; i < n; i++)
+ printf "%s %s", protocol[int(rand() * nprotocol)], (i != n-1) ? "over " : ""
+ out += n
+ last = -1
+ hassuffix = 0
+ }
+ n = int(rand() * min(total - out, 3))
+ if(out + n == 1 || last == -1)
+ n += 2
+ for(i = 0; i < n; i++)
+ printf "%s%s ", word[last = int(rand() * nword)], suffix()
+ if(rand() < 0.1 || (last >= 0 && noend[last]) || hassuffix)
+ printf "%s ", end[int(rand() * nend)]
+ print ""
+}
+]]
+
+function furrybot.commands.bullshit(name)
+ local pf = env.io.popen("awk '" .. bullshit_code .. "' clientmods/furrybot/bullshit", "r")
+ local bullshit = pf:read("*a")
+ furrybot.ping_message(name, bullshit:sub(1, #bullshit - 2), furrybot.colors.system)
+end
+
+return function(_http, _env, _storage)
+ http, env, storage = _http, _env, _storage
+end