Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Ok: Hier bekommst du einen Teil des Codes:

Map.java im Package de.Nico.timegames.voting

Code:
package de.Nico.timegames.voting;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.omg.CORBA.portable.ValueOutputStream;

import de.Nico.timegames.Global;

public class Map {

    List<Location> loclist = new ArrayList<Location>();
    String name;
    public int vote;
   
    public Map(String name, List<Location> loclist){
        this.loclist = loclist;
        this.name = name;
        vote = 0;
    }
    public String getName(){
        return name;
    }
    public void addVote(){
        vote++;
    }
    public void spawnPlayers(){
        int i = 0;
        for(Player all : Bukkit.getOnlinePlayers()){
            all.teleport(loclist.get(i));                                                 //Zeile 34
            Global.locs.put(all.getName(), loclist.get(i));
            i++;
        }
    }
   
}

Hier ist der Fehler in Zeile 34

und Lobby.Jave in de.Nico.timegames.countdown

Code:
package de.Nico.timegames.countdown;

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

import de.Nico.timegames.Global;
import de.Nico.timegames.Main;
import de.Nico.timegames.game.GameState;
import de.Nico.timegames.stats.Stats_Reader.Stats_Data;
import de.Nico.timegames.stats.Stats_Reader.Stats_Writer;
import de.Nico.timegames.utils.BossHealth;
import de.Nico.timegames.voting.Voting_Settings;

public class Lobby {
   
    public static int LobbyCounter = 120;
   
    public static void startLobby(){
       
        Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getInstance(), new Runnable() {
           
            @SuppressWarnings("deprecation")
            public void run() {
               
            if(Main.status == GameState.LOBBY){   
               
                if(Bukkit.getOnlinePlayers().length >= 2){
                   
                    if(LobbyCounter == 120 || LobbyCounter == 90 || LobbyCounter == 60 || LobbyCounter == 30 || LobbyCounter == 15 || LobbyCounter == 10
                            || LobbyCounter == 5 || LobbyCounter == 4 || LobbyCounter == 3 || LobbyCounter == 2 || LobbyCounter == 1){
                        Bukkit.broadcastMessage(Main.pr+"§aDas Spiel Startet in §c"+LobbyCounter+" §aSekunden.");
                    }
                   
                    for(Player all : Bukkit.getOnlinePlayers()){
                        all.setLevel(LobbyCounter);
                        all.setExp(0);
                        double b = LobbyCounter;
                        BossHealth.displayText(all, "§3TimeGames §e| §aLobby §b"+LobbyCounter, b/120);
                    }
                    if(LobbyCounter == 12){
                        Global.voting = false;
                        Voting_Settings.endVote();
                        Bukkit.broadcastMessage(Main.pr+"Die Map "+Global.winMap.getName()+" hat das Voting mit "+Global.winMap.vote+" Stimmen gewonnen.");
                    }
                    if(LobbyCounter == 0){
                        Main.status = GameState.WARMUP;
                        Bukkit.broadcastMessage(Main.pr+"§6Das Spiel hat begonnen.");
                        WarmUp.startWarmUp();
                        Global.winMap.spawnPlayers();
                        for(Player all : Bukkit.getOnlinePlayers()){
                            all.getInventory().clear();
                            all.getInventory().setHelmet(null);
                            all.getInventory().setChestplate(null);
                            all.getInventory().setLeggings(null);
                            all.getInventory().setBoots(null);
                            all.setFoodLevel(20);
                            all.setHealth(20D);
                            all.setLevel(0);
                            all.setExp(0);
                            Global.alive.add(all.getName());
                            if(Main.sql == true){
                            Stats_Writer.addStats(Stats_Data.SpieleGespielt, all.getName(), 1);
                            }
                        }
                    }

                    LobbyCounter--;
                   
                }else{
                    for(Player all : Bukkit.getOnlinePlayers()){
                        all.setLevel(LobbyCounter);
                        all.setExp(0);
                        BossHealth.displayText(all, "§3TimeGames §e| §aLobby §cWarte...", 1);
                    }
                    LobbyCounter = 120;
                }
            }
            }
        }, 0L, 20L);
       
    }

}

Solltest du mehr brauchen schreib einfach. ;)
Crash Log bitte einfügen
 
:D wie wärs mit einem try - catch Statement?

try {
ddosGommehd();
}catch (irgendeineexeption ex){
ex.printstacktrace();
System.out.println("Lappen :3");
System.exit();
}
public int ddosGommeHD(){
return 9; //Das mächt misch zum waren ////////////häcka
}


Ok bevor das aus den Fugen gerät, lassen wir lieber den Fragesteller den Crashlog und die OnEnable Methode einfügen.

Also, Fragesteller , kannst du bitte die OnEnable und einen Crashlog einfügen?


Wobei OnEnable am Start geladen wird und der Server dementsprechend am Start crashen müsste, aber egal.
 
public int ddosGommeHD(){
return 9; //Das mächt misch zum waren ////////////häcka
}


Ok bevor das aus den Fugen gerät, lassen wir lieber den Fragesteller den Crashlog und die OnEnable Methode einfügen.

Also, Fragesteller , kannst du bitte die OnEnable und einen Crashlog einfügen?


Wobei OnEnable am Start geladen wird und der Server dementsprechend am Start crashen müsste, aber egal.
Das ist nicht lustig xD dort verkacke ich immer :P entweder beim plugin.yml oder bei sonst was :D
 
Ok: Hier bekommst du einen Teil des Codes:

Map.java im Package de.Nico.timegames.voting

Code:
package de.Nico.timegames.voting;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.omg.CORBA.portable.ValueOutputStream;

import de.Nico.timegames.Global;

public class Map {

    List<Location> loclist = new ArrayList<Location>();
    String name;
    public int vote;
  
    public Map(String name, List<Location> loclist){
        this.loclist = loclist;
        this.name = name;
        vote = 0;
    }
    public String getName(){
        return name;
    }
    public void addVote(){
        vote++;
    }
    public void spawnPlayers(){
        int i = 0;
        for(Player all : Bukkit.getOnlinePlayers()){
            all.teleport(loclist.get(i));                                                 //Zeile 34
            Global.locs.put(all.getName(), loclist.get(i));
            i++;
        }
    }
  
}

Hier ist der Fehler in Zeile 34

und Lobby.Jave in de.Nico.timegames.countdown

Code:
package de.Nico.timegames.countdown;

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

import de.Nico.timegames.Global;
import de.Nico.timegames.Main;
import de.Nico.timegames.game.GameState;
import de.Nico.timegames.stats.Stats_Reader.Stats_Data;
import de.Nico.timegames.stats.Stats_Reader.Stats_Writer;
import de.Nico.timegames.utils.BossHealth;
import de.Nico.timegames.voting.Voting_Settings;

public class Lobby {
  
    public static int LobbyCounter = 120;
  
    public static void startLobby(){
      
        Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getInstance(), new Runnable() {
          
            @SuppressWarnings("deprecation")
            public void run() {
              
            if(Main.status == GameState.LOBBY){  
              
                if(Bukkit.getOnlinePlayers().length >= 2){
                  
                    if(LobbyCounter == 120 || LobbyCounter == 90 || LobbyCounter == 60 || LobbyCounter == 30 || LobbyCounter == 15 || LobbyCounter == 10
                            || LobbyCounter == 5 || LobbyCounter == 4 || LobbyCounter == 3 || LobbyCounter == 2 || LobbyCounter == 1){
                        Bukkit.broadcastMessage(Main.pr+"§aDas Spiel Startet in §c"+LobbyCounter+" §aSekunden.");
                    }
                  
                    for(Player all : Bukkit.getOnlinePlayers()){
                        all.setLevel(LobbyCounter);
                        all.setExp(0);
                        double b = LobbyCounter;
                        BossHealth.displayText(all, "§3TimeGames §e| §aLobby §b"+LobbyCounter, b/120);
                    }
                    if(LobbyCounter == 12){
                        Global.voting = false;
                        Voting_Settings.endVote();
                        Bukkit.broadcastMessage(Main.pr+"Die Map "+Global.winMap.getName()+" hat das Voting mit "+Global.winMap.vote+" Stimmen gewonnen.");
                    }
                    if(LobbyCounter == 0){
                        Main.status = GameState.WARMUP;
                        Bukkit.broadcastMessage(Main.pr+"§6Das Spiel hat begonnen.");
                        WarmUp.startWarmUp();
                        Global.winMap.spawnPlayers();
                        for(Player all : Bukkit.getOnlinePlayers()){
                            all.getInventory().clear();
                            all.getInventory().setHelmet(null);
                            all.getInventory().setChestplate(null);
                            all.getInventory().setLeggings(null);
                            all.getInventory().setBoots(null);
                            all.setFoodLevel(20);
                            all.setHealth(20D);
                            all.setLevel(0);
                            all.setExp(0);
                            Global.alive.add(all.getName());
                            if(Main.sql == true){
                            Stats_Writer.addStats(Stats_Data.SpieleGespielt, all.getName(), 1);
                            }
                        }
                    }

                    LobbyCounter--;
                  
                }else{
                    for(Player all : Bukkit.getOnlinePlayers()){
                        all.setLevel(LobbyCounter);
                        all.setExp(0);
                        BossHealth.displayText(all, "§3TimeGames §e| §aLobby §cWarte...", 1);
                    }
                    LobbyCounter = 120;
                }
            }
            }
        }, 0L, 20L);
      
    }

}

Solltest du mehr brauchen schreib einfach. ;)
Schick mal den Code von deiner Global Klasse. Da der Fehler in Zeile 34 ist und dort in eine HashMap geputtet wird, gehe ich davon aus, dass die HashMap null ist. Desweiteren empfehle ich dir, die Attribute einer Klasse privat zu machen und Getter bzw. Setter zu generieren. ;) Hat was mit Datenkapselung zu tun. Am besten geht das mit Lombok ( http://projectlombok.org/ ). Crasht dein Server wirklich oder wird nur eine Exception geworfen?

Was mir noch auffällt: Variablen werden in lowerCamelCase geschrieben, Klassen in UpperCamelCase und ohne Unterstriche, Sonderzeichen oder Zahlen.
Außerdem benutzt du für deine Map-Klasse ein Objekt. Warum tust du das nicht auch für die Lobbyklasse? Das wäre dann schönerer Code.
 
Schick mal den Code von deiner Global Klasse. Da der Fehler in Zeile 34 ist und dort in eine HashMap geputtet wird, gehe ich davon aus, dass die HashMap null ist. Desweiteren empfehle ich dir, die Attribute einer Klasse privat zu machen und Getter bzw. Setter zu generieren. ;) Hat was mit Datenkapselung zu tun. Am besten geht das mit Lombok ( http://projectlombok.org/ ). Crasht dein Server wirklich oder wird nur eine Exception geworfen?

Was mir noch auffällt: Variablen werden in lowerCamelCase geschrieben, Klassen in UpperCamelCase und ohne Unterstriche, Sonderzeichen oder Zahlen.
Außerdem benutzt du für deine Map-Klasse ein Objekt. Warum tust du das nicht auch für die Lobbyklasse? Das wäre dann schönerer Code.
Also es gibt eine exception und der server Crash manchmal den code bekommt ihr wenn ich am pc bin
 
Schick mal den Code von deiner Global Klasse. Da der Fehler in Zeile 34 ist und dort in eine HashMap geputtet wird, gehe ich davon aus, dass die HashMap null ist. Desweiteren empfehle ich dir, die Attribute einer Klasse privat zu machen und Getter bzw. Setter zu generieren. ;) Hat was mit Datenkapselung zu tun. Am besten geht das mit Lombok ( http://projectlombok.org/ ). Crasht dein Server wirklich oder wird nur eine Exception geworfen?

Was mir noch auffällt: Variablen werden in lowerCamelCase geschrieben, Klassen in UpperCamelCase und ohne Unterstriche, Sonderzeichen oder Zahlen.
Außerdem benutzt du für deine Map-Klasse ein Objekt. Warum tust du das nicht auch für die Lobbyklasse? Das wäre dann schönerer Code.
Ich war nicht am PC :C Konnte keine Zeilen zählen.
 
Moin Leute ich habe mal wieder ein Problem und weiß nicht weiter. :D

Ich möchte die JoinMessage ändern. Das hat auch wunderbar geklappt, aber dann wollte ich das so machen, dass wenn man eine bestimmte Permission hat die JoinNachrichten von allen spielern die Joinen sieht, aber wenn man diese Permission nicht hat, soll man keine einzige JoinMessage sehen.

Bei mir bekommt aber jeder eine JoinMessage egal ob er die Premission hat oder nicht. :/

Ich hoffe ihr könnt mir helfen. :)

Wenn ihr meinen Code braucht sagt bitte Bescheid. :)

Gruß,
lusu007 :)
 
Moin Leute ich habe mal wieder ein Problem und weiß nicht weiter. :D

Ich möchte die JoinMessage ändern. Das hat auch wunderbar geklappt, aber dann wollte ich das so machen, dass wenn man eine bestimmte Permission hat die JoinNachrichten von allen spielern die Joinen sieht, aber wenn man diese Permission nicht hat, soll man keine einzige JoinMessage sehen.

Bei mir bekommt aber jeder eine JoinMessage egal ob er die Premission hat oder nicht. :/

Ich hoffe ihr könnt mir helfen. :)

Wenn ihr meinen Code braucht sagt bitte Bescheid. :)

Gruß,
lusu007 :)
Natürlich brauchen wir deinen Code und deine plugin.yml wo du die permissions hoffentlich eingetragen hast
 
Natürlich brauchen wir deinen Code und deine plugin.yml wo du die permissions hoffentlich eingetragen hast


Ok hier kommt er. :D

Das ist meine Klasse:
PHP:
package me.lusu007.lobbysystem.Listener;

import me.lusu007.lobbysystem.Boots.RemoveBoots;
import me.lusu007.lobbysystem.Countdowns.COUNTDOWN_Time;
import me.lusu007.lobbysystem.Methoden.Inventory_Methoden;
import me.lusu007.lobbysystem.Methoden.SpawnLoc_Methoden;
import me.lusu007.lobbysystem.System.main;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;


/**
* Created by Lukas on 24.12.2014.
*/
public class PlayerJoinEvent_Listener implements Listener {

    private main plugin;

    public PlayerJoinEvent_Listener(main main) {
        this.plugin = main;
        plugin.getServer().getPluginManager().registerEvents(this, main);
    }

    @EventHandler
    public void onJoin(PlayerJoinEvent e) {

        Player p = e.getPlayer();

        Inventory_Methoden.clearInventory(p);
        Inventory_Methoden.getIngameItems(p);

        RemoveBoots.removeboots(p);

        if (Bukkit.getOnlinePlayers().length == 1) {
            plugin.timecountdown = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new COUNTDOWN_Time(), 0, 20 * 1);
        }

        SpawnLoc_Methoden.teleportspawn(p);

        if(p.hasPermission("server.join.message")) {
            e.setJoinMessage(plugin.prefix + "§3Der Spieler §6" + p.getDisplayName() + " §3hat den Server betreten.");
        } else {
            e.setJoinMessage(null);
        }
    }
}

plugin.yml
PHP:
name: LobbySystem
author: lusu007
version: 1.0

main: me.lusu007.lobbysystem.System.main

commands:
  set:
    descriction: Locations setzten
    usage: /set [args]
  teleport:
    description: Zu einem Spieler teleportieren.
    usage: /teleport [Spieler]
    aliases: [tp]
  gamemode:
    description: Ändert den GameMode von dir oder anderen Spielern.
    usage: /gamemode [Mode] [Spieler]
    aliases: [gm]
  test:
    description: Testing shit

permissions:
  server.join.message:
    default: false
  server.quit.message:
    default: false
  server.getitem.schutzschild:
    default: false
  server.getitem.autonicker:
    default: false
  server.getitem.silentlobby:
    default: false
  server.getitem.flugstab:
    default: false
  server.locations.set:
    default: false
  server.see.death:
    default: false
  server.build:
    default: true
  server.pl.command:
    default: false
  server.furnace.extract:
    default: false
  server.set.gamemode:
    default: false
  server.visible:
    default: false
  server.bypass.schild:
    default: false
  server.getitem.lobbyswitcher:
    default: false
  server.feature.blockdestroy:
    default: false
  server.feature.doubleJump:
    default: false
  server.inventory.serversettings:
    default: false

Die Permission ist in der plugin.yml eingetragen. :)
 
Ok hier kommt er. :D

Das ist meine Klasse:
PHP:
package me.lusu007.lobbysystem.Listener;

import me.lusu007.lobbysystem.Boots.RemoveBoots;
import me.lusu007.lobbysystem.Countdowns.COUNTDOWN_Time;
import me.lusu007.lobbysystem.Methoden.Inventory_Methoden;
import me.lusu007.lobbysystem.Methoden.SpawnLoc_Methoden;
import me.lusu007.lobbysystem.System.main;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;


/**
* Created by Lukas on 24.12.2014.
*/
public class PlayerJoinEvent_Listener implements Listener {

    private main plugin;

    public PlayerJoinEvent_Listener(main main) {
        this.plugin = main;
        plugin.getServer().getPluginManager().registerEvents(this, main);
    }

    @EventHandler
    public void onJoin(PlayerJoinEvent e) {

        Player p = e.getPlayer();

        Inventory_Methoden.clearInventory(p);
        Inventory_Methoden.getIngameItems(p);

        RemoveBoots.removeboots(p);

        if (Bukkit.getOnlinePlayers().length == 1) {
            plugin.timecountdown = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new COUNTDOWN_Time(), 0, 20 * 1);
        }

        SpawnLoc_Methoden.teleportspawn(p);

        if(p.hasPermission("server.join.message")) {
            e.setJoinMessage(plugin.prefix + "§3Der Spieler §6" + p.getDisplayName() + " §3hat den Server betreten.");
        } else {
            e.setJoinMessage(null);
        }
    }
}

plugin.yml
PHP:
name: LobbySystem
author: lusu007
version: 1.0

main: me.lusu007.lobbysystem.System.main

commands:
  set:
    descriction: Locations setzten
    usage: /set [args]
  teleport:
    description: Zu einem Spieler teleportieren.
    usage: /teleport [Spieler]
    aliases: [tp]
  gamemode:
    description: Ändert den GameMode von dir oder anderen Spielern.
    usage: /gamemode [Mode] [Spieler]
    aliases: [gm]
  test:
    description: Testing shit

permissions:
  server.join.message:
    default: false
  server.quit.message:
    default: false
  server.getitem.schutzschild:
    default: false
  server.getitem.autonicker:
    default: false
  server.getitem.silentlobby:
    default: false
  server.getitem.flugstab:
    default: false
  server.locations.set:
    default: false
  server.see.death:
    default: false
  server.build:
    default: true
  server.pl.command:
    default: false
  server.furnace.extract:
    default: false
  server.set.gamemode:
    default: false
  server.visible:
    default: false
  server.bypass.schild:
    default: false
  server.getitem.lobbyswitcher:
    default: false
  server.feature.blockdestroy:
    default: false
  server.feature.doubleJump:
    default: false
  server.inventory.serversettings:
    default: false

Die Permission ist in der plugin.yml eingetragen. :)
Code:
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {

        Player p = e.getPlayer();

        Inventory_Methoden.clearInventory(p);
        Inventory_Methoden.getIngameItems(p);

        RemoveBoots.removeboots(p);

        if (Bukkit.getOnlinePlayers().length == 1) {
            plugin.timecountdown = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new COUNTDOWN_Time(), 0, 20 * 1);
        }

        SpawnLoc_Methoden.teleportspawn(p);

        e.setJoinMessage(null);
     
        Bukkit.getOnlinePlayers().forEach(player -> {
            if(player.hasPermission("deinePermission")){
                player.sendMessage(plugin.prefix + "§3Der Spieler §6" + p.getDisplayName() + " §3hat den Server betreten.");
            }
        });
    }
(Schön eingerückt hier: http://hastebin.com/uligowiwac.avrasm)

e.setJoinMessage(String string); Setzt die JoinMessage für ALLE Spieler. Also muss man diese auf null setzen, dann durch alle Spieler durchloopen und jeweils checken, ob sie die jeweilige Permission haben. Wenn dies der Fall ist, sendet man ihnen dann die Nachricht manuell.
Der ForEach call ist ein Java 8 feature. Wenn du kein Java 8 nutzt, dann kannst du ihn auch mit einer For-Schleife ersetzen (einfach die if anweisung nehmen und nen Schleifenkopf drübersetzen.).


//EDIT: Packagenamen bitte in lowercase und Klassennamen in UpperCamelCase schreiben. Erhöht die Übersichtlichkeit. (Hab ich gerade in deiner plugin.yml gesehen ;) )
 
Code:
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {

        Player p = e.getPlayer();

        Inventory_Methoden.clearInventory(p);
        Inventory_Methoden.getIngameItems(p);

        RemoveBoots.removeboots(p);

        if (Bukkit.getOnlinePlayers().length == 1) {
            plugin.timecountdown = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new COUNTDOWN_Time(), 0, 20 * 1);
        }

        SpawnLoc_Methoden.teleportspawn(p);

        e.setJoinMessage(null);
  
        Bukkit.getOnlinePlayers().forEach(player -> {
            if(player.hasPermission("deinePermission")){
                player.sendMessage(plugin.prefix + "§3Der Spieler §6" + p.getDisplayName() + " §3hat den Server betreten.");
            }
        });
    }
(Schön eingerückt hier: http://hastebin.com/uligowiwac.avrasm)

e.setJoinMessage(String string); Setzt die JoinMessage für ALLE Spieler. Also muss man diese auf null setzen, dann durch alle Spieler durchloopen und jeweils checken, ob sie die jeweilige Permission haben. Wenn dies der Fall ist, sendet man ihnen dann die Nachricht manuell.
Der ForEach call ist ein Java 8 feature. Wenn du kein Java 8 nutzt, dann kannst du ihn auch mit einer For-Schleife ersetzen (einfach die if anweisung nehmen und nen Schleifenkopf drübersetzen.).


//EDIT: Packagenamen bitte in lowercase und Klassennamen in UpperCamelCase schreiben. Erhöht die Übersichtlichkeit. (Hab ich gerade in deiner plugin.yml gesehen ;) )


Danke. :) Sowas ähliches habe ich mir schon gedacht. ;)
Werde ich gleich mal ausprobieren. :)

Kann man mit Java 8 Spigotplugins programmieren? Hab immer gedacht das das nicht geht.

Sollte man lieber Java 7 oder Java 8 benutzen?
 
Zuletzt bearbeitet:
Hey ich habe wieder mal ne frage was an meinen Code falsch ist also bei der letzten solchen Klammer "{"
sagt Eclipse als Error "insert "}" to complete ClassBody"?!
Hier ist noch der ganze Code zu sehen: http://pastebin.com/pDBGYHRB
ps. Ich wollte ein so Plugin machen wo die Pfeile explodieren also so wie bei RageMode!
MfG Timmi
 
Hey ich habe wieder mal ne frage was an meinen Code falsch ist also bei der letzten solchen Klammer "{"
sagt Eclipse als Error "insert "}" to complete ClassBody"?!
Hier ist noch der ganze Code zu sehen: http://pastebin.com/pDBGYHRB
ps. Ich wollte ein so Plugin machen wo die Pfeile explodieren also so wie bei RageMode!
MfG Timmi


Bei dir fehlt eine geschweifte Klammer ;)
PHP:
package testplugin;
import javax.sound.midi.MidiDevice.Info;
import org.bukkit.Bukkit;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.CreatureType;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.plugin.Plugin;
@SuppressWarnings("deprecation")
public class bowshot implements Listener  {
        private Info plugin;
        public bowshot(Info info) {
                this.plugin = info;
                ((Entity) this.plugin).getServer().getPluginManager().registerEvents(this, (Plugin) plugin);
        }
      
        @EventHandler
        public void onProjectileHit(ProjectileHitEvent e) {
              
                if(e.getEntity() instanceof Arrow) {
                        final Arrow arrow = (Arrow) e.getEntity();
                      
                        Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin) plugin, new Runnable() {
                                @Override
                                public void run() {
                                        arrow.getWorld().spawnCreature(arrow.getLocation(), CreatureType.COW);
                                        arrow.remove();
                                }
                              
                        }, 20*3);
                      
                      
                }
      }
}


So sollte es funktionieren. ;)
 
Java ist aufwärtskompatibel. Es scheint mir als hättest du zu viele Tutorials des "Informatikprofis" DeBukkit gesehen.
Na klar gibt es minimale inkompatibilitäten, aber mit denen wirst du wahrscheinlich nie Probleme haben.
Und glaub mir, würde Java nicht abwärtskompatibel sein, könnten nur wenige Menschen Minecraft spielen.
Spigot ist mit Java 8 kompatibel, es wird auch mit Java 9,10 oder den weiteren Java-Versionen kompatibel sein.
Es kann dann zwar immer minimale Probleme geben, (z.B. eine nicht mehr aktive / entfernte Library oder geänderte Funktionalität von Methoden), aber solange an diesem Projekt gearbeitet wird, wirst du keine Probleme damit haben. Es wird sogar ausdrücklich empfohlen Java 8 zu nutzen.

Wenn du Spigot ausführst und das JDK 8 auf deinem PC hast, wird es auch mit Java 8 ausgeführt. Wieso also sollte es beim Coden Probleme geben? ;) Das einzige was du nicht machen kannst: ein in Java 8 geschriebenes Plugin mit einer älteren Java-Version öffnen. Dieses kann den Bytecode nicht lesen.

Mehr hier : http://stackoverflow.com/a/12068889
 
  • Like
Reaktionen: lusu007
Java ist aufwärtskompatibel. Es scheint mir als hättest du zu viele Tutorials des "Informatikprofis" DeBukkit gesehen.
Na klar gibt es minimale inkompatibilitäten, aber mit denen wirst du wahrscheinlich nie Probleme haben.
Und glaub mir, würde Java nicht abwärtskompatibel sein, könnten nur wenige Menschen Minecraft spielen.
Spigot ist mit Java 8 kompatibel, es wird auch mit Java 9,10 oder den weiteren Java-Versionen kompatibel sein.
Es kann dann zwar immer minimale Probleme geben, (z.B. eine nicht mehr aktive / entfernte Library oder geänderte Funktionalität von Methoden), aber solange an diesem Projekt gearbeitet wird, wirst du keine Probleme damit haben. Es wird sogar ausdrücklich empfohlen Java 8 zu nutzen.

Wenn du Spigot ausführst und das JDK 8 auf deinem PC hast, wird es auch mit Java 8 ausgeführt. Wieso also sollte es beim Coden Probleme geben? ;) Das einzige was du nicht machen kannst: ein in Java 8 geschriebenes Plugin mit einer älteren Java-Version öffnen. Dieses kann den Bytecode nicht lesen.

Mehr hier : http://stackoverflow.com/a/12068889


Ehrlich gesagt kannte ich den noch nicht mal. :D

Ok. Dann werde ich meine Java Version mal updaten. :)
 
Hey gleich nochmal in der Console wird immer angezeigt Invaild plugin.yml?!
Mein Plugin.yml ist so aufgebaut....
Name: BowShot
Version: 1.0
Author: Timmi

Main: Bowshot


Mache ich bei Main was falsch da in der Console auch noch steht plugin.yml can not find
MfG Timmi
 
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