From 8b9670a24bc30a654c6a4435248538fffabc717c Mon Sep 17 00:00:00 2001 From: Ombridride Date: Thu, 6 Nov 2014 01:01:40 +0100 Subject: [PATCH] Add "irc" mod and "noshout_messages" mod Smalls another fixe --- mods/_misc/init.lua | 10 ++-- mods/_misc/irc.lua | 84 ++++++++++++++++++++++++++++++ mods/_misc/nointeract_messages.lua | 4 +- mods/_misc/noshout_messages.lua | 12 +++++ mods/_misc/rules.lua | 2 +- 5 files changed, 106 insertions(+), 6 deletions(-) create mode 100644 mods/_misc/irc.lua create mode 100644 mods/_misc/noshout_messages.lua mode change 100755 => 100644 mods/_misc/rules.lua diff --git a/mods/_misc/init.lua b/mods/_misc/init.lua index 54e44405..408b0e84 100644 --- a/mods/_misc/init.lua +++ b/mods/_misc/init.lua @@ -10,13 +10,17 @@ dofile(minetest.get_modpath("_misc").."/chatcommands.lua") -- Rules dofile(minetest.get_modpath("_misc").."/rules.lua") +-- No Interact Messages +dofile(minetest.get_modpath("_misc").."/nointeract_messages.lua") + +-- irc +dofile(minetest.get_modpath("_misc").."/irc.lua") +-- No Shout Messages +dofile(minetest.get_modpath("_misc").."/noshout_messages.lua") -- Aliases dofile(minetest.get_modpath("_misc").."/aliases.lua") --- No Interact Messages -dofile(minetest.get_modpath("_misc").."/nointeract_messages.lua") - -- Craft Obsidian dofile(minetest.get_modpath("_misc").."/craft_obsidian.lua") diff --git a/mods/_misc/irc.lua b/mods/_misc/irc.lua new file mode 100644 index 00000000..7fba528e --- /dev/null +++ b/mods/_misc/irc.lua @@ -0,0 +1,84 @@ +# Based on https://github.com/ChaosWormz/mt_terms_of_use + +local IRC = [[ +-~= Règles du salon de chat IRC #minetestforfun@irc.inchra.net =~- + +Ces règles ont été établies le 1er Novembre 2014 par Mg et MinetestForFun (opérateurs du canal) + +1) Il ne sera toléré aucune transgressions aux règles du réseau InchraNet, sous peine de la sanction prévue par les administrateurs du réseau. +2) Il ne sera toléré aucune forme de violation des lois en vigueur dans les pays de résidence des participants, ainsi que ceux des hébergeurs des serveurs. +3) Il ne sera toléré aucune sorte d'insulte, de provocation gratuite, d'incitation à la haine, au meurtre, au suicide, ou toute autre forme d'atteinte au respect mutuel des utilisateurs de l'IRC. +4) Il ne sera toléré aucune forme de flood ainsi que de spam. Rappelez-vous qu'il est préférable d'utiliser un site de téléversion de texte (aussi nommé "pastebin"), tel que "pastebin.ubuntu.com" à chaque fois que vous désirez transmettre du code ou un long texte. + Le flood est l'action de saturer le chat de messages répétitifs, inutiles, y compris les join/part, grossiers, sans aucun rapport avec la conversation et au détriment des participants + Le spam est l'action de faire de la publicité pour quelque chose que ce soit sans l'accord d'un ayant droit ou d'un opérateur de canal. +5) Il ne sera toléré aucun pseudonyme à caractère sexuel, haineux, contenant des termes ou propos indésirables sur le salon. +6) Il ne sera toléré aucune forme d'harcèlement moral ou à caractère sexuel, y compris par messages privés. +7) Il ne sera toléré aucun type de discrimination contre quelque participant que ce soit, ni aucune forme d'insulte envers les opérateurs, semi-opérateurs et administrateurs d'InchraNet. + +Voici les sanctions prévues pour les infractions aux règles ci-dessus. ++-----------------------+-----------------------------------+---------------------------------------+ +| Niveau d'infraction : | Infraction(s) commise(s) : | Sanctions appliquées : | +| | Manque de respect enver autrui | Devoice une demi-journée | +| Niveau DIRT | Provocation envers autrui | Devoie une journée | +| | Insultes envers autrui | Kick + devoice une journée | ++-----------------------+-----------------------------------+---------------------------------------+ +| | Récidive d'infraction niveau dirt | Kick + Ban 1/2 journée | +| Niveau STONE | Flood, Discrimination | Kick + devoice deux heures | +| | Spam | Kick + devoice 1 jour + ban 1/2 journée | ++-----------------------+-----------------------------------+---------------------------------------+ +| | Récidive d'infraction niveau stone | Kick + Ban 4 jours + devoice 5 jours | +| Niveau MESE | Contenu à caractère sexuel | Kick + Ban 1 semaine + devoice 5 jours | +| | Irrespect envers l'équipe | Kick + Ban 10 jours + devoice 8 jours | ++-----------------------+-----------------------------------+---------------------------------------+ +| | Récidive d'infraction niveau mese | Kick + Ban 1 mois + devoice 2 semaines | +| Niveau OBSIDIAN | Violation des lois en vigueur | Kick + Ban définitif + Gline | +| | Violation des règles d'InchraNet | Kick + Ban définitif + Gline | ++-----------------------+-----------------------------------+---------------------------------------+ + + +Autres règles de bienséances : + +- Ne demandez pas à faire partie des opérateurs/semi-opérateurs du canal. +- Attention, l'abus de query et msg est dangereux pour la santé. +- Inutile de faire étalage de votre vie privée si c'est hors contexte ou si personne n'est intéressé par celle ci. +- Nous ne sanctionnons bien évidemment pas le hors-sujet, toutefois, s'il est évitable ça ne peut qu’être toujours un plus ! +- Le respect d'autrui est important à nos yeux. +- En cas de problème, n'hésitez pas à contacter le staff. +]] + +local function make_formspec() + local size = { "size[10,8]" } + table.insert(size, "textarea[0.5,0.5;9.5,8;TOS;Voici les regles, cliquez sur Accepter si vous etes d'accord avec;"..IRC.."]") + table.insert(size, "button_exit[6,7.4;1.5,0.5;accept;J'accepte]") + table.insert(size, "button[7.5,7.4;1.5,0.5;decline;Je refuse]") + return table.concat(size) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "irc" then return end + local name = player:get_player_name() + if fields.accept then + minetest.chat_send_player(name, "Merci d'avoir accepte les regles, vous etes maintenant capable de parler.") + minetest.chat_send_player(name, "Pour plus d'informations tapez /news") + local privs = minetest.get_player_privs(name) + privs.shout = true + minetest.set_player_privs(name, privs) + end + return + elseif fields.decline then + minetest.kick_player(name, "Aurevoir ! Vous devez accepter les règles de l'irc pour jouer sur le serveur (revennez si vous changez d'avis).") + return + end +end) + +minetest.register_chatcommand("irc",{ + params = "", + description = "Montre les regles de l'irc", + privs = {spawn=true}, + func = function (name,params) + local player = minetest.get_player_by_name(name) + minetest.after(1, function() + minetest.show_formspec(name, "irc", make_formspec()) + end) + end +}) diff --git a/mods/_misc/nointeract_messages.lua b/mods/_misc/nointeract_messages.lua index cd5168a8..5fcbe152 100755 --- a/mods/_misc/nointeract_messages.lua +++ b/mods/_misc/nointeract_messages.lua @@ -6,7 +6,7 @@ minetest.register_globalstep(function(dtime) for _,player in ipairs(minetest.get_connected_players()) do local name = player:get_player_name() if not minetest.check_player_privs(name, {interact=true}) then - minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir construire et intéragir sur ce serveur, tu dois lire les règles du serveur et les accepter. Tapez /rules.") + minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir construire et intéragir sur ce serveur, tu dois lire les règles du serveur et les accepter. Tape /rules.") end end -end) +end) \ No newline at end of file diff --git a/mods/_misc/noshout_messages.lua b/mods/_misc/noshout_messages.lua new file mode 100644 index 00000000..8ab9d748 --- /dev/null +++ b/mods/_misc/noshout_messages.lua @@ -0,0 +1,12 @@ +local TIMER = 0 +minetest.register_globalstep(function(dtime) + TIMER = TIMER + dtime + if TIMER < 25 then return end + TIMER = 0 + for _,player in ipairs(minetest.get_connected_players()) do + local name = player:get_player_name() + if not minetest.check_player_privs(name, {interact=true}) then + minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir communiquer avec les autres joueurs sur ce serveur, tu dois lire les règles de l'irc et les accepter. Tape /irc.") + end + end +end) \ No newline at end of file diff --git a/mods/_misc/rules.lua b/mods/_misc/rules.lua old mode 100755 new mode 100644 index 2aac57c8..746ab358 --- a/mods/_misc/rules.lua +++ b/mods/_misc/rules.lua @@ -37,7 +37,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end return elseif fields.decline then - minetest.kick_player(name, "Aurevoir ! Vous devez accepter les règles pour jouer sur le serveur (revennez si vous changez d'avoir).") + minetest.kick_player(name, "Aurevoir ! Vous devez accepter les règles pour jouer sur le serveur (revennez si vous changez d'avis).") return end end)