1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

  2. Venez taper la discute, demander de l'aide, bosser en texte ou en vocal sur le discord de skript-mc

Shield - Operator Defense 0.3.1b

Skript Anti-Force OP et de Défense pour les serveurs Crack et Premium !

  1. Gaby2907
    [​IMG]

    Version actuelle: 0.3.1b - 1.8 à 1.12
    Prochaine version: 0.3.2a

    Présentation:

    Shield est un skript de protection d'anti force op. Bien souvent les personnes qui s’amuse a grief son serveur n'est pas une chose des plus fun et je fais ce skript pour moi ainsi que pour vous. Il n'est pas fait n'importe comment ni arraché par les cheveux car il m'a nécessité beaucoup de temps et de recherche. Je me suis basé sur mon expérience en tend que victime de cela et je vous met à disposition ce super outil.
    C'est mon plus gros projet depuis que je fais du skript et je suis fier de vous le partager !


    Les fonctionnalités:

    J'ai essayé de faire un maximum de fonctionnalités pour ce skript afin que vous puissiez le modifier facilement et rapidement sans que vous ayez la nécessité de modifier le skript et à le reload. (Il est relativement lourd a reload)
    Contrairement à mes autres skripts, je vais faire en sorte de l'optimiser un maximum avec des fonctions et à l’alléger le plus possible.


    Deux fichiers de configurations vont être créés dans le dossier "plugins/Shield":
    - Shield.yml : Modifier la configuration du systeme
    - Message.yml : Modifier les messages du systeme


    Beaucoup d'options sont possible a changer via le fichier "Shield.yml" pour le systeme pour éviter un reload.
    Vous n'êtes pas obligé à modifier les messages dans le fichier "Message.yml" mais si vous souhaitez reformuler des phrases, faites vous plaisir !


    Les titles et les subtitles sont utilisés pour embellir le tout lors de l’exécution des alertes: plus facile à voir donc une prévention mieux assurée !

    Le système de "check de permissions" a modifier des grades est adapté pour le plugin GroupManager et PermissionEx. Il va prendre aussi le contrôle avec WorldEdit.

    Une banlist des griefers est mise en ligne pour vous avertir ou pour bannir automatiquement les griefers si vous activez la fonctionnalité. Elle sera mit à jour régulièrement et je compte aussi sur vous pour me faire partager d'autres joueurs griefers. Les pseudos ne sont pas mit au hasard car je me suis basé sur des vidéos et sur des preuves directes donc aucun n'abus n'est fait de se coté là. Blacklist: ICI
    Vous pouvez ajouter manuellement des personnes à la blacklist en enregistrant soit le Pseudo ou le UUID ou l’IP.


    Les permissions:

    Les permissions sont personnalisables dans le fichier config du skript.
    Cependant quelques permissions vont devoir être mise dans les grades pour utiliser les commandes du Shield.
    - shield.op.permission (Permission des Opérateurs)
    - shield.admin.permission (Permission des Administrateurs)
    - shield.mod.permission (Permission des Modérateurs)
    - shield.console.execution (Permission qui peut être attribuée aussi pour les opérateurs)



    Add-On (Pas tous utilisés pour la réalisation du skript !) :

    Skript2.2 (Obligatoire)
    SkUtilities (Obligatoire)
    WildSkript (Obligatoire)
    SkQuery (Obligatoire)
    skUtilities.v0.9.0 (Obligatoire)
    TuSKe 1.8.2-de.6 (Obligatoire bientôt)
    skRayFall-1.3
    skLib 1.1.1 (Obligatoire)
    Skellett (Obligatoire)
    Skript-mirror (Obligatoire)
    MundoSk (Obligatoire)


    (Autres versions que 1.8 et 1.10.2 non testées !)

    Informations très importantes !

    Avant de lancer le skript Shield et son Pré-Chargeur, assurez vous de compléter les trois options du Pré-Chargeur et à deop toute les personnes opérateurs. Sinon les opérateurs non enregistrés du Shield seront banni.

    [​IMG]
    Ce systeme est utilisé pour une combinaison de sécurité presques impossible à reproduire pour les griefers. Cette combinaison permet de mettre une bypass du shield (seul cette personne est une bypass)

    API: (DISPONIBLE !)

    Wiki Entier avec Bugs Tracker et plein d'autre truc ! ICI


    Comment lier son skript avec le Shield ?
    Pour faire communiquer votre skript avec le Shield, vous allez devoir utiliser une liaison que je vous ai préparer où vous aurez juste à copier/coller dans votre skript.

    J'ai pas très bien optimisé la partie de communication donc sur les serveurs pas très puissant, ça peut Time Out par moment quand on reload le skript qui contient la communication... je compte régler le problème très vite !

    Les quelques lignes à rajouter à votre skript:
    Code:
    #========================================================================================================================================================================================
    #
    #                   Addon Shield
    #
    #========================================================================================================================================================================================
    #========================================================================================================================================================================================
    # Fonction
    #========================================================================================================================================================================================
    
    function chechShield(p:player ,mdp: text):
        set {_shieldAPI.isLoad} to single value "API-Loaded" get of "plugins/Shield/ShieldAPI.yml"
        set {_shieldAPI.mdp} to single value "MDPCommunicationAPI" get of "plugins/Shield/ShieldAPI.yml"
        message "&c[&6ShieldAPI&c] &7Check de l'existance du plugin ShieldAPI" to {_p}
        if file "plugins/Skript/scripts/ShieldAPI.sk" doesn't exists:
            message "&c[&6ShieldAPI&c] &cLe ShieldAPI n'a pas été trouvé !" to {_p}
            message "&c[&6ShieldAPI&c] &cAbandon de la liaison" to {_p}
            stop
        else:
            if {_mdp} is "%{_shieldAPI.mdp}%":
                if {_shieldAPI.isLoad} is "yes":
                    message "&c[&6ShieldAPI&c] &aPlugin détécté !" to {_p}
                    wait 10 ticks
                    message "&c[&6ShieldAPI&c] &7Création de la liaison..." to {_p}
                    if file "plugins/Shield/Addons/%script name%.yml" doesn't exists:
                        if {shieldAPI.nameAddons::*} contains "%script name%":
                            message "&c[&6ShieldAPI&c] &cCe plugin fait déjà partie de la liste des add-ons !" to {_p}
                        else:
                            make {_p} execute command "/addAddonsShieldAPI %{_mdp}% %script name%"
                            message "&c[&6ShieldAPI&c] &aLiaison terminée" to {_p}
    
                    else:
                        message "&c[&6ShieldAPI&c] &cUn dossier du nom de ce plugin existe déjà !" to {_p}
                else:
                    message "&c[&6ShieldAPI&c] &cShieldAPI non chargé ! &cAbandon de la liaison" to {_p}
                    stop
            else:
                message "&c[&6ShieldAPI&c] &4Acces Denied ! &cAbandon de la liaison" to {_p}
                stop
    
    function goAPI(sd1: text,sd2: text,sd3: text,sd4: text,sd5: text,sd6: text,exe: text):
        set {_shieldAPI.isLoad} to single value "API-Loaded" get of "plugins/Shield/ShieldAPI.yml"
        set {_shieldAPI.mdp} to single value "MDPCommunicationAPI" get of "plugins/Shield/ShieldAPI.yml"
        if file "plugins/Skript/scripts/ShieldAPI.sk" exists:
            if {_sd1} is "%{_shieldAPI.mdp}%":
                if {_shieldAPI.isLoad} is "yes":
                    if file "plugins/Shield/Addons/%script name%.yml" exists:
                        make console execute command "/communicationShieldAPI %{_sd1}% %{_sd2}% %{_sd3}% %{_sd4}% %{_sd5}% %{_sd6}%"
    
    

    Une fois cela terminé, lancé le ShieldAPI
    (il devrait gérer les fichiers tout seul normalement), paramettrez le fichier de configuration situé dans le dossier de configuration du Shield (plugins/Shield).
    Changez le mot de passe original pour éviter les problèmes avec les autres personnes qui possèdent éventuellement ce skript aussi !


    Code:
    MDPCommunicationAPI: ShieldAPI
    Après cela de fait, vous allez devoir créer une commande pour check si l'API est bien relié au skript.
    Copier coller l'exemple en remplacant juste
    "votrecommande":

    Code:
    command /votrecommande [<text>] [<text>]:
        trigger:
            if arg 1 is "createLiaison":
                if arg 2 is set:
                    chechShield(executor,arg-2)
    

    Un fois fait, faite la commande
    "/<votrecommande> createLiaison <mdp du ShieldAPI>"
    Puis pour utiliser l'API, vous allez devoir juste completer votre skript avec cette fonction: goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7) (Les arguments à compléter sont détaillés dans la suite de la doc)

    Une fois arrivée là, la configuration de ShieldAPI est terminée !

    Pour retirer un add-on du Shield, faite la commande "/deleteAddonsShieldAPI <mdp de ShieldAPI> <nom de l'add-on>"
    Pour voir la liste des add-ons, faite la commande "/shieldop <mdp opérateur> AddonsList"
    Puis pour utiliser l'API, vous allez devoir juste completer votre skript avec cette fonction: goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7) (Les arguments à compléter sont détaillés dans la suite de la doc)

    Exemple: goAPI("ShieldAPI",addPLAYERBlackList,"Vengelis_","ShieldAPI", "Console","None","Console")

    Ajouter un UUID à la blacklist

    Code:
    goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7)
    
    Arg-1: <MDP du ShieldAPI>
    Arg-2: addUUIDBlackList
    Arg-3: <UUID à ajouter à la Blacklist>
    Arg-4: <MDP du ShieldAPI>
    Arg-5: <Executeur>
    Arg-6: <Plugin Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-7: <Mettre un texte>(C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    

    Retirer un UUID à la blacklist

    Code:
    goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7)
    
    Arg-1: <MDP du ShieldAPI>
    Arg-2: removeUUIDBlackList
    Arg-3: <UUID à retirer de la Blacklist>
    Arg-4: <MDP du ShieldAPI>
    Arg-5: <Plugin Executeur>
    Arg-6: <Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-7: <Mettre un texte>(C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    

    Ajouter un JOUEUR à la blacklist

    Code:
    goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7)
    
    Arg-1: <MDP du ShieldAPI>
    Arg-2: addPLAYERBlackList
    Arg-3: <Joueur à ajouter à la Blacklist>
    Arg-4: <MDP du ShieldAPI>
    Arg-5: <Plugin Executeur>
    Arg-6: <Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-7: <Mettre un texte>(C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    

    Retirer un JOUEUR à la blacklist

    Code:
    goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7)
    
    Arg-1: <MDP du ShieldAPI>
    Arg-2: removePLAYERBlackList
    Arg-3: <Joueur à ajouter à la Blacklist>
    Arg-4: <MDP du ShieldAPI>
    Arg-5: <Plugin Executeur>
    Arg-6: <Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-7: <Mettre un texte>(C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    

    Ajouter une IP à la blacklist

    Code:
    goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7)
    
    Arg-1: <MDP du ShieldAPI>
    Arg-2: addIPBlackList
    Arg-3: <Joueur à ajouter à la Blacklist>
    Arg-4: <MDP du ShieldAPI>
    Arg-5: <Plugin Executeur>
    Arg-6: <Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-7: <Mettre un texte>(C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    

    Retirer une IP à la blacklist

    Code:
    goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7)
    
    Arg-1: <MDP du ShieldAPI>
    Arg-2: removeIPBlackList
    Arg-3: <Joueur à ajouter à la Blacklist>
    Arg-4: <MDP du ShieldAPI>
    Arg-5: <Plugin Executeur>
    Arg-6: <Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-7: <Mettre un texte>(C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    

    Déclencher une alerte de fraude du Shield de 3 niveaux:
    - one : Niveau 1
    - two : Niveau 2
    - three : Niveau 3
    - zero : Remise à zéro du niveau d'alerte (N'arrete pas l'alerte jusqu'à sa fin !) (Pas encore implémenté)


    Code:
    goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7)
    
    Arg-1: <MDP du ShieldAPI>
    Arg-2: makeAlert
    Arg-3: <one/two/three>
    Arg-4: <MDP du ShieldAPI>
    Arg-5: <Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-6: <Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-7: <Mettre un texte>(C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    

    Vérifier une commande par le Shield. Cela permet d'ajouter des points de fraude normaux et de grief. Si aucun opérateur n'est connecté, le joueur est banni temporairement 60 jours

    Pour bloquer une commande vous allez avoir besoin de mettre des petites lignes pour cancel la commande car skript n'aime pas quand on met un cancel-event dans une fonction.
    Exemple à suivre:
    Code:
    on command /<la commande>:
        goAPI(<MDP du ShieldAPI>,cmdSensible,</la commande>,<MDP du ShieldAPI>,<Plugin contenant la commande>,<joueur exécuteur>,<permission requise pour faire la commande>)
        if {shieldAPI.returnFunction.cmdWarning} is true:
            cancel event
        else:
            stop
    Code:
    goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7)
    
    Arg-1: <MDP du ShieldAPI>
    Arg-2: cmdSensible
    Arg-3: </commande à vérifier>
    Arg-4: <MDP du ShieldAPI>
    Arg-5: <Plugin Exécuteur>
    Arg-6: <Joueur Exécuteur>
    Arg-7: <Permission pour exécuter la commande normalement>
    

    Checker tout les joueurs pour vois si éventuellement le Shield oublit des opérateurs (impossible normalement)
    Elle servira par la suite à checker le comportement des joueurs


    Code:
    goAPI(arg-1,arg-2,arg-3,arg-4,arg-5,arg-6,arg-7)
    
    Arg-1: <MDP du ShieldAPI>
    Arg-2: checkAll
    Arg-3: <MDP du ShieldAPI>
    Arg-4: <Plugin Exécuteur>
    Arg-5: <Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-6: <Mettre un texte> (C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    Arg-7: <Mettre un texte>(C'est pour combler le trou mais faut du texte meme si ca sert à rien)
    

    Skript avec l'incorporation de l'API disponible:
    - PlayerLogs (Un des miens)

    A venir:

    - une optimisation massive (V2).
    - une possibilité de modifier tous les messages.
    - une blacklist UUID en ligne
    - plus de fonctionnalités activables et désactivables !
    - système de reconfiguration
    - Retrait de l'utilisation du plugin WildSkript et 100% utilisation de skUtilities pour la gestion des YMLs
    - un pannel d'administration du shield IN-GAME
    - corrections des fautes x)
    - plein d'autre choses !
    Les propositions sont les bienvenues !

    Online BlackList Update: (Lien: ICI)

    [20/02/2018 - 12h55] Ajout de 11 pseudos Griefers
    [20/02/2018 - 13h37] Ajout de 21 pseudos Griefers (Potentiellement 1 innocent)
    [20/02/2018 - 13h54] Ajout de 9 pseudos Griefers
    [06/04/2018 - 19h45] Ajout de 17 pseudos Griefers
    A venir

    Bug Tracker:

    Retrouver le bugs tracker ICI !

    Pour finir:

    Je compte faire en sorte que mes autres skripts puissent être lu par le shield pour pouvoir faire quelques communications. Je compte aussi télécharger deux ou trois anti-cheat et autres skripts fait par des gens de skript-MC pour pouvoir là aussi faire des communications de données possibles (Avec leur accord !)
    Je ne suis pas un pro du français vous m’excuserez et je fais le skript généralement tard (entre 23h et 3h) après mon travail.

    Je n'ai pas testé le skript avec un force-op mais mon skript ne bloquera pas toute les actions mais assez pour ralentir les dégâts et les griefers voir même les rendre dans l'impossibilité de faire leurs actions !

    Le skript n'est pas fini ! je vous poste une snapshot pour que vous ayez un aperçu ainsi qu'une base de sécurité.

    J’espère que ce skript vous plaira. Pensez à mettre une note, c'est toujours plaisant de voir vos retours.


    Skript libre de droits.
    Je vous laisse la possibilité de le modifier autant que vous le voulez mais ils vous est interdit de le publier en votre nom.

    La vente du skript est interdite.

Notes récentes

  1. LeCraftDeOuf
    LeCraftDeOuf
    5/5,
    Version: 0.2.1b
    Beaucoup de travaille bravo, pas essayer.
    Encore des broadcast "ok" dans l'API ;)
    1. Gaby2907
      Réponse de l'auteur
      Merci pour ta review ! :D
      Pour le broadcast c'est une astuce pour dev mais je l'ai oublié x)
  2. Buttkill
    Buttkill
    5/5,
    Version: 0.1.2 (Snapshot)
    Très bon skript
    Je croyais que t'allait faire un truc genre /op sa fait rien mais nan c'est bien
    1. Gaby2907
      Réponse de l'auteur
      Je ne me réduis pas à cela désolé ! Quand il s'agit de faire un truc complet je m'y tiens !
      Merci pour ta review :D
  3. sam57730
    sam57730
    5/5,
    Version: 0.1.0 (Snapshot)
    Je trouve l'idée originale, le skript bien codé et complet !

    Moi je dit meilleur skript du mois
    1. Gaby2907
      Réponse de l'auteur
      Merci beaucoup ! J'ai mit énormément de temps pour réaliser cela et je suis content que cela te plaise !
      Je travail sur une bonne version cette fois et ça prend du temps !