• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Non résolu Problème avec commande

    Sans suite
    1.7.10
    2
    6
    506
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • I
      INeoxz13700 dernière édition par

      Bonjour j’ai un créer une commande et je veux donner l’accès de cette commande à tous les joueurs

      ackage fr.atonha.saofrmod.commands;
      
      import java.util.List;
      
      import fr.atonha.saofrmod.ExtendedPlayer;
      import fr.atonha.saofrmod.Main;
      import fr.atonha.saofrmod.network.PacketAttributeGui;
      import fr.atonha.saofrmod.network.PacketSync;
      import net.minecraft.command.CommandBase;
      import net.minecraft.command.ICommandSender;
      import net.minecraft.entity.SharedMonsterAttributes;
      import net.minecraft.entity.ai.attributes.IAttributeInstance;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.entity.player.EntityPlayerMP;
      import net.minecraft.server.MinecraftServer;
      import net.minecraft.util.ChatComponentText;
      import net.minecraft.util.EnumChatFormatting;
      import net.minecraft.world.World;
      
      public class MainCommand extends CommandBase {
      	
      	String name = "saofr";
      
      	@Override
      	public String getCommandName() {
      		return name;
      	}
      
      	@Override
      	public String getCommandUsage(ICommandSender p_71518_1_) {
      		return "/" + name;
      	}
      
      	@Override
      	public void processCommand(ICommandSender sender, String[] args) {
      		if(args.length == 0) {
      			displayHelp(sender);
      		}
      		else if(args.length >= 1 && args[0].equalsIgnoreCase("open")) {
      			Main.getPacketHandler().sendTo(new PacketAttributeGui(), (EntityPlayerMP) sender);
      			ExtendedPlayer data = ExtendedPlayer.get((EntityPlayer)sender);
      			Main.getPacketHandler().sendTo(new PacketSync(data.getLevel(), data.healthPoints, data.damagePoints, data.getPoint()), (EntityPlayerMP)sender);
      		}
      		else if(args.length >= 1 && args[0].equalsIgnoreCase("reset")) {
      			if(!MinecraftServer.getServer().getConfigurationManager().func_152596_g(((EntityPlayer) sender).getGameProfile())){
      				sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[" + Main.MODID + "]" + " Tu n'as pas la permission pour utiliser cette commande"));
      				return;
      			}
      			if(args.length >= 2 && this.isOnline(sender.getEntityWorld(), args[1])) {
      				EntityPlayer argPlayer = this.getPlayer(sender.getEntityWorld(), args[1]);
      				ExtendedPlayer pData = ExtendedPlayer.get(argPlayer);
      				argPlayer.experienceLevel = 1;
      				pData.setLevel(1);
      				pData.setPoints(0);
      				pData.damagePoints = 0;
      				pData.healthPoints = 0;
      				pData.setHP(ExtendedPlayer.startHP);
      				pData.setDamage(ExtendedPlayer.startDamage);
      				IAttributeInstance healthAttribute = argPlayer.getEntityAttribute(SharedMonsterAttributes.maxHealth);
      		   		IAttributeInstance damageAttribute = argPlayer.getEntityAttribute(SharedMonsterAttributes.attackDamage);
      		   		if(healthAttribute.getModifier(pData.healthModifier) != null)
      		   			healthAttribute.removeModifier(healthAttribute.getModifier(pData.healthModifier));
      		   		if(damageAttribute.getModifier(pData.damageModifier) != null)
      		   			damageAttribute.removeModifier(damageAttribute.getModifier(pData.damageModifier));
      				sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "[" + Main.MODID + "]" + " Donnees du joueur reinitialiser"));
      			}
      			else {
      				sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[" + Main.MODID + "]" + " Ce joueur n'est pas connecte"));
      				return;
      			}
      		}
      		else if(args.length >= 1 && args[0].equalsIgnoreCase("addPoints")) {
      			if(!MinecraftServer.getServer().getConfigurationManager().func_152596_g(((EntityPlayer) sender).getGameProfile())){
      				sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[" + Main.MODID + "]" + " Tu n'as pas la permission pour utiliser cette commande"));
      				return;
      			}
      			if(args.length >= 2 && this.isOnline(sender.getEntityWorld(), args[1]))
      			{
      				if(args.length >= 3 && this.isInteger(args[2])) {
      					if(Integer.parseInt(args[2]) > 0) {
      						EntityPlayer argPlayer = this.getPlayer(sender.getEntityWorld(), args[1]);
      						ExtendedPlayer data = ExtendedPlayer.get((EntityPlayer) argPlayer);
      						data.setPoints(data.getPoint() + Integer.parseInt(args[2]));
      						sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "[" + Main.MODID + "]" + " Points ajouté avec succès"));
      					}
      					else {
      						sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[" + Main.MODID + "]" + " Vous devez entrer un nombre > 0"));
      						return;
      					}
      				}
      				else
      				{
      					sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[" + Main.MODID + "]" + " Vous devez entrer un nombre"));
      					return;
      				}
      			}
      			else {
      				sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[" + Main.MODID + "]" + " Ce joueur n'est pas connecte"));
      				return;
      			}
      		}
      		else 
      			displayHelp(sender);
      		
      	}
      	
      	
      	public void displayHelp(ICommandSender sender) {
      		sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "SaoFr main commands help:"));
      		sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + "-/saofr open " + EnumChatFormatting.WHITE + "-" + EnumChatFormatting.GOLD + " ouvre l'interface"));
      		sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + "-/saofr reset <Pseudo> " + EnumChatFormatting.WHITE + "-" + EnumChatFormatting.GOLD + " reinitialise les donnees d'un joueur"));
      		sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + "-/saofr addpoints <Pseudo> <Points>" + EnumChatFormatting.WHITE + "-" + EnumChatFormatting.GOLD + " ajoute des points"));
      	}
      	
      	
      	public boolean isOnline(World world, String name) {
      		for(Object player : world.playerEntities) {
      			EntityPlayer p  = (EntityPlayer) player;
      			if(p.getCommandSenderName().equalsIgnoreCase(name))
      				return true;
      		}
      		return false;	
      	}
      	
      	public static boolean isInteger(String s) {
      	    try { 
      	        Integer.parseInt(s); 
      	    } catch(NumberFormatException e) { 
      	        return false; 
      	    } catch(NullPointerException e) {
      	        return false;
      	    }
      	    return true;
      	}
      	
      	public EntityPlayer getPlayer(World world, String name) {
      		for(Object player : world.playerEntities) {
      			EntityPlayer p  = (EntityPlayer) player;
      			if(p.getCommandSenderName().equalsIgnoreCase(name))
      				return p;
      		}
      		return null;	
      	}
      	
          @Override 
          public boolean canCommandSenderUseCommand(ICommandSender var1) 
          { 
              return true;
          } 
          
          @Override  
          public List addTabCompletionOptions(ICommandSender var1, String[] var2) 
          { 
              return null; 
          } 
      
          @Override 
          public boolean isUsernameIndex(String[] var1, int var2) 
          { 
              return false;
          } 
      
      }
      

      Cependant en jeu ça ne marche pas seul les op ont accès à cette commande je ne sais pas d’ou vient ce problème Merci de votre aide .

      1 réponse Dernière réponse Répondre Citer 0
      • Ama
        Ama dernière édition par

        Tu as une fonction pour définir le niveau d’autorisation pour la commande.

        Trouve la et Override la.

        Si je t'ai filé un coup de main n'oublie pas le + / -
        Par contre évite les demandes d'aides en MP, tu sera sympa'

        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

        1 réponse Dernière réponse Répondre Citer 0
        • I
          INeoxz13700 dernière édition par INeoxz13700

          @Override 
          public boolean canCommandSenderUseCommand(ICommandSender var1) 
          { 
              return true;
          } 
          

          bah c’est celle-ci je l’ai déjà fait …
          normalement avec ça je n’ai pas besoin de définir de niveau de permission

          1 réponse Dernière réponse Répondre Citer 0
          • Ama
            Ama dernière édition par

            Sisi, tu dois définir le niveau de permission, après je dis ça, parce-que en l’état actuel des choses ça ne fonctionne pas. Donc essaie avec le niveau de permission.

            Si je t'ai filé un coup de main n'oublie pas le + / -
            Par contre évite les demandes d'aides en MP, tu sera sympa'

            La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

            Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

            I 1 réponse Dernière réponse Répondre Citer 0
            • I
              INeoxz13700 @Ama dernière édition par

              @Ama D’accord et je met combien pour donner l’autorisation à tous les joueurs ? car je comprend pas trop leurs système de niveau surtout son fonctionnement

              1 réponse Dernière réponse Répondre Citer 0
              • Ama
                Ama dernière édition par

                zéro

                Si je t'ai filé un coup de main n'oublie pas le + / -
                Par contre évite les demandes d'aides en MP, tu sera sympa'

                La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                1 réponse Dernière réponse Répondre Citer 0
                • 1 / 1
                • Premier message
                  Dernier message
                Design by Woryk
                Contact / Mentions Légales

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB