[Problema] problema con un codice Java

ciao a tutti ho un problema con questo mio codice. In pratica se in gioco ti ammazzo (con gli metodi di minecraft [spade,pugni,ecc...]) ti segna +1. Dato che vorrei implementarlo in skywars, vorrei che quando ti ammazzo con i metodi di skywars (ex: ti faccio cadere nel vuoto) segni +1 


Citazione:      double kills = getConfig().getInt("stats." + p.getName() + ".kills");
      double deaths = getConfig().getInt("stats." + p.getName() + ".deaths");
      GamePlayer gamePlayer = PlayerController.get().get((Player)sender);
      double Swkills = gamePlayer.getKills();
      double Swdeaths = gamePlayer.getDeaths();
      
      if (args.length == 0)
      {
        p.sendMessage("§7§m]§6§m-----------§8[§eStatistiche§8]§6§m----------§7§m[");
        p.sendMessage(" ");
        if(Swkills == kills){
        p.sendMessage("§a§l Uccisioni §e" + new DecimalFormat("#").format(kills +1));
        } else {
         p.sendMessage("§a§l Uccisioni §e" + new DecimalFormat("#").format(kills));
        }
        if(deaths == Swdeaths){
        p.sendMessage("§c§l Morti §e" + new DecimalFormat("#").format(deaths + 1));
        } else {
         p.sendMessage("§c§l Morti §e" + new DecimalFormat("#").format(deaths));
        }
      }
ho provato così ma so che è sbagliato. non so come risolvere, @Edo2 so che sei molto bravo Wink
10/07/2014, 14:12gamerover98 ha scritto: ciao a tutti ho un problema con questo mio codice. In pratica se in gioco ti ammazzo (con gli metodi di minecraft [spade,pugni,ecc...]) ti segna +1. Dato che vorrei implementarlo in skywars, vorrei che quando ti ammazzo con i metodi di skywars (ex: ti faccio cadere nel vuoto) segni +1 


Citazione:      double kills = getConfig().getInt("stats." + p.getName() + ".kills");
      double deaths = getConfig().getInt("stats." + p.getName() + ".deaths");
      GamePlayer gamePlayer = PlayerController.get().get((Player)sender);
      double Swkills = gamePlayer.getKills();
      double Swdeaths = gamePlayer.getDeaths();
      
      if (args.length == 0)
      {
        p.sendMessage("§7§m]§6§m-----------§8[§eStatistiche§8]§6§m----------§7§m[");
        p.sendMessage(" ");
        if(Swkills == kills){
        p.sendMessage("§a§l Uccisioni §e" + new DecimalFormat("#").format(kills +1));
        } else {
         p.sendMessage("§a§l Uccisioni §e" + new DecimalFormat("#").format(kills));
        }
        if(deaths == Swdeaths){
        p.sendMessage("§c§l Morti §e" + new DecimalFormat("#").format(deaths + 1));
        } else {
         p.sendMessage("§c§l Morti §e" + new DecimalFormat("#").format(deaths));
        }
      }
ho provato così ma so che è sbagliato. non so come risolvere, @Edo2 so che sei molto bravo Wink
(Modificato 10/07/2014, 15:48 da EdoDev2.)
10/07/2014, 15:46Edo2 ha scritto:
10/07/2014, 14:12gamerover98 ha scritto: ciao a tutti ho un problema con questo mio codice. In pratica se in gioco ti ammazzo (con gli metodi di minecraft [spade,pugni,ecc...]) ti segna +1. Dato che vorrei implementarlo in skywars, vorrei che quando ti ammazzo con i metodi di skywars (ex: ti faccio cadere nel vuoto) segni +1 


Citazione:      double kills = getConfig().getInt("stats." + p.getName() + ".kills");
      double deaths = getConfig().getInt("stats." + p.getName() + ".deaths");
      GamePlayer gamePlayer = PlayerController.get().get((Player)sender);
      double Swkills = gamePlayer.getKills();
      double Swdeaths = gamePlayer.getDeaths();
      
      if (args.length == 0)
      {
        p.sendMessage("§7§m]§6§m-----------§8[§eStatistiche§8]§6§m----------§7§m[");
        p.sendMessage(" ");
        if(Swkills == kills){
        p.sendMessage("§a§l Uccisioni §e" + new DecimalFormat("#").format(kills +1));
        } else {
         p.sendMessage("§a§l Uccisioni §e" + new DecimalFormat("#").format(kills));
        }
        if(deaths == Swdeaths){
        p.sendMessage("§c§l Morti §e" + new DecimalFormat("#").format(deaths + 1));
        } else {
         p.sendMessage("§c§l Morti §e" + new DecimalFormat("#").format(deaths));
        }
      }
ho provato così ma so che è sbagliato. non so come risolvere, @Edo2 so che sei molto bravo Wink
cosa?
10/07/2014, 15:56gamerover98 ha scritto:
10/07/2014, 15:46Edo2 ha scritto:
10/07/2014, 14:12gamerover98 ha scritto: ciao a tutti ho un problema con questo mio codice. In pratica se in gioco ti ammazzo (con gli metodi di minecraft [spade,pugni,ecc...]) ti segna +1. Dato che vorrei implementarlo in skywars, vorrei che quando ti ammazzo con i metodi di skywars (ex: ti faccio cadere nel vuoto) segni +1 


Citazione:      double kills = getConfig().getInt("stats." + p.getName() + ".kills");
      double deaths = getConfig().getInt("stats." + p.getName() + ".deaths");
      GamePlayer gamePlayer = PlayerController.get().get((Player)sender);
      double Swkills = gamePlayer.getKills();
      double Swdeaths = gamePlayer.getDeaths();
      
      if (args.length == 0)
      {
        p.sendMessage("§7§m]§6§m-----------§8[§eStatistiche§8]§6§m----------§7§m[");
        p.sendMessage(" ");
        if(Swkills == kills){
        p.sendMessage("§a§l Uccisioni §e" + new DecimalFormat("#").format(kills +1));
        } else {
         p.sendMessage("§a§l Uccisioni §e" + new DecimalFormat("#").format(kills));
        }
        if(deaths == Swdeaths){
        p.sendMessage("§c§l Morti §e" + new DecimalFormat("#").format(deaths + 1));
        } else {
         p.sendMessage("§c§l Morti §e" + new DecimalFormat("#").format(deaths));
        }
      }
ho provato così ma so che è sbagliato. non so come risolvere, @Edo2 so che sei molto bravo Wink
cosa?

Ok Scusami
ma il più 1 puoi aggiungerlo con playerdeathevent...
Poi usando i Gamestate imposti più 1 all'int del config
potresti spiegarti meglio per favore? un esempio sul mio codice sarebbe perfetto
10/07/2014, 16:12gamerover98 ha scritto: potresti spiegarti meglio per favore? un esempio sul mio codice sarebbe perfetto

Scusami ma sono da portatile e non sono a casa dopo ti spiego meglio.
A Dopo

Allora riguardo a quello che ho detto prima in skywars ci potrebbero essere(Quasi sicuro) i gameState cioè:
sono degli stati in cui il player si trova durante il game che vengono settari nelle varie parti del plugin.
ESEMPIO: INLOBBY,INGAME,RESTARTING Ecc...
Sotto ti metto un esempio di gamestate
Te fai un package dei Listener oppure crei un semplice Listener
dove ci metti:


@EventHandler
public void on(PlayerDeathEvent e) {
if (Skywars.stato == GameState.INGAME) { // Esempio di GameState come potrebbe essere (Come ti ripeto sono via quindi non ho tempo di vedere skywars)
Player killer = e.getEntity().getKiller(); // ottieni il player che ha killato
Player vittima = e.getEntity(); // Ottieni la vittima
Per il Main.getInstance() si intende l'overriding della classe Main per poter scrivere getConfig() anche in altre classi
Main.getInstance().getConfig().getInt("stats." + killer.getName() + ".kills" + 1); //Prendi il config del killer e addi 1 a kills
}
}

Normalmente nelle altre classi non si possono usare i metodi getServer() getConfig() di bukkit quindi si fa l'overriding.
Sintassi: Main.getInstance().getConfig() Esempio

Cioe se la classe main dove ce onEnable si chiama Main 
andrai a scrivere

public class Main extends JavaPlugin { 


private static Main plugin;


public static Main getInstance() { 
return plugin;
}

// cosi facendo scriverai nelle altri classi Main.getInstance()... e potrai utilizzare i metodi getConfig() getServer() ecc...

// se la classe main si chiamerà ciao sarà 
private static ciao plugin; ecc...
}
(Modificato 10/07/2014, 17:08 da EdoDev2.)
Discussioni simili
Risposta di Sk3py
14/09/2018, 15:08
Risposta di Maxetto
30/08/2018, 11:45
Risposta di ReNext
23/08/2018, 01:22
Risposta di VaiTon86
16/08/2018, 12:24
 
6 121
Risposta di ReNext
15/08/2018, 00:35

Utente(i) che stanno guardando questa discussione: 1 Ospite(i)