• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Hilfe

noahscheurer

Minecrafter
Registriert
13 Februar 2014
Beiträge
6
Diamanten
0
Hallo ich bin dran ein eigenes Plugin zu schreiben allerdins kommt immer eine Fehelermeldng und ich weis niccht was ich falsch mache.
PS: Ich bin ein anfänger also nicht schreiben eh du bist voll blöd wieso blickst du das nicht.
Hier ist die komplette datei:
Code:
package Plugin;

import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.GameModeCommand;
import org.bukkit.plugin.java.JavaPlugin;

public class Abo2 extends JavaPlugin {
  public void onEnable()  {
   System.out.println("[Abo2 PvP] Plugin gestartet");
  }
  public void onDisable()  {
    System.out.println("[Abo2 PvP] Plugin gestoppt");
  }
  public boolean onCommand(CommandSender sender, Command cmd String commandLabel, String args) {
     Player p = (Player) sender;
  //Kommand "Start"
  if(cmd.getName().equalsIgnoreCase("Start"));
  {
      if(p.hasPermission("pvp.start"));
  }
  this.getServer().getOnlinePlayers();
  for (Player player : this.getServer().getOnlinePlayers()) {
     p.setGameMode(GameMode.ADVENTURE);
     getServer().broadcastMessage("Die Schutzzeit beginnt. Sie geht noch 30 Sekunden");
     myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {

       public void run() {
       getServer().broadcastMessage("Die Schutzzeit geht noch 15 Sekunden!");
       }
       }, 300L);
     myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {

       public void run() {
       getServer().broadcastMessage("Die Schutzzeit geht noch 10 Sekunden!");
       }
       }, 400L);
     myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {

       public void run() {
       getServer().broadcastMessage("Die Schutzzeit geht noch 5 Sekunden!");
       }
       }, 500L);
     myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {

       public void run() {
       getServer().broadcastMessage("Die Schutzzeit geht noch 3 Sekunden!");
       }
       }, 540L);
     myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {

       public void run() {
       getServer().broadcastMessage("Die Schutzzeit geht noch 2 Sekunden!");
       }
       }, 560L);
     myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {

       public void run() {
       getServer().broadcastMessage("Die Schutzzeit geht noch 1 Sekunde!");
       }
       }, 580L);
     myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {

       public void run() {
       getServer().broadcastMessage("Die Schutzzeit ist vorbei!");
       }
       }, 600L);
     return true;
  
  }
  }
 
Zuletzt bearbeitet von einem Moderator:

JTK222

Threadripper
Registriert
5 September 2013
Beiträge
1.150
Diamanten
323
Minecraft
JTK222
Also am einfachsten:
Code:
player.addPotionEffect(new PotionEffect(PotionEffectType type, int dauerinticks, int staerke));
der Effect Type müsste entweder die ID von Resistenz sein oder es gibt nen eigenen Enum dafür bin mir gerade nicht sicher und kann nicht nachschauen.
Bei der dauer in ticks ist es entweder die 3 ticks = sec regel oder die server TPS aber ich glaube damit ist die 3 ticks = 1 sec regel gemeint also 90 für 30 sec.
Bei der stärke am besten 100 reinschreiben.
Das sollte den Spieler schon ein mal unverwundbar machen.

2. Caste nie ein object bevor du sicher bist dass man es dazu casten kann.
also anstelle von:
Code:
public boolean onCommand(CommandSender sender, Command cmd String commandLabel, String args) {
Player p = (Player) sender;
lieber so:
Code:
public boolean onCommand(CommandSender sender, Command cmd String commandLabel, String args) {
Player p = null;
if(sender instanceof Player)
p = (Player) sender;
dann wenn du einen befehl machst nach dem befehl mit.
Code:
If(p == null){
return true;
}
überprüfen ob es ein Spieler ist.
 

noahscheurer

Minecrafter
Registriert
13 Februar 2014
Beiträge
6
Diamanten
0
Damit wir dir helfen können wäre es hilfreich auch die Fehlermeldung zu kennen ;)
Und was versteht du unter Godmode? Den Creative oder etwas anderes?
Mit godmode meine ich das man kein schaden bekommen kann. Die Fehlermeldung schicke ich gleich

Unbenannt.PNG
 
Zuletzt bearbeitet von einem Moderator:

Malte

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
17 März 2012
Beiträge
524
Diamanten
310
Minecraft
Lergin_
In der 16. Zeile fehlt ein Komma zwischen Command cmd und String commandLabel sobald du dieses gesetzt hast sollte sich auch der andere Fehler erübrigen.
Code:
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String args) {

Achja und genau diesen Fehler gibt dir auch deine Fehlermeldung aus. Also am Besten bei einem Fehler immer erstmal die angegebene Zeile auf Syntaxfehler untersuchen ;)
 

noahscheurer

Minecrafter
Registriert
13 Februar 2014
Beiträge
6
Diamanten
0
In der 16. Zeile fehlt ein Komma zwischen Command cmd und String commandLabel sobald du dieses gesetzt hast sollte sich auch der andere Fehler erübrigen.
Code:
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String args) {

Achja und genau diesen Fehler gibt dir auch deine Fehlermeldung aus. Also am Besten bei einem Fehler immer erstmal die angegebene Zeile auf Syntaxfehler untersuchen ;)
wie schon gesagt bin ich noch anfänger und wusste das nicht genau aber danke
 

noahscheurer

Minecrafter
Registriert
13 Februar 2014
Beiträge
6
Diamanten
0
In der 16. Zeile fehlt ein Komma zwischen Command cmd und String commandLabel sobald du dieses gesetzt hast sollte sich auch der andere Fehler erübrigen.
Code:
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String args) {

Achja und genau diesen Fehler gibt dir auch deine Fehlermeldung aus. Also am Besten bei einem Fehler immer erstmal die angegebene Zeile auf Syntaxfehler untersuchen ;)
allerdings ist der 2te fehler immer noch da es zeigt mir an ich soll ein { dort ist aber schon eins
 
Oben