2013-03-11 4 views
0

J'ai déjà vu cette question mais je ne comprends pas très bien ce que signifie l'intense Java Jargin. Je veux juste savoir s'il est possible d'avoir, par exemple, une classe "A" et une classe "B"Lier ensemble plusieurs classes?

Dans ma classe "A", il y a tout le code principal qui sera exécuté dans mon jeu, mais dans le « B » elle aura toutes mes variables définies et ce que chaque élément vaut »

EG

if(args [ 0 ].equalsIgnoreCase("sell") && args [ 1 ] !=(null)){ 
    int numOfItems = Integer.parseInt(args[1]); 
    if(numOfItems == player.getInventory().getItemInHand().getAmount()){ 
     player.getInventory().setItemInHand(null); 
     getServer().dispatchCommand(getServer().getConsoleSender(), "eco give " + player.getName() + " " + Diamond); 
    }else if(numOfItems > player.getInventory().getItemInHand().getAmount()){ 
     player.sendMessage("not enough"); 
    }else if(numOfItems < player.getInventory().getItemInHand().getAmount()){ 
     player.getInventory().getItemInHand().setAmount(player.getInventory().getItemInHand().getAmount() - numOfItems); 
     getServer().dispatchCommand(getServer().getConsoleSender(), "eco give " + player.getName() + " " + Diamond); 
    } 
} 

C'est un plugin Minecraft, et je veux la variable « Diamond » pour pouvoir rechercher sa valeur dans la classe "B", puis il enverra la quantité d'argent que le diamant est défini comme le joueur dans le jeu.

+0

En supposant que 'args' vient de la méthode principale,' args [1] 'ne peut jamais être nul. Soit vous obtiendrez une 'ArrayIndexOutOfBoundsException' ou il y aura un' String'. –

+0

Lorsque vous faites des choses comme 'Integer.parseInt()', vous utilisez une autre méthode de classe pour faire un peu de travail pour vous. Faites la même chose pour vos classes A et B. –

+0

Le plugin fonctionne parfaitement. pas d'erreurs Je veux juste définir toutes mes variables dans une classe différente. EDIT: Fonctionne, Juste nécessaire de changer ma variable statique et faire B.diamond Merci :) – user2158517

Répondre

0

C'est assez simple. Tout ce que vous devez faire est de déclarer une instance de 'B' dans votre classe de plugin principale:

class B { 
    Material diamond = Material.DIAMOND; 
    //...other stuff 
} 

class Main { 
//... 

    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { 
     if (commandLabel.equalsIgnoreCase("sell")) { 
      B b = new B(); 
      //... 
      //use b.diamond where appropriate 
     } 
    } 
} 

Désolé pour la brièveté; J'étais si pressé d'écrire ceci. Si vous avez besoin d'aide supplémentaire, faites le moi savoir.