Appel de méthode



  • J'instancie un objet de la classe Account pour le joueur dans CommonProxy.java

    Account account = new Account(5000, 0);
    

    Voici Account.java avec le constructeur où il faut renseigner le soldeAccount et le soldeLiquide, ce qui a été fait précédemment.

    public class Account {
    
    public Account(int soldeAccount, int soldeLiquide)
    {
    
    }
    
    public static void retrait(EntityPlayer player, int aRetirer, int soldeAccount, int soldeLiquide){
    aRetirer = 100;
    if(aRetirer > soldeAccount)
    {
    player.addChatMessage(new ChatComponentText("Tu ne peux pas retirer autant d'argent."));
    } else if(aRetirer < 0)
    {
    player.addChatMessage(new ChatComponentText("Tu ne peux pas retirer une somme d'argent négative."));
    } else
    {
    soldeAccount =- aRetirer;
    soldeLiquide =+ aRetirer;
    player.addChatMessage(new ChatComponentText("Tu as retiré " +aRetirer+ "€."));
    aRetirer = 0;
    }
    }
    }
    

    Seulement, quand j'appelle ma méthode retrait dans le GUI, Minecraft se ferme.

    @Override
    protected void actionPerformed(GuiButton button){
       if (button == this.retrait) {
        Account.retrait(player, aRetirer, soldeAccount, soldeLiquide);
           this.mc.displayGuiScreen(null);
           if (this.mc.currentScreen == null)
               this.mc.setIngameFocus();
       }
    


  • Salut,
    tu appelles très certainement un EntityPlayerSP comme paramètre dans ta fonction retrait, or comme le CommonProxy est both sides, le serveur throw un ClassNotFoundException et crash instantanément. Du coup il serait préférable de soit déplacer ces méthodes dans ton GUI, ou alors dans ton client proxy si elles seront réutilisées par d'autres gui's.



  • @'Plaigon':

    Salut,
    tu appelles très certainement un EntityPlayerSP comme paramètre dans ta fonction retrait, or comme le CommonProxy est both sides, le serveur throw un ClassNotFoundException et crash instantanément. Du coup il serait préférable de soit déplacer ces méthodes dans ton GUI, ou alors dans ton client proxy si elles seront réutilisées par d'autres gui's.

    J'ai déplacé les méthodes dans la classe du GUI mais cela ne fonctionne pas. Je suis obligé de mettre un EntityPlayer en argument pour que je puisse utiliser le ChatComponentMessage, c'est embêtant mais il me semble que je n'en ai pas le choix. Pour finir, il n'y a pas d'autre moyen de déclarer ces variables ? Étant donné que les méthodes sont présentes dans le GUI, les arguments ont besoin que les variables soient déclarées ici…



  • File le crash report.