Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Es gibt eine Version, jedoch ist das vielleicht illegal (keine Ahnung gerade). Die Seite heißt spigotmc{PUNKT}info. Wenn dieser Beitrag gelöscht werden muss, tut es mir Leid!
 
Aber dann wären die ganzen Server die momentan laufen (z.B Gommehd.net) illegal.
 
Aber dann wären die ganzen Server die momentan laufen (z.B Gommehd.net) illegal.
Nein, die hatten die Jar schon vorher. Außerdem werden auf SpigotMC.org regelmäßig Binary-Patches releast, d.h. mit einem Patcher kann man die Jar-Dateien updaten, ohne nms Klassen erneut herunterzuladen.
 
Wieder mal ein nicht objektorientierter Java-Code von mir, auf dessen Informationen du von anderen Klassen ohne weiteres zugreifen kannst(statische Referenzen).
Wenn du was von Objektorientierter Programmierung verstehst, sende ich dir gerne auch eine solche Version zu.
Deine Frage ist auch etwas zweideutig formuliert xD
Du sagst, wenn man einen TNT-Block rechtsklickt, dein Code sagt, wenn man ein TNT-Item rechtsklickt.
Habe ein Paar Fehler korrigiert :)
Hier der Code (nicht getestet!):
PHP:
    //True wenn Spieler im SilentHub ist - wird nur gespeichert solange der Server nicht reloaded wird
    //Für dauerhaftes Speichern am besten Redis/MySQL nutzen, wenn du wissen willst wie, lass es mich wissen ;)
    public static HashMap<Player, Boolean> playersInSilentHub = new HashMap<Player,Boolean>();
    @EventHandler
    public void on(PlayerInteractEvent e) {

        Player p = e.getPlayer();

        if (e.getAction() == Action.RIGHT_CLICK_AIR
                || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
            if (e.getItem().getType() == Material.TNT) {
                if (e.getItem().getItemMeta().getDisplayName()
                        .equalsIgnoreCase("§e§lSilent-Hub")) {
                    //Ist Spieler imSilentHub
                    if(playersInSilentHub.get(p)){
                        for (Player player : Bukkit.getOnlinePlayers()) {
                            p.showPlayer(player);
                        }
                        p.playSound(p.getLocation(), Sound.WITHER_DEATH, 1,
                                2);
                        p.playEffect(p.getLocation(), Effect.SMOKE, 2);
                        p.sendMessage(prefix + "§2Du hast den §eSilent-Hub§2 verlassen!");
                        playersInSilentHub.put(p, false);
                    }else{
                        for (Player player : Bukkit.getServer().getOnlinePlayers()) {
                            p.hidePlayer(player);
                        }
                        //Dieser Block von Anweisungen muss außerhalb der For-Schleife sein. Er wird sonst so oft ausgeführt, wie Spieler online sind.
                        //->Java Basics For-Schleifen
                        p.sendMessage(prefix + "§2Du bist nun in der §eSilent-Hub§2!");
                        p.playSound(p.getLocation(), Sound.ENDERMAN_TELEPORT,
                                1, 5);
                        p.playEffect(p.getLocation(), Effect.ENDER_SIGNAL, 2);
                        playersInSilentHub.put(p, true);
                    }
                }
            }
        }
      
      
    }
  
    //Spieler kann direkt beim Joinen zum InvisibleHub geaddet werden.
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e){
        if(!playersInSilentHub.containsKey(e.getPlayer())){
            playersInSilentHub.put(e.getPlayer(), false);
        }else{
            e.getPlayer().sendMessage(prefix  + "§2 Du befindest dich im §eSilentHub");
            for(Player p : Bukkit.getOnlinePlayers()){
                e.getPlayer().hidePlayer(p);
            }
        }
    }
Danke :D habe es gestern abend noch versucht :DDDD
 
Wieder mal ein nicht objektorientierter Java-Code von mir, auf dessen Informationen du von anderen Klassen ohne weiteres zugreifen kannst(statische Referenzen).
Wenn du was von Objektorientierter Programmierung verstehst, sende ich dir gerne auch eine solche Version zu.
Deine Frage ist auch etwas zweideutig formuliert xD
Du sagst, wenn man einen TNT-Block rechtsklickt, dein Code sagt, wenn man ein TNT-Item rechtsklickt.
Habe ein Paar Fehler korrigiert :)
Hier der Code (nicht getestet!):
PHP:
    //True wenn Spieler im SilentHub ist - wird nur gespeichert solange der Server nicht reloaded wird
    //Für dauerhaftes Speichern am besten Redis/MySQL nutzen, wenn du wissen willst wie, lass es mich wissen ;)
    public static HashMap<Player, Boolean> playersInSilentHub = new HashMap<Player,Boolean>();
    @EventHandler
    public void on(PlayerInteractEvent e) {

        Player p = e.getPlayer();

        if (e.getAction() == Action.RIGHT_CLICK_AIR
                || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
            if (e.getItem().getType() == Material.TNT) {
                if (e.getItem().getItemMeta().getDisplayName()
                        .equalsIgnoreCase("§e§lSilent-Hub")) {
                    //Ist Spieler imSilentHub
                    if(playersInSilentHub.get(p)){
                        for (Player player : Bukkit.getOnlinePlayers()) {
                            p.showPlayer(player);
                        }
                        p.playSound(p.getLocation(), Sound.WITHER_DEATH, 1,
                                2);
                        p.playEffect(p.getLocation(), Effect.SMOKE, 2);
                        p.sendMessage(prefix + "§2Du hast den §eSilent-Hub§2 verlassen!");
                        playersInSilentHub.put(p, false);
                    }else{
                        for (Player player : Bukkit.getServer().getOnlinePlayers()) {
                            p.hidePlayer(player);
                        }
                        //Dieser Block von Anweisungen muss außerhalb der For-Schleife sein. Er wird sonst so oft ausgeführt, wie Spieler online sind.
                        //->Java Basics For-Schleifen
                        p.sendMessage(prefix + "§2Du bist nun in der §eSilent-Hub§2!");
                        p.playSound(p.getLocation(), Sound.ENDERMAN_TELEPORT,
                                1, 5);
                        p.playEffect(p.getLocation(), Effect.ENDER_SIGNAL, 2);
                        playersInSilentHub.put(p, true);
                    }
                }
            }
        }
      
      
    }
  
    //Spieler kann direkt beim Joinen zum InvisibleHub geaddet werden.
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e){
        if(!playersInSilentHub.containsKey(e.getPlayer())){
            playersInSilentHub.put(e.getPlayer(), false);
        }else{
            e.getPlayer().sendMessage(prefix  + "§2 Du befindest dich im §eSilentHub");
            for(Player p : Bukkit.getOnlinePlayers()){
                e.getPlayer().hidePlayer(p);
            }
        }
    }
Wieso erstellst du denn eine HashMap mit Player + Boolean , anstatt einfach ne ArrayList du banause :D
 
Hat jemand ne Ahnung, wieso ich mit Maven nen Error beim "runnen" bekomme?
PHP:
Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact com.mojang:AccountsClient:jar:unspecified in bukkit-repo (http://repo.bukkit.org/content/groups/public/)
Weiß jemand, wie ich den fixen kann. Ich denke ich brauche ne andere public repo, falls es noch eine gibt.
 
Hat jemand ne Ahnung, wieso ich mit Maven nen Error beim "runnen" bekomme?
PHP:
Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact com.mojang:AccountsClient:jar:unspecified in bukkit-repo (http://repo.bukkit.org/content/groups/public/)
Weiß jemand, wie ich den fixen kann. Ich denke ich brauche ne andere public repo, falls es noch eine gibt.
Ich würd mich gern mit Maven auskennen, tue es aber nicht ._.
 
Wieso erstellst du denn eine HashMap mit Player + Boolean , anstatt einfach ne ArrayList du banause :D
Verständnis, würde er die Grundlagen von Java gut kennen, hätte er nicht fragen müssen. Außerdem kann man das so auf andere Sachen wie z.B. Kills übertragen, falls man keine OOP kann, und es kennt nicht jeder HashMaps .. :) (also von denen die hier posten sieht man das teilweise an den Fragen/am Code)
 
Zuletzt bearbeitet von einem Moderator:
Hallo

ich habe schon wieder mal eine frage wie kann ich eine anzahl aus der config auslesen so habe ich es probiert aber es kommt schon in eclipse ein fehler Bitte um hilfe :D
Code:
ItemStack extra = new ItemStack(Material.valueOf(this.getConfig().getString("Respawnkit.Extra1")), this.getConfig().getString("Respawnkit.Extra1.Anzahl"));
         ItemStack extra1 = new ItemStack(Material.valueOf(this.getConfig().getString("Respawnkit.Extra2")), this.getConfig().getString("Respawnkit.Extra2.Anzahl"));
         ItemStack extra2 = new ItemStack(Material.valueOf(this.getConfig().getString("Respawnkit.Extra")), this.getConfig().getString("Respawnkit.Extra3.Anzahl"));
 
Die Anzahl ist ein int. Benutze daher einfach getInt("Respawnkit.Extra1.Anzahl") (und bei den anderen auch) und es sollte gehen :)
 
Hey :)
Ich wollte für die 2.0 eröffnung von dem Server meines Freundes ohm ein Plugin schenken :).
Ich habe mir überlegt , dass das Spiel darum geht wer in einer bestimmten Zeit die meisten Mobs tötet. Aber wie zähle ich das und wie kann ich bei einer bestimmten position maobs spawnen lassen ._.?
(Sry bin net der Beste in Java xD <3)
 
Status
Für weitere Antworten geschlossen.

Soziale Medien

  • X
  • TikTok

Über uns

  • GommeHD.net ist einer der größten Minecraft-Server der Welt. Dir gefällt unser Server? Dann unterstütze uns durch einen Kauf im Shop!
  • Shop