serverguide/init.lua

187 lines
7.6 KiB
Lua

local serverguide_Book_title="The server guide"
local serverguide_Tab_Text_1=[[
### DESCRIPTION DU SERVEUR ###
Bienvenue sur "Notre Ami Le Cube" ! (ou NALC)
Ce serveur Minetest hautement moddé est conçu pour être équilibré et vous offre de multiples
possibilités dans votre façon de jouer.
Soyez un constructeur, un ingénieur, un guerrier, un magicien ou même un trader.
Les possibilités sont presque infinies.
Mais attention, survivre sera un vrai défi.
-Ce serveur est hébergé/maintenue par Sys4-
### SERVEUR IRC ###
irc.sys4.fr:6697 - Canal #NALC
### Codes Sources ###
- Scripts Serveur : https://sys4.fr/gitea/nalc/nalc-server.git
- Mods du serveur : https://sys4.fr/gitea/nalc/nalc-server-mods.git
- Jeux nalc_game : https://sys4.fr/gitea/nalc/nalc_game.git
- Minetest : https://gitlab.com/minetest/minetest.git
### Spécifications du serveur ###
- Débit Internet : 42MB Down / 9MB Up
- CPU : AMD FX-8370 - RAM : 8GO - SE : Gentoo Linux
- Map & Players Backend : Postgresql - Auth Backend : SQLite3
- Générateur de terrain : Valleys Mapgen - Graine : 1681440164076556961
]]
local serverguide_Tab_Text_2= [[
### Règles en Français ###
Tapez la commande /rules
Pour montrer les règles de l'irc, tapez la commande /irc.
### Rules in English ###
Type the command /rules
To show irc rules, type the command /irc.
]]
local serverguide_Tab_Text_3= [[
Rulers info (moderator or admins)
- Administrateur/Administrator : sys4
- Moderators/Moderateurs : Cyberpangolin, farfadet46, Grossam, Getsuga
* Si vous voulez devenir modérateur, donc pour obtenir des droits spéciaux et pouvoir
en délivrer à d'autres joueurs, il faudra bien sûr que vous ayez fais vos preuves sur le serveur.
La décision m'appartiendra exclusivement de délivrer les droits de modération aux personnes
que je jugerai comme compétentes pour les obtenir.
]]
local serverguide_Tab_Text_4=[[
### Commandes ###
- /guide : Montrer ce guide / show this guide
- /help [all|command] : Obtenir l'aide complète ou d'une commande / Get complete help or help on
a command
- /hotbar <n> : Changer la taille de la barre d'inventaire (23 Max).
- /volume : Modifier les volumes sonores de la musique ou des effets
- /report : Laisser un message aux modérateurs (rapporter un bug, faire une demande, informer sur
le comportement d'un joueur, etc.)
- /mail <player> : Envoyer un courriel à quelqu'un
- /inbox : Lire ses courriels
- /news : Voir les news du serveur
]]
local serverguide_Tab_Text_5=[[
### Informations Diverses ###
- Suivre l'évolution du serveur : https://sys4.fr/gitea/nalc-server-mods/issues
- Vous souhaitez participer à l'évolution du serveur ? Contactez l'administrateur par mail, ou
venez sur l'irc.
### Histoire du serveur ###
Ce serveur à l'origine a été créé avec l'intention première de réaliser une série de vidéos Minetest
sur Youtube co-animée par moi (sys4) https://www.youtube.com/channel/UCGPpNs57nKiGlK24hPvq2Ig
et Cyberpangolin https://www.youtube.com/user/CyberPangolin
Comme il a fallu faire vite pour débuter, nous avons décidé de forker le serveur MFF Classic
et de lui rajouter les quelques mods dont nous avions besoins pour nos vidéos.
Puis, avec l'expérience acquise dans l'administration du serveur et le développement de mods, j'ai continué à faire évoluer le serveur sur sa propre voie.
Le serveur n'était toujours pas public et pourtant grâce au bouche à oreille, quelques joueurs
confirmés sont venus s'installer petit à petit et y viennent régulièrement encore aujourd'hui.
Aujourd'hui le serveur a pris un tournant important, car son code source n'est plus rattaché
à la plate-forme GitHub depuis son rachat par "$vous savez qui$".
Du coup j'en ai profité pour le reprendre depuis le début.
Il ne reste plus grand chose de l'original, je n'ai gardé que quelques codes sources de l'original de MFF.
De ce fait je ne sais pas si je peux encore parler d'un fork à ce stade, mais en tout cas il
en garde certaine traces.
]]
local serverguide_Tab_1="Server"
local serverguide_Tab_2="Règles/Rules"
local serverguide_Tab_3="Staff"
local serverguide_Tab_4="Commands"
local serverguide_Tab_5="Divers"
local function serverguide_guide(user,text_to_show)
local text=""
if text_to_show==1 then text=serverguide_Tab_Text_1 end
if text_to_show==2 then text=serverguide_Tab_Text_2 end
if text_to_show==3 then text=serverguide_Tab_Text_3 end
if text_to_show==4 then text=serverguide_Tab_Text_4 end
if text_to_show==5 then text=serverguide_Tab_Text_5 end
local form="size[8.5,9]" ..default.gui_bg..default.gui_bg_img..
"button[0,0;1.5,1;tab1;" .. serverguide_Tab_1 .. "]" ..
"button[1.5,0;1.5,1;tab2;" .. serverguide_Tab_2 .. "]" ..
"button[3,0;1.5,1;tab3;" .. serverguide_Tab_3 .. "]" ..
"button[4.5,0;1.5,1;tab4;" .. serverguide_Tab_4 .. "]" ..
"button[6,0;1.5,1;tab5;" .. serverguide_Tab_5 .. "]" ..
"button_exit[7.5,0; 1,1;tab6;X]" ..
"label[0,1;"..text .."]"
minetest.show_formspec(user:get_player_name(), "serverguide",form)
end
minetest.register_on_player_receive_fields(function(player, form, pressed)
if form=="serverguide" then
if pressed.tab1 then serverguide_guide(player,1) end
if pressed.tab2 then serverguide_guide(player,2) end
if pressed.tab3 then serverguide_guide(player,3) end
if pressed.tab4 then serverguide_guide(player,4) end
if pressed.tab5 then serverguide_guide(player,5) end
end
end)
minetest.register_tool("serverguide:book", {
description = serverguide_Book_title,
inventory_image = "default_book.png",
on_use = function(itemstack, user, pointed_thing)
serverguide_guide(user,1)
return itemstack
end,
on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.under
local node = minetest.get_node_or_nil(pos)
local def = node and minetest.registered_nodes[node.name]
if not def or not def.buildable_to then
pos = pointed_thing.above
node = minetest.get_node_or_nil(pos)
def = node and minetest.registered_nodes[node.name]
if not def or not def.buildable_to then return itemstack end
end
if minetest.is_protected(pos, placer:get_player_name()) then return itemstack end
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
minetest.set_node(pos, {name = "serverguide:guide",param2 = fdir,})
itemstack:take_item()
return itemstack
end
})
minetest.register_alias("guide", "serverguide:book")
minetest.register_craft({output = "serverguide:book",recipe = {{"default:stick","default:stick"},}})
minetest.register_node("serverguide:guide", {
description = serverguide_Book_title,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
drop="serverguide:book",
node_box = {
type = "fixed",
fixed = {0.35,-0.3,0.45,-0.35,-0.5,-0.45},
},
tiles = {
"default_gold_block.png^default_book.png",
"default_gold_block.png",
"default_gold_block.png",
"default_gold_block.png",
"default_gold_block.png",
"default_gold_block.png",},
groups = {cracky=1,oddly_breakable_by_hand=3},
sounds=default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", serverguide_Book_title)
end,
on_rightclick = function(pos, node, clicker)
serverguide_guide(clicker,1)
end
})
minetest.register_on_newplayer(function(player)
player:get_inventory():add_item("main", "serverguide:book")
end)
minetest.register_chatcommand("guide", {
params = "",
description = serverguide_Book_title,
func = function(name, param)
serverguide_guide(minetest.get_player_by_name(name),1)
return true
end
})
minetest.log("action", "[serverguide] loaded.")