Welcome to Bukkit France

Inscrivez-vous maintenant pour profiter d'un accès total à tout le contenu offert par la meilleur communauté Bukkit française ! Une fois inscrit et connecté, vous pourrez contribuez à la communauté en postant vos propres sujets et questions ou en répondant à ceux existants. Vous pourrez aussi customiser votre profil, recevoir des points de réputations, communiquer avec les autres membres via le chat, et plus encore! 

  • Annonces

    • Pskyco

      Bukkit France passe sous Discord !   02/20/16

      Bukkit France est désormais passé sur Discord, au revoir donc notre vieux Teamspeak ! Téléchargez le client et venez nous rejoindre sur notre salon en suivant les instructions suivantes.
      M-à-j du 25/02/2017 : Désormais, seuls les comptes actifs sur le forum se verront donner l'accès au Discord, ce dernier n'est pas une plateforme d'aide de la même manière que le chat.
BabyMushway

Probleme de timer avec scoreboard

6 messages dans ce sujet

Posté(e) (modifié)

Version: 1.7.10

API utilisée : Spigot 1.7.10

Explications du problème rencontré : Quand le joueur lance un fight sa fais des erreur de nullpointerexecption

Code d'erreur :  

Spoiler

 

[17:45:06 WARN]: [MRZN] Task #37 for MRZN v3.0 generated an exception

	java.lang.NullPointerException

	        at fr.mrlygikas.com.practice.scoreboard.GlobalQcoreboard.secToMin(GlobalQcoreboard.java:15) ~[?:?]

	        at fr.mrlygikas.com.practice.listener.ScoreboardListener$1.run(ScoreboardListener.java:112) ~[?:?]

	        at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71) ~[PaperSpigot.jar:git-PaperSpigot-1f7d532]

	        at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [PaperSpigot.jar:git-PaperSpigot-1f7d532]

	        at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:710) [PaperSpigot.jar:git-PaperSpigot-1f7d532]

	        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:307) [PaperSpigot.jar:git-PaperSpigot-1f7d532]

	        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:652) [PaperSpigot.jar:git-PaperSpigot-1f7d532]

	        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:555) [PaperSpigot.jar:git-PaperSpigot-1f7d532]

	        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [PaperSpigot.jar:git-PaperSpigot-1f7d532]

 
 Ma classe GlobalQcoreboard:
Spoiler

package fr.mrlygikas.com.practice.scoreboard;

import java.util.WeakHashMap;

import org.bukkit.entity.Player;

import fr.mrlygikas.com.practice.Main;

public class GlobalQcoreboard {
    
      public static final WeakHashMap<Player, ScoreboardHelper> helper = new WeakHashMap();
      
      public static String secToMin(Player p)
      {
        int i = Main.startFighting.get(p).intValue();
        int hs = i / 3600;
        int ms = i / 60;
        int ss = i % 60;
        String h = (hs < 10 ? "0" : "") + hs;
        String m = (ms < 10 ? "0" : "") + ms;
        String s = (ss < 10 ? "0" : "") + ss;
        String f = h + ":" + m + ":" + s;
        return f;
      }

}
 

 

Please help me

 

Modifié par BabyMushway

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, BabyMushway a dit :

(GlobalQcoreboard.java:15)

A quoi correspond la ligne 15 de ta classe ?

Partager ce message


Lien à poster
Partager sur d’autres sites

int i = Main.startFighting.get(p).intValue();

 

Moi je dis que c'est soit sa variable startFighting est à null ou le contenu retourné par le get.

 

Pourrais-tu nous montrer ta classe Main, stp?

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Ma classe Main :


package fr.mrlygikas.com.practice;

import java.util.HashMap;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

import fr.mrlygikas.com.practice.cmd.EditkitCMD;
import fr.mrlygikas.com.practice.cmd.InvCmd;
import fr.mrlygikas.com.practice.editkit.EditKitInteract;
import fr.mrlygikas.com.practice.editkit.EditKitInteract2;
import fr.mrlygikas.com.practice.items.JoinItems;
import fr.mrlygikas.com.practice.listener.Death;
import fr.mrlygikas.com.practice.listener.DuelItemsInteract;
import fr.mrlygikas.com.practice.listener.EnderDelay;
import fr.mrlygikas.com.practice.listener.ItemInteract;
import fr.mrlygikas.com.practice.listener.Join;
import fr.mrlygikas.com.practice.listener.QueueLeave;
import fr.mrlygikas.com.practice.listener.ReloadCMD;
import fr.mrlygikas.com.practice.listener.ScoreboardListener;
import fr.mrlygikas.com.practice.listener.UnrankedGUIInteract;
import fr.mrlygikas.com.practice.listener.onDamage;
import fr.mrlygikas.com.practice.listener.onQuit;
import fr.mrlygikas.com.practice.party.PartyInteract;

public class Main extends JavaPlugin implements Listener {

    public static HashMap<Player, Player> combat = new HashMap<Player, Player>();
    public static Main instance;
    public static HashMap<Player, Integer> startFighting = new HashMap();

    public static Main getInstance() {
        return instance;
    }

    public void onEnable() {
        instance = this;
        registersCommands();
        registersListeners();
        ScoreboardListener.setupScoreboard();
        Player[] arrayOfPlayer1;
        int j = (arrayOfPlayer1 = Bukkit.getOnlinePlayers()).length;
        for (int i = 0; i < j; i++) {
            Player pl = arrayOfPlayer1[1];
            ScoreboardListener.registerScoreboards(pl);
            pl.setMaximumNoDamageTicks(19);
            Player[] arrayOfPlayer2;
            int m = (arrayOfPlayer2 = Bukkit.getOnlinePlayers()).length;
            for (int k = 0; k < m; k++) {
                Player pls = arrayOfPlayer2[k];
                ScoreboardListener.resendTab(pls);
                JoinItems.giveJoinItems(pls);
                pl.showPlayer(pls);
            }
            new BukkitRunnable() {
                public void run() {
                    Player[] arrayOfPlayer;
                    int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
                    for (int i = 0; i < j; i++) {
                        Player pl = arrayOfPlayer[i];
                        if (Main.startFighting.containsKey(pl)) {
                            int i1 = ((Integer) Main.startFighting.get(pl)).intValue();
                            Main.startFighting.put(pl, Integer.valueOf(i1 + 1));
                        }
                    }
                }
            }.runTaskTimer(getInstance(), 20L, 20L);
            new BukkitRunnable() {
                public void run() {
                    Player[] arrayOfPlayer;
                    int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
                    for (int i = 0; i < j; i++) {
                        Player pl = arrayOfPlayer[i];
                        if (pl.getInventory().contains(Material.GLASS_BOTTLE)) {
                            pl.getInventory().removeItem(new ItemStack[] { new ItemStack(Material.GLASS_BOTTLE, 1) });
                        }
                    }
                }
            }.runTaskTimer(getInstance(), 3L, 3L);
        }
    }

    private void registersListeners() {
        PluginManager pm = Bukkit.getPluginManager();

        pm.registerEvents(new Join(), this);
        pm.registerEvents(new Death(), this);
        pm.registerEvents(new ItemInteract(), this);
        pm.registerEvents(new UnrankedGUIInteract(), this);
        pm.registerEvents(new QueueLeave(), this);
        pm.registerEvents(new ReloadCMD(), this);
        pm.registerEvents(new DuelItemsInteract(), this);
        pm.registerEvents(new onQuit(), this);
        pm.registerEvents(new onDamage(), this);
        pm.registerEvents(new EditKitInteract(), this);
        pm.registerEvents(new EditKitInteract2(), this);
        pm.registerEvents(new PartyInteract(), this);
        pm.registerEvents(new ScoreboardListener(), this);
        pm.registerEvents(new EnderDelay(), this);
    }

    private void registersCommands() {
        getCommand("inv").setExecutor(new InvCmd());
        getCommand("editkit").setExecutor(new EditkitCMD());
        getCommand("kit").setExecutor(new CMDKit());
    }

    public void onDisable() {

    }

}

Partager ce message


Lien à poster
Partager sur d’autres sites

Donc c'est le contenu  du hashmap qui retourne null lors du get.

 

Faut faire des vérifications avant de get le contenu.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.