Minecraft ProgrammierungsHilfe-Befehl [Developer]

3 Antworten

Wenn du Datein in einer yml Datei speichern kannst dann kannst die auch ausgeben.. es sei denn du hast dir den Code irgendwo rauskopiert oder aus nem Youtube video.. was Ich übrigens ziemlich arm finde... Erst Java lernen.. Dann Bukkit!

12

Nicht böse gemeint. Aber du hast selbst keine Ahnung, was du laberst, oder? Die Int abfrage ist per Bukkit geregelt, es ist kein normaler int, also hat es auch was mit der Bukkit API zu tun und ich habe es nicht nötig, etwas abzuschreiben :)

Bitte beim nächsten Mal eine gescheite Antwort oder gar keine..

LG,

Trotzdem danke, dass du wenigstens etwas geschrieben hast.

0
28
@iGamePlayHD
es ist kein normaler int

Was denn sonst? Ein Objekt wird's schon nicht sein.

Die Int abfrage ist per Bukkit geregelt

Hhm. Ne.

Es wirkt tatsächlich so, als würdes du Code eher kopieren, als selbst schreiben. Es gibt keine "Befehle" in Java, nur Expressions (Ausdrücke). Ich empfehle, Java zu lernen. Das erleichtert das Pluginschreiben ungemein.

0

if(this.plugin.cfg.getInt("Spieler."+p.getName*"" > Bukkit.getOnlinePlayers

Bitte was soll das sein? Der Vergleich einer Liste mit einem Integer?

Wenn du die Punkte sortieren willst, solltest du alle Spieler (bzw. deren Punkte) auslesen und diese durch eine Schleife laufen lassen. Wenn der Punktestand des Spielers, der gerade von der Schleife "durchsucht" wird, höher ist als der jetzige Höchstpunktestand, dann ist dieser der neue Höchstpunktestand.

Ersteinmal Java Lernen, danke.

[Bukkit] Scheduler Problem, wie lösen?

Ich bin gerade dabei, ein Minispiel-Plugin zu schreiben. Das Plugin soll warten, bis genug Spieler in der Lobby sind (bei mir zum testen nur zwei). Jedoch, wenn zwei oder mehr beitreten hängt sich der Scheduler (und damit auch der Countdown) bei 19 auf... Fehlermeldungen gibt es keine. Hier der Code:

package Methods;

import org.bukkit.Bukkit; import org.bukkit.entity.Player;

import main.TironGame;

public class Waiting { private TironGame plugin; public Waiting(TironGame plugin) { this.plugin = plugin; }

@SuppressWarnings("deprecation") public void waiting(){ if(this.plugin.stillwaiting = true){ this.plugin.waitid = Bukkit.getScheduler().scheduleAsyncRepeatingTask(this.plugin, new Runnable(){

            @Override
            public void run() {
                if(Waiting.this.plugin.wait !=0){
                Waiting.this.plugin.wait--;
                
                            //Kontrolle\\
                System.out.println("WAITING:"+Waiting.this.plugin.wait);

                for(Player all : Bukkit.getOnlinePlayers()){
                        if(Waiting.this.plugin.inlobby.contains(all)){
                        all.setLevel(0);
                        }
                    }
                
                    //Wenn Anzahl der Spieler gleich oder größer zwei ist
                    if(Waiting.this.plugin.inlobby.size() >= 2){
                        
                        Waiting.this.plugin.stillwaiting = false; //Wartet nicht mehr auf Spieler
                        
                        //GameStart
                        
                        Waiting.this.plugin.wait = 20;
                        Bukkit.getScheduler().cancelTask(Waiting.this.plugin.waitid);
                        
                    }
                    
                    if(Waiting.this.plugin.inlobby.size() == 0){
                        Waiting.this.plugin.wait = 20;
                        Bukkit.getScheduler().cancelTask(Waiting.this.plugin.waitid);
                    }
                    
                    
                    if(Waiting.this.plugin.wait == 1){
                        for(Player all : Bukkit.getOnlinePlayers()){
                            if(Waiting.this.plugin.inlobby.contains(all)){
                                int inlobby = Waiting.this.plugin.inlobby.size();
                                all.sendMessage(Waiting.this.plugin.prefix   + "§7Wartet auf weitere Spieler! §8[§6"+inlobby+"§8/§62§8]");
                            }
                        }
                    }
            }else{
                
                Waiting.this.plugin.wait = 20;
                Waiting.this.waiting();
                Bukkit.getScheduler().cancelTask(Waiting.this.plugin.waitid);
            }
                
          }
              
          }, 0, 20);
      }
  }

}

...zur Frage

Processing, Objekt auf Knopfdruck bewegen?

Guten Abend,

Wir nehmen in der Schule gerade Processing durch und ich würde gerne eine Animation machen.

Ich würde gerne ein Vierreck machen, welches sich auf Knopfdruck einen oder mehrere Pixel nach oben verschiebt. Der Befehl soll nur einmalig ausgeführt werden, sodass der Knopf losgelassen und erneut gedrückt werden muss.

Nach Fertigstellung des Programms, sollten zwei Spieler ein Wettrennen machen. Wer sein Rechteck schneller nach oben bugsieren kann. Also wer schneller drücken kann, gewinnt.

Ich habe hier schon etwas probiert, jedoch funktioniert es nicht, und ich weiss nicht was ich noch machen kann:

void setup(){

size (500,500);

}

void draw(){

int i=500;

rect (220,i,40,40);

if(key==CODED){

if(keyCode==UP){

i=i-10;

}

}

}

Ich bin quasi noch Anfänger und würde mich daher freuen, wenn man mit einfachen und ähnlichen Befehlen antworten könnte.

Danke im Voraus auf eventuelle Antworten Liebe Grüsse

...zur Frage

Wo ist mein Fehler im Häusersystem?

Hey, ich programmiere derzeit ein Häusersystem in Minecraft.

Ich habe mir das so vorgestellt, dass ein Schild im Radius von 3 Blöcken (von der Tür aus) ein Schild sein muss und dort der Name des Spielers drin stehen sollte.

Soweit so gut, so habe ich das gemacht. Doch trotz Schild können andere Spieler die Türen öffnen.

Ich bedanke mich schon einmal im Voraus für die Antworten.

_________________________________________

  @EventHandler
  public void onOpenDoor(PlayerInteractEvent e) {
    if (e.getAction() == Action.LEFT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
      Block b = e.getClickedBlock();
      Player p = e.getPlayer();
  
      if (b.getType() == Material.WOODEN_DOOR) {
        Door d = (Door) b.getState().getData();
        int radius = 3;
        Block middle = b;
  
        for (int x = radius; x >= -radius; x--) {
          for (int y = radius; y >= -radius; y--) {
            for (int z = radius; z >= -radius; z--) {
              if (middle.getRelative(x, y, z).getType() == Material.WALL_SIGN) {
                Sign s = (Sign) middle.getRelative(x, y, z).getState();
  
                if (!(s.getLine(1).equals("" + p.getName() + ""))) {
                  if (!d.isOpen()) {
                    d.setOpen(true);
  
                    if (d.isTopHalf())
                      ((Door)b.getRelative(BlockFace.DOWN, 1).getState().getData()).setOpen(true);
                    else
                      ((Door)b.getRelative(BlockFace.UP, 1).getState().getData()).setOpen(true);
  
                    if (e.isCancelled()) {
                      e.setCancelled(false);
                    }
  
                    b.getState().update();
                  }
                  else {
                    d.setOpen(false);
  
                    if (d.isTopHalf())
                      ((Door)b.getRelative(BlockFace.DOWN, 1).getState().getData()).setOpen(false);
                    else
                      ((Door)b.getRelative(BlockFace.UP, 1).getState().getData()).setOpen(false);
  
                    if (e.isCancelled()) {
                      e.setCancelled(false);
                    }
  
                    b.getState().update();
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
...zur Frage

Was möchtest Du wissen?