Aller au contenu
KneaXy

Bloquer toutes les commandes sauf quelques unes et séparer les chats des mondes et les regrouper pour les personnes qui exécutent une commande (Compliqué)

Messages recommandés

 Version Minecraft : CraftBukkit version git-Spigot / MC: 1.8.8 / version 1.8.8-R0.1-SNAPSHOT

Version Skript : 2.2-SNAPSHOT

 

 

Une personne très généreuse m'a réalisé ce Skript (J'ai modifié : set {rank}... donc la variable en dessous

La commande avait l'air de marcher cependant... Elle a totalement cessé de fonctionner !

 

Je me demande pourquoi.. Pourtant, je pense que j'ai l'essentiel des add-on...

Skellett, skRayFall, SharpSK, TuSKe, WildSkript et SkUtilities.

 

Je demande donc, si bien évidemment c'est possible et si vous l'acceptiez, d'essayer de me refaire un Skript de chat.

J'avais bien évidemment essayé, mais au final ça ne marchais absolument pas, au contraire...

Merci infiniment d'avance ?

Citation

 

on chat:
	cancel event
	set {_monde} to player's world
	loop all players:
		if loop-player's world is {_monde}:
			set {rank} to coloured player's prefix
			send "&7%{rank}%%player% &e» &f%message%" to loop-player
		else if "%loop-player%" contains "%{world.chat.list::*}%":
			send "&e[&a%player's world%&e] &7%player% &c» &b%message%" to loop-player

command /allmessage:
	trigger:
		if "%{world.chat.list::*}%" contains "%player%":
			remove player from {world.chat.list::*}
			send "&e[&aMessage&e] &cVous ne recevez plus que les messages de votre monde dès à présent."
		else:
			add player to {world.chat.list::*}
			send "&e[&aMessage&e] &bVous recevez dès à présent tout les messages du Serveur."

 

 Deuxième problème (+ important)

Souhaitant créer mon propre AuthMe en Skript.. J'y arrives très bien mais je possède un problème de sécurité assez lourd, au niveau des commandes.
Je n'arrives pas à autoriser les commandes suivantes : login, log, l, reg et register.

J'arrives soit à tout bloquer... Donc rendre inaccessible le login / register (+ aliases)

Soit tout autoriser (Donc si quelqu'un se connecte sur un compte admin ...)

 

 

J'ai déjà effectué des recherches, mais sans plus d'avancement...
Merci infiniment aux personnes qui pourront m'aider ! ?

Partager ce message


Lien à poster
Partager sur d’autres sites
on command:
	if command is "login" or "register":
		stop
	else
		send "&aTu n'es pas encore enregistré/identifié
		cancel event

Quelle est le problème pour le skript de chat ? une erreur ? 

Fait attention car une variable avec un "_" au début signifie quelle est unique et temporaire ?

 

Modifié par Yghore
  • Haha 2

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 6 heures, Yghore a dit :
on command:
	if command is "login" or "register":
		stop
	else
		send "&aTu n'es pas encore enregistré/identifié
		cancel event

Quelle est le problème pour le skript de chat ? une erreur ? 

Fait attention car une variable avec un "_" au début signifie quelle est unique et temporaire ?

 

Malheureusement j'ai déjà essayé ce code !

Il ne fonctionne pas...

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Tien, après mon retour sur mc j'essai ?

 


on command:
    if sender is not console:
        if command is "login" or "l" or "register" or "reg":
            stop
        else:
            if {authed.%player%} is set:
                stop
            else:
                cancel event
                send "nop tu n'est pas login t nul nul nul"

command /login [<text>]:
    trigger:
        ## systeme de login, si mdp correct 
        set {authed.%arg 1%} to true

on quit:
    delete {authed.%player%}

Partager ce message


Lien à poster
Partager sur d’autres sites
on join:
	make console execute command "/clear %player%"
	wait 3 ticks
	make console execute command "/effect %player% clear"
	wait 3 ticks
	make console execute command "/effect %player% minecraft:slowness 99999 25 true"
	wait 3 ticks
	make console execute command "/effect %player% minecraft:jump_boost 99999 128 true"
	wait 3 ticks
	make console execute command "/effect %player% minecraft:blindness 99999 0 true"
	if {Register.%player%} isn't set:
		send "&3Faite &7' /register <mdp> <mdp> ' &3Pour vous enregistré !"
	else:
		send "&3Faite &7' /login <mdp> ' &3Pour vous login !"

command /register [<text>] [<text>]:
    aliases: /reg
    trigger:
        if arg 1 is set:
            if arg 2 is set:
                if {Register.%player%} isn't set:
                    if arg 1 = arg 2:
                        set {MDP.%player%} to arg 2
                        set {Register.%player%} to true
                        send "&2Merci de vous avoir enregistré sur &aFuturoscoCraft &2 !"
                        make player execute command "/hub"
                        make console execute command "/effect %player% clear"
                        make console execute command "/clear %player%"
                        set {INLG.%player%} to false
                        stop
                    else:
                        send "&cMot de passe invalide !"
                        stop
                else:
                    send "&cVous vous êtes déjà enregistré !"
                    stop
            else:
                send "&cCommande: &7/register <mdp> <confirmation mdp>"
        else:
            send "&cCommande: &7/register <mdp> <confirmation mdp>"


command /login [<text>]:
    aliases: /l
    trigger:
        if arg 1 is set:
            if {Register.%player%} is set:
                if {INLG.%player%} is true:
                    if arg 1 = {MDP.%player%}:
                        send "&2Merci de vous être login sur le serveur !"
                        make console execute command "/effect %player% clear"
                        make console execute command "/clear %player%"
                        set {INLG.%player%} to false
                        stop
                    else:
                        send "&cMot de passe incorrecte !"
                else:
                    send "&cVous êtes déjà login !"
            else:
                send "&cVous devez vous register !"
        else:
            send "&cCommande: &7/login <mdp>"
on chat:
    if {INLG.%player%} is true:
        cancel event
        send "&cVeuillez vous login !"
    else:
        stop

Tien normalement sa fonctionne à 100% je l'utilise sur mon serveur ?

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 4 minutes, Wildteams a dit :
on join:
	make console execute command "/clear %player%"
	wait 3 ticks
	make console execute command "/effect %player% clear"
	wait 3 ticks
	make console execute command "/effect %player% minecraft:slowness 99999 25 true"
	wait 3 ticks
	make console execute command "/effect %player% minecraft:jump_boost 99999 128 true"
	wait 3 ticks
	make console execute command "/effect %player% minecraft:blindness 99999 0 true"
	if {Register.%player%} isn't set:
		send "&3Faite &7' /register <mdp> <mdp> ' &3Pour vous enregistré !"
	else:
		send "&3Faite &7' /login <mdp> ' &3Pour vous login !"

command /register [<text>] [<text>]:
    aliases: /reg
    trigger:
        if arg 1 is set:
            if arg 2 is set:
                if {Register.%player%} isn't set:
                    if arg 1 = arg 2:
                        set {MDP.%player%} to arg 2
                        set {Register.%player%} to true
                        send "&2Merci de vous avoir enregistré sur &aFuturoscoCraft &2 !"
                        make player execute command "/hub"
                        make console execute command "/effect %player% clear"
                        make console execute command "/clear %player%"
                        set {INLG.%player%} to false
                        stop
                    else:
                        send "&cMot de passe invalide !"
                        stop
                else:
                    send "&cVous vous êtes déjà enregistré !"
                    stop
            else:
                send "&cCommande: &7/register <mdp> <confirmation mdp>"
        else:
            send "&cCommande: &7/register <mdp> <confirmation mdp>"


command /login [<text>]:
    aliases: /l
    trigger:
        if arg 1 is set:
            if {Register.%player%} is set:
                if {INLG.%player%} is true:
                    if arg 1 = {MDP.%player%}:
                        send "&2Merci de vous être login sur le serveur !"
                        make console execute command "/effect %player% clear"
                        make console execute command "/clear %player%"
                        set {INLG.%player%} to false
                        stop
                    else:
                        send "&cMot de passe incorrecte !"
                else:
                    send "&cVous êtes déjà login !"
            else:
                send "&cVous devez vous register !"
        else:
            send "&cCommande: &7/login <mdp>"
on chat:
    if {INLG.%player%} is true:
        cancel event
        send "&cVeuillez vous login !"
    else:
        stop

Tien normalement sa fonctionne à 100% je l'utilise sur mon serveur ?

Il as déjà son système !

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui j'ai oublier une partie du code 2sec 


EDIT:

Voila le reste:


 

on command:
    if {INLG.%player%} is true:
        if command is "register" or "reg" or "login" or "l":
            stop
        else:
            cancel event
            send "&cVeuillez vous login !"

 

Modifié par Wildteams

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai su trouver la solution en m'inspirant des variables grâce à @Wildteams

Maintenant deuxième problème

» Séparer les chats de monde

Monde 1 ne reçoit pas les messages de monde 2, vice versa.

Joueur dans Monde 3 ne reçoit pas Monde 1 et 2. Cependant, qui exécute une commande, il pourra percevoir les messages de Monde 1 et Monde 2.

Comment faire ? Help me...

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je te le fait avant ce soir ?

EDIT:
Après il y a un plugin si tu préfère: PerWorldChat

Mais je te le fait aussi en skript si tu veut

Et pourrait tu me dire le format de ton chat ? ET aussi, tes grades tu les fait avec skript/(par des variables) , par PermissionEx, par WorldGroup etc. ?
Exemple:

&7&l%player% &c>> &7%message%
&c&l ( %GRADE% ) &7&l%player%: &7%message%


 

Modifié par Wildteams

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 47 minutes, Wildteams a dit :

Je te le fait avant ce soir ?

EDIT:
Après il y a un plugin si tu préfère: PerWorldChat

Mais je te le fait aussi en skript si tu veut

Et pourrait tu me dire le format de ton chat ? ET aussi, tes grades tu les fait avec skript/(par des variables) , par PermissionEx, par WorldGroup etc. ?
Exemple:

&7&l%player% &c>> &7%message%
&c&l ( %GRADE% ) &7&l%player%: &7%message%


 

PermissionEx
Set une variable =>	set {rank} to coloured player's prefix

Le chat, j'utilise Skript, avec une variable PermissionEx "player's prefix"

Partager ce message


Lien à poster
Partager sur d’autres sites

Et voila ?

Je t'ai rajouter un /broadcast en plus

on chat:
    loop all players:
        if world of loop-player-1 isn't "%world of player%":
            cancel event
            
        else:
            loop all players:
                if world of loop-player-2 is "%world of player%":
                    send "%player's prefix%&8%player%&7&l: &7%message%" to loop-player-2

command /broadcast <text>:
    permission: *
    trigger:
        broadcast "&8&l[ &cMESSAGE STAFF &8&l] &c%arg 1%"
        
command /allchat <text>:
    trigger:
        loop all players:
            send "&7&l[ALL CHAT] &8%player%: &7%arg 1%" to loop-player

 

Partager ce message


Lien à poster
Partager sur d’autres sites
on chat:
	cancel event
	loop all players in world of player:
		send "%coloured player's prefix%&8%player%&7&l: &7%message% test %player's prefix% " to loop-player


command /broadcast <text>:
    permission: *
    trigger:
        broadcast "&8&l[ &cMESSAGE STAFF &8&l] &c%arg 1%"

 

Modifié par > NoaGamingFR

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 1 minute, Wildteams a dit :

Le Cancel event n'est pas inutile nan ^^

Bah si un peu vu que le joueur voyait pas son message si y'avait prsn ds son monde

Partager ce message


Lien à poster
Partager sur d’autres sites

Le joueur voit le message sans cancel event, ce qu'il veut c'est que dans le Monde 1 > Monde 2 ne reçoit pas Monde 2 > Monde 1 ne reçoit pas 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 1 minute, Wildteams a dit :

Le joueur voit le message sans cancel event, ce qu'il veut c'est que dans le Monde 1 > Monde 2 ne reçoit pas Monde 2 > Monde 1 ne reçoit pas 

Oui, mais tu n'as pas compris, laisse tomber, flemme de m'expliquer là !

Mon code reste + opti

Partager ce message


Lien à poster
Partager sur d’autres sites

Si tu aime la critique, ton code à une ligne inutile ^^

Et si mon cancel event est inutile, pourquoi le tien ne l'ai pas alors ?

Modifié par Wildteams

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 4 minutes, Wildteams a dit :

Si tu aime la critique, ton code à une ligne inutile ^^

Et si mon cancel event est inutile, pourquoi le tien ne l'ai pas alors ?

Oui j'aime ?

Envoie la ligne, mon code est parfait:

 

on chat:
	cancel event
	loop all players in world of player:
		send "%coloured player's prefix%&8%player%&7&l: &7%message%" to loop-player


command /broadcast <text>:
    permission: *
    trigger:
        broadcast "&8&l[ &cMESSAGE STAFF &8&l] &c%arg 1%"

 

 

Modifié par > NoaGamingFR

Partager ce message


Lien à poster
Partager sur d’autres sites

Maintenant ton code est " parfait " c'est sur, une fois que le code est modifié.... il n'y a plus d'erreur, et tu n'a pas répondu à ma question, pourquoi mon cancel event serait inutile et pas le tien ?

Ah tien ta ligne inutile:

send "%player's prefix%&8%player%&7&l: &7%message%" to player

Ah et non, ton code n'est pas " parfait " car il ne fait pas tout ce qu'il demande, à savoir, la commande qui envoi le message sur tout les mondes, car si tu regarde bien le broadcast à une permission pour les joueurs op, donc:

 

command /allchat <text>:
    trigger:
        loop all players:
            send "&7&l[ALL CHAT] &8%player%: &7%arg 1%" to loop-player

Est utile ?

Modifié par Wildteams

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, > NoaGamingFR a dit :

Oui j'aime ?

Envoie la ligne, mon code est parfait:

 

on chat:
	cancel event
	loop all players in world of player:
		send "%coloured player's prefix%&8%player%&7&l: &7%message%" to loop-player


command /broadcast <text>:
    permission: *
    trigger:
        broadcast "&8&l[ &cMESSAGE STAFF &8&l] &c%arg 1%"

 

 

Il y a une erreur ! La variable "%coloured player's prefix%" n'existe pas, il faut la créer !

on chat:
	if player is in "Lobby":
    	cancel event
    	set {rank} to coloured player's prefix
        broadcast "%{rank}%%player% &a&o&l>> &f%message%" in "Lobby"
    if player is in "SurvivalGames1
    	cancel event
    	set {rank} to coloured player's prefix
        broadcast "%{rank}%%player% &a&o&l>> &f%message%" in "Lobby"
        
command /allmessage:
	trigger:
    	if {allmessage.%player%} is set:
    		message "Impossible de créer cette commande !"
            message "Cette commande permet de lier tout les chats, même si séparé, comme indiqué au dessus."
        else:
        	message "&7[&eLunatick&7] &b&k|&e Vous avez activé le SocialChat." to executor

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ou %colored player's prefix%

 

Voici ma version

on chat:
	cancel event
	if {allmessage.%player%} is set
		broadcast "%colored player's prefix%&8%player%&7&l: &7%message% test %player's prefix% "
	else:
		loop all players in world of player:
			send "%colored player's prefix%&8%player%&7&l: &7%message% test %player's prefix% " to loop-player


command /allmessage:
	trigger:
		if {allmessage.%player%} is not set:
			set {allmessage.%player%} to true
			send "&aON"
		else:
			delete {allmessage.%player%}
			send "&cOFF"

 

Modifié par Yghore

Partager ce message


Lien à poster
Partager sur d’autres sites

La variable coloured existe, cela vient de toi, de plus, tu ne peut pas créer une variable comme ca : %variable% en skript (à mes connaissances, peut être que les version au dessus peuvent, sinon il faut passer par un addons)

 

Le 29/12/2018 à 12:26, Wildteams a dit :

Maintenant ton code est " parfait " c'est sur, une fois que le code est modifié.... il n'y a plus d'erreur, et tu n'a pas répondu à ma question, pourquoi mon cancel event serait inutile et pas le tien ?

Ah tien ta ligne inutile:

send "%player's prefix%&8%player%&7&l: &7%message%" to player

Ah et non, ton code n'est pas " parfait " car il ne fait pas tout ce qu'il demande, à savoir, la commande qui envoi le message sur tout les mondes, car si tu regarde bien le broadcast à une permission pour les joueurs op, donc:

 

command /allchat <text>:
    trigger:
        loop all players:
            send "&7&l[ALL CHAT] &8%player%: &7%arg 1%" to loop-player

Est utile ?

❤️

Pour les messages à tout le monde, j'avais compris que c'était avec perm, enfin bref dodo.

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 32 minutes, Yghore a dit :

Ou %colored player's prefix%

 

Voici ma version

on chat:
	cancel event
	if {allmessage.%player%} is set
		broadcast "%colored player's prefix%&8%player%&7&l: &7%message% test %player's prefix% "
	else:
		loop all players in world of player:
			send "%colored player's prefix%&8%player%&7&l: &7%message% test %player's prefix% " to loop-player


command /allmessage:
	trigger:
		if {allmessage.%player%} is not set:
			set {allmessage.%player%} to true
			send "&aON"
		else:
			delete {allmessage.%player%}
			send "&cOFF"

 

Je t'invite a tester mon skript ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.