Serverguide by AiTechEye
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

188 lines
7.6KB

  1. local serverguide_Book_title="The server guide"
  2. local serverguide_Tab_Text_1=[[
  3. ### DESCRIPTION DU SERVEUR ###
  4. Bienvenue sur "Notre Ami Le Cube" ! (ou NALC)
  5. Ce serveur Minetest hautement moddé est conçu pour être équilibré et vous offre de multiples
  6. possibilités dans votre façon de jouer.
  7. Soyez un constructeur, un ingénieur, un guerrier, un magicien ou même un trader.
  8. Les possibilités sont presque infinies.
  9. Mais attention, survivre sera un vrai défi.
  10. -Ce serveur est hébergé/maintenue par Sys4-
  11. ### SERVEUR IRC ###
  12. irc.sys4.fr:6697 - Canal #NALC
  13. ### Codes Sources ###
  14. - Installation serveur : https://sys4.fr/gitea/nalc/nalc-server.git
  15. - Mods du serveur : https://sys4.fr/gitea/nalc/nalc-server-mods.git
  16. - Jeux nalc_game : https://sys4.fr/gitea/nalc/nalc_game.git
  17. - Minetest : https://gitlab.com/minetest/minetest.git
  18. ### Spécifications du serveur ###
  19. - Débit Internet : 34MB Down / 8MB Up
  20. - CPU : AMD FX-8320 - RAM : 8GO - SE : Gentoo Linux
  21. - Map & Players Backend : Postgresql - Auth Backend : SQLite3
  22. - Générateur de terrain : Valleys Mapgen - Graine : 1681440164076556961
  23. ]]
  24. local serverguide_Tab_Text_2= [[
  25. ### Règles en Français ###
  26. Tapez la commande /rules
  27. Pour montrer les règles de l'irc, tapez la commande /irc.
  28. ### Rules in English ###
  29. Type the command /rules
  30. To show irc rules, type the command /irc.
  31. ]]
  32. local serverguide_Tab_Text_3= [[
  33. Rulers info (moderator or admins)
  34. - Administrateur/Administrator : sys4
  35. - Moderators/Moderateurs : Grossam, Getsuga, sys4_2
  36. * Si vous voulez devenir modérateur, donc pour obtenir des droits spéciaux et pouvoir
  37. en délivrer à d'autres joueurs, il faudra bien sûr que vous ayez fais vos preuves sur le serveur.
  38. La décision m'appartiendra exclusivement de délivrer les droits de modération aux personnes
  39. que je jugerai comme compétentes pour les obtenir.
  40. ]]
  41. local serverguide_Tab_Text_4=[[
  42. ### Commandes ###
  43. - /guide : Montrer ce guide / show this guide
  44. - /help <all|command> : Obtenir l'aide complète ou d'une commande / Get complete help or help on
  45. a command
  46. - /hotbar <nombre> : Changer la taille de la barre d'inventaire (23 Max).
  47. - /volume : Modifier les volumes sonores de la musique ou des effets
  48. - /report : Laisser un message aux modérateurs (rapporter un bug, faire une demande, informer sur
  49. le comportement d'un joueur, etc.)
  50. - /mail <player> : Envoyer un courriel à quelqu'un
  51. - /inbox : Lire ses courriels
  52. - /news : Voir les news du serveur
  53. ]]
  54. local serverguide_Tab_Text_5=[[
  55. ### Informations Diverses ###
  56. - Suivre l'évolution du serveur : https://sys4.fr/gitea/nalc-server-mods/issues
  57. - Vous souhaitez participer à l'évolution du serveur ? Contactez l'administrateur par mail, ou
  58. venez sur l'irc.
  59. ### Histoire du serveur ###
  60. Ce serveur à l'origine a été créé avec l'intention première de réaliser une série de vidéos Minetest
  61. sur Youtube co-animée par moi (sys4) https://www.youtube.com/channel/UCGPpNs57nKiGlK24hPvq2Ig
  62. et Cyberpangolin https://www.youtube.com/user/CyberPangolin
  63. Comme il a fallu faire vite pour débuter, nous avons décidé de forker le serveur MFF Classic
  64. et de lui rajouter les quelques mods dont nous avions besoins pour nos vidéos.
  65. Puis, avec l'expérience acquise dans l'administration du serveur et le développement de mods
  66. et aussi suite au départ de Cyberpangolin, j'ai continué à faire évoluer le serveur sur sa propre voie.
  67. Le serveur n'était toujours pas public et pourtant grâce au bouche à oreille, quelques joueurs
  68. confirmés sont venus s'installer petit à petit et y viennent régulièrement encore aujourd'hui.
  69. Aujourd'hui le serveur a pris un tournant important, car son code source n'est plus rattaché
  70. à la plate-forme GitHub depuis son rachat par "$vous savez qui$".
  71. Du coup j'en ai profité pour le reprendre depuis le début.
  72. Il ne reste plus grand chose de l'original, je n'ai gardé que quelques codes sources de l'original de MFF.
  73. De ce fait je ne sais pas si je peux encore parler d'un fork à ce stade, mais en tout cas il
  74. en garde une certaine inspiration.
  75. ]]
  76. local serverguide_Tab_1="Server"
  77. local serverguide_Tab_2="Règles/Rules"
  78. local serverguide_Tab_3="Staff"
  79. local serverguide_Tab_4="Commands"
  80. local serverguide_Tab_5="Divers"
  81. local function serverguide_guide(user,text_to_show)
  82. local text=""
  83. if text_to_show==1 then text=serverguide_Tab_Text_1 end
  84. if text_to_show==2 then text=serverguide_Tab_Text_2 end
  85. if text_to_show==3 then text=serverguide_Tab_Text_3 end
  86. if text_to_show==4 then text=serverguide_Tab_Text_4 end
  87. if text_to_show==5 then text=serverguide_Tab_Text_5 end
  88. local form="size[8.5,9]" ..default.gui_bg..default.gui_bg_img..
  89. "button[0,0;1.5,1;tab1;" .. serverguide_Tab_1 .. "]" ..
  90. "button[1.5,0;1.5,1;tab2;" .. serverguide_Tab_2 .. "]" ..
  91. "button[3,0;1.5,1;tab3;" .. serverguide_Tab_3 .. "]" ..
  92. "button[4.5,0;1.5,1;tab4;" .. serverguide_Tab_4 .. "]" ..
  93. "button[6,0;1.5,1;tab5;" .. serverguide_Tab_5 .. "]" ..
  94. "button_exit[7.5,0; 1,1;tab6;X]" ..
  95. "label[0,1;"..text .."]"
  96. minetest.show_formspec(user:get_player_name(), "serverguide",form)
  97. end
  98. minetest.register_on_player_receive_fields(function(player, form, pressed)
  99. if form=="serverguide" then
  100. if pressed.tab1 then serverguide_guide(player,1) end
  101. if pressed.tab2 then serverguide_guide(player,2) end
  102. if pressed.tab3 then serverguide_guide(player,3) end
  103. if pressed.tab4 then serverguide_guide(player,4) end
  104. if pressed.tab5 then serverguide_guide(player,5) end
  105. end
  106. end)
  107. minetest.register_tool("serverguide:book", {
  108. description = serverguide_Book_title,
  109. inventory_image = "default_book.png",
  110. on_use = function(itemstack, user, pointed_thing)
  111. serverguide_guide(user,1)
  112. return itemstack
  113. end,
  114. on_place = function(itemstack, placer, pointed_thing)
  115. local pos = pointed_thing.under
  116. local node = minetest.get_node_or_nil(pos)
  117. local def = node and minetest.registered_nodes[node.name]
  118. if not def or not def.buildable_to then
  119. pos = pointed_thing.above
  120. node = minetest.get_node_or_nil(pos)
  121. def = node and minetest.registered_nodes[node.name]
  122. if not def or not def.buildable_to then return itemstack end
  123. end
  124. if minetest.is_protected(pos, placer:get_player_name()) then return itemstack end
  125. local fdir = minetest.dir_to_facedir(placer:get_look_dir())
  126. minetest.set_node(pos, {name = "serverguide:guide",param2 = fdir,})
  127. itemstack:take_item()
  128. return itemstack
  129. end
  130. })
  131. minetest.register_alias("guide", "serverguide:book")
  132. minetest.register_craft({output = "serverguide:book",recipe = {{"default:stick","default:stick"},}})
  133. minetest.register_node("serverguide:guide", {
  134. description = serverguide_Book_title,
  135. drawtype = "nodebox",
  136. paramtype = "light",
  137. paramtype2 = "facedir",
  138. is_ground_content = false,
  139. drop="serverguide:book",
  140. node_box = {
  141. type = "fixed",
  142. fixed = {0.35,-0.3,0.45,-0.35,-0.5,-0.45},
  143. },
  144. tiles = {
  145. "default_gold_block.png^default_book.png",
  146. "default_gold_block.png",
  147. "default_gold_block.png",
  148. "default_gold_block.png",
  149. "default_gold_block.png",
  150. "default_gold_block.png",},
  151. groups = {cracky=1,oddly_breakable_by_hand=3},
  152. sounds=default.node_sound_wood_defaults(),
  153. on_construct = function(pos)
  154. local meta = minetest.get_meta(pos)
  155. meta:set_string("infotext", serverguide_Book_title)
  156. end,
  157. on_rightclick = function(pos, node, clicker)
  158. serverguide_guide(clicker,1)
  159. end
  160. })
  161. minetest.register_on_newplayer(function(player)
  162. player:get_inventory():add_item("main", "serverguide:book")
  163. end)
  164. minetest.register_chatcommand("guide", {
  165. params = "",
  166. description = serverguide_Book_title,
  167. func = function(name, param)
  168. serverguide_guide(minetest.get_player_by_name(name),1)
  169. return true
  170. end
  171. })
  172. minetest.log("action", "[serverguide] loaded.")