Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Soweit ich weiß gibt/gab es eine Methode namens setResourcepack (String url)
Man muss glaube ich den link angeben, wo das Resourcepack gedownloaded werden kann.

Ok Danke. :)


Im Spigotfourm wurde auch geschrieben, dass man die 1.8 anstatt der 1.8.3 benutzen sollte. Noch so ne Frage von mir: Benutzt wer von euch die BuildTools oder ladet ihr euch Spigot von getSpigot runter?

Ich verstehe die BuildTools irgendwie nicht ....
Wie funktionieren die?

Was ist das für eine Homepage getSpigot?
 
Zuletzt bearbeitet:
Rechtsklick auf ein schild was in der 2 reihe steht als enchantment auf das item in der hand machen
 
@FrancoisduBois da habe ich ja schon nur mit equals will ich nicht jedes enchantment abgehen was es gibt sonder ich will es ungefähr so machen aber das geht ja nicht
Code:
handm.addEnchant((Enchantment)s.getLine(1), 1, true);
 
Du holst dir den String aus der Linie und machst dann:
Code:
addEnchantment(Enchantment.getByName("String aus der Linie"),  3, 3);
Der String aus der Linie muss so heißen wie das Enchantment
 
Ich habe eine Frage.

Wie programmier ich Serversigns?

Also die Join Schilder, wie auf GommeHD.net. Hat jemand ein gutes Tutorial oder kann mir sagen, wie das geht?


Gruß,
-lusu007
 
Also die Join Schilder, wie auf GommeHD.net.
Ähm sowas wirste ned so leicht hin bekommen :)

Ich würd für die Spieler-Anzahl MySQL benutzen :)

Code:
    @EventHandler
    public void on(PlayerInteractEvent ev) {
        if (ev.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
            Block i = ev.getClickedBlock();
            if (i.getState() instanceof Sign) {

                BlockState stateBlock = i.getState();
                Sign sign = (Sign) stateBlock;

                if (sign.getLine(0).startsWith("[")) {
                    ByteArrayOutputStream b = new ByteArrayOutputStream();
                    DataOutputStream out = new DataOutputStream(b);
                   
                    try {
                        out.writeUTF("Connect");
                        out.writeUTF(sign.getLine(1));
                    } catch (IOException e1) { }
                   
                    plr.sendPluginMessage(plugin, "BungeeCord", b.toByteArray());
                    plr.sendMessage("§6Du wirst auf den Server §c" + sign.getLine(1) + "§6 verbunden!");

                }
            }
        }
}
 
Ähm sowas wirste ned so leicht hin bekommen :)

Ich würd für die Spieler-Anzahl MySQL benutzen :)

Code:
    @EventHandler
    public void on(PlayerInteractEvent ev) {
        if (ev.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
            Block i = ev.getClickedBlock();
            if (i.getState() instanceof Sign) {

                BlockState stateBlock = i.getState();
                Sign sign = (Sign) stateBlock;

                if (sign.getLine(0).startsWith("[")) {
                    ByteArrayOutputStream b = new ByteArrayOutputStream();
                    DataOutputStream out = new DataOutputStream(b);
                  
                    try {
                        out.writeUTF("Connect");
                        out.writeUTF(sign.getLine(1));
                    } catch (IOException e1) { }
                  
                    plr.sendPluginMessage(plugin, "BungeeCord", b.toByteArray());
                    plr.sendMessage("§6Du wirst auf den Server §c" + sign.getLine(1) + "§6 verbunden!");

                }
            }
        }
}

Ja leider :(

Kann man den Server nicht einfach anpingen?



Ich habe eine Anleitung hier gefunden, doch kommt immer ein Fehler, wenn ich das nach der Anleitung programmiere.

PHP:
[13:16:57 WARN]: [BlockBreaker.net_ServerSigns] Task #12 for BlockBreaker.net_Se
rverSigns v1.0 generated an exception
java.lang.NullPointerException
        at net.blockbreaker.serversigns.system.Game$1.run(Game.java:78) ~[?:?]
        at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.run(CraftTask.java
:71) ~[spigot.jar:git-Spigot-"606148f"]
        at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftScheduler.mainThreadHea
rtbeat(CraftScheduler.java:350) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:6
95) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:3
16) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:6
25) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java
:528) [spigot.jar:git-Spigot-"606148f"]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_40]

Game Klasse:
PHP:
package net.blockbreaker.serversigns.system;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Sign;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;
import java.io.IOException;

/**
* Created by Lukas on 03.04.2015.
*/
public class Game extends JavaPlugin implements Listener {

    public static Game instance;

    public static File locFile = new File("plugins/Test", "Locations.yml");
    public static FileConfiguration locCfg = YamlConfiguration.loadConfiguration(locFile);

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
        updateSign();

        getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
    }

    @EventHandler
    public void onSignChange(SignChangeEvent e) {
        Player p = e.getPlayer();
        Location loc = e.getBlock().getLocation();
        if(e.getLine(0).toLowerCase().contains("[join]")) {
            locCfg.set("loc.sign.X", loc.getX());
            locCfg.set("loc.sign.Y", loc.getY());
            locCfg.set("loc.sign.Z", loc.getZ());
            locCfg.set("loc.sign.World", loc.getWorld().getName());

            e.setLine(0, "§4§l█████████");
            e.setLine(1, "§4§lPinging");
            e.setLine(2, "§4§l...");
            e.setLine(3, "§4§l█████████");
            try {
                locCfg.save(locFile);
                p.sendMessage("§aSchild erstellt");
            } catch (IOException e1) {
                p.sendMessage("§cSchild NICHT erstellt");
                e1.printStackTrace();
            }
        }
    }

    public void updateSign() {
        Bukkit.getScheduler().runTaskTimer(this, new Runnable() {
            @Override
            public void run() {
                double x = locCfg.getDouble("loc.sign.X");
                double y = locCfg.getDouble("loc.sign.Y");
                double z = locCfg.getDouble("loc.sign.Z");
                //World w = Bukkit.getWorld(locCfg.getString("loc.sign.World"));

                Location loc = new Location(Bukkit.getWorld(locCfg.getString("loc.sign.World")), x, y, z);

                Sign s = (Sign) loc.getBlock().getState();

                Server server = new Server(Game.locCfg.getString("Server." + s.getLine(1) + ".IP"));

                s.setLine(3, server.parseData(Server.Connection.ONLINE_PLAYERS) + " / " + server.parseData(Server.Connection.MAX_PLAYERS));
                s.setLine(2, server.parseData(Server.Connection.MOTD));

                if (s.getLine(2).equalsIgnoreCase("null")) {
                    s.setLine(0, "§4§l█████████");
                    s.setLine(1, "§4§lOFFLINE");
                    s.setLine(2, "§4§l- / -");
                    s.setLine(3, "§4§l█████████");
                } else if (!s.getLine(2).equalsIgnoreCase("null")) {
                    s.setLine(0, "§7[Join]");
                    s.setLine(1, null);
                    s.setLine(2, "§2" + server.parseData(Server.Connection.MOTD));
                    s.setLine(3, "§f" + server.parseData(Server.Connection.ONLINE_PLAYERS) + "/" + server.parseData(Server.Connection.MAX_PLAYERS));
                }
                s.update();
            }

        }, 100L, 10L);
    }

    public Game() {
        instance = this;
    }

    public static Game getInstance() {
        return instance;
    }
}
Weiß jemand wodran das liegt?
 
Ich habe folgendes Problem:

In dem PlayerInteractEvent habe ich eine Location gespeichert.
(final Location loc = p.getLocation();)
Dies ist mit der Itemabfrage für Gunpowder verbunden.

Darunter mache ich im selben Event eine Itemabfrage für Glowstone.
Komme aber nicht an die Location (loc) ran.

Gibt es etwas höheres als final?
public geht nicht, das muss ich oben positionieren.
Ich möchte die Location von genau DEM Moment haben.
Geht das irgendwie?
 
Naja du machst halt oben Location loc = null;

Dann wann du Location loc = p.getLocation(); machst machst du
Code:
loc = p.getLocation();
So würd ichs jetz machen :)
 
  • Like
Reaktionen: v_f_1
@FrancoisduBois @HamsterCrack Ich habe das jetzt nach dem Tutorial von Pogostick gemacht, doch kommt immer noch ein Fehler.

PHP:
java.lang.ArrayIndexOutOfBoundsException: 1
[14:58:41 WARN]:        at net.blockbreaker.serversigns.StatusSign.update(Status
Sign.java:67)
[14:58:41 WARN]:        at net.blockbreaker.serversigns.StatusSigns$1.run(Status
Signs.java:49)
[14:58:41 WARN]:        at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.ru
n(CraftTask.java:71)
[14:58:41 WARN]:        at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftSchedul
er.mainThreadHeartbeat(CraftScheduler.java:350)
[14:58:41 WARN]:        at net.minecraft.server.v1_8_R1.MinecraftServer.z(Minecr
aftServer.java:695)
[14:58:41 WARN]:        at net.minecraft.server.v1_8_R1.DedicatedServer.z(Dedica
tedServer.java:316)
[14:58:41 WARN]:        at net.minecraft.server.v1_8_R1.MinecraftServer.y(Minecr
aftServer.java:625)
[14:58:41 WARN]:        at net.minecraft.server.v1_8_R1.MinecraftServer.run(Mine
craftServer.java:528)
[14:58:41 WARN]:        at java.lang.Thread.run(Unknown Source)
 
Zuletzt bearbeitet:
@FrancoisduBois @HamsterCrack Ich habe das jetzt nach dem Tutorial von Pogostick gemacht, doch kommt immer noch ein Fehler.

PHP:
java.lang.ArrayIndexOutOfBoundsException: 1
[14:58:41 WARN]:        at net.blockbreaker.serversigns.StatusSign.update(Status
Sign.java:67)
[14:58:41 WARN]:        at net.blockbreaker.serversigns.StatusSigns$1.run(Status
Signs.java:49)
[14:58:41 WARN]:        at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.ru
n(CraftTask.java:71)
[14:58:41 WARN]:        at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftSchedul
er.mainThreadHeartbeat(CraftScheduler.java:350)
[14:58:41 WARN]:        at net.minecraft.server.v1_8_R1.MinecraftServer.z(Minecr
aftServer.java:695)
[14:58:41 WARN]:        at net.minecraft.server.v1_8_R1.DedicatedServer.z(Dedica
tedServer.java:316)
[14:58:41 WARN]:        at net.minecraft.server.v1_8_R1.MinecraftServer.y(Minecr
aftServer.java:625)
[14:58:41 WARN]:        at net.minecraft.server.v1_8_R1.MinecraftServer.run(Mine
craftServer.java:528)
[14:58:41 WARN]:        at java.lang.Thread.run(Unknown Source)
Ganz einfach:
ArrayIndexOutOfBoundsException heißt, dass du versuchst, auf einen Entry des Arrays zuzugreifen, allerdings ist der Index den du angegeben hast zu hoch. In diesem Fall wäre es 1. Das heißt, dass das jeweilige Array nur eine Größe von 1 hat und somit array[1] auf einen Entry im Array zugreifen will, der einen höheren Index hat, als die Größe deines Arrays. In diesem Fall könnte es vlt. so sein, dass dein SchildArray nur eine Zeile hat, also die BukkitAPI nur ein Array der Größe 1 initialisiert.

Und BITTE markiert, wenn ihr code postet immer die Fehlerzeile (z.B. mit //Hier ist der Fehler laut Stacktrace), dies macht die Fehlerfindung um einiges einfacher.-.
 
  • Like
Reaktionen: mickedplay
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