Plugin regiert nicht?

 - (Computer, Minecraft, Spiele und Gaming)

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Was du in Event: https://pastebin.com/YEgbR9Mu geschrieben hast, ist dass bei jedem Befehl, der ausgeführt wird, die Überprüfung mit 4HP stattfindet. Das musst du in

public class MyListener implements Listener {
  @EventHandler
  public static void damage (PlayerDamageEvent e) {
    // Überprüfung
   }
}

Und in deiner Haputklasse musst du den Listener registrieren:

@Override
public void onEnable()
{
  getServer().getPluginManager().registerEvents(new MyListener(), this);
}

Die Codes sind Leitfäden. Eventnamen und Klassennamen sind u.U. nicht korrekt.

https://www.google.de/search?q=spigot+handle+events Google ist dein Freund

// EDIT: oooo cool Gutefrage macht den Code farbig :)

Woher ich das weiß: Hobby

Das event PlayerDamage Event gibt es nicht

0
@snap20

Das sollte jetzt auch kein "Spoonfeeding" sein, sondern ein Lösungsansatz. Google Mal nach "Spigot player damage event", dann wird da schon etwas kommen.

Silbertabletts sind doof

0

Nimm das EntityDamageEvent

1
  1. Das p in plugin.yml muss klein sein
  2. Ein CommandExecuter ist kein Listener für Events
  3. Ein Listener muss registriert werden
  4. Paketnamen ohne Großbuchstaben!
  5. Main ist guter Name für eine Klasse, selbst wenn diese eine main-Methode enthält
  6. Thread.sleep() in einem Gameloop zu verwenden ist eine Todsünde, dadurch pausierst du den gesamten Server für die angegebene Zeit

-> Üblicher Tipp: Lern Java bevor du damit programmierst

kannst du mir irgendwie helfen ich blicke es nicht

0
@snap20

Meine Hilfe steht in der letzten Zeile. Mit so einem Wissen kommst du nicht weit, selbst wenn ich dir jetzt bei diesem Problem helfe. Man muss unten anfangen und sich dann hocharbeiten, oben anfangen funktioniert nicht. In der Schule beginnt man auch nicht in der zwölften Klasse.

0
@FireEraser

Ach was xD In der ersten Klasse fängst du auch direkt mit Bruchrechnen an, bevor du überhaupt schreiben kannst xD

1

5. Main ist kein guter Name für eine Klasse, selbst wenn diese eine main-Methode enthält*

0

so Richtig: package de.snap20lp.Main;

import org.bukkit.Bukkit;

import org.bukkit.Material;

import org.bukkit.Sound;

import org.bukkit.command.Command;

import org.bukkit.command.CommandExecutor;

import org.bukkit.command.CommandSender;

import org.bukkit.entity.Player;

import org.bukkit.event.EventHandler;

import org.bukkit.event.Listener;

import org.bukkit.inventory.Inventory;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener {

   public void onEnable() {

      Bukkit.getPluginManager().registerEvents(new Main(), this);

   }

   public void onDisable() {

   }

   @EventHandler

   public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

      if(sender instanceof Player) {

         Player p = (Player) sender;

         if(p.getHealth() == 3) {

            p.sendMessage("§cLOL");

         }

      }

      return false;

   }

}

0

snap20 lern programmieren oder hör auf damit, das wird nicht viel...

2
@NxcoOP

Das hat nichts mit Programmien, sondern eher mit dem Kenntnis der SpigotAPI zu tun.

0
@Blooker20

Natürlich hat es das, selbst ohne jegliche Spigot Kenntnisse kann man hier klar sehen, dass das falsch ist. Nebenbei ist der Code so unsauber, dass hier die richtigen Java Kenntnisse mit Sicherheit fehlen.

0

Und nun? Du hast eine leere Hauptklasse, da steht nur onEnable und onDisable. Wie wäre es damit, den CommandExecutor zu registrieren?

Warum sollte ich den CommandExecutor registrieren wenn ich keinen Command Haben will deswegen habe ich das CommandExecutor jetzt weg gemacht

0
@snap20

Naja, warum verlinkst du dann auf PasteBin einen CommandExecutor?

0
@snap20

Ja dann schreib eine neue Klasse, wo du das entsprechende Event abfängst und anschließend packst du die hier rein, dann kann man nochmal drüber schauen.

0

Minecraft Java Plugin 1.12.2 Wo ist der Fehler im Code könnt ihr mir bitte Helfen ^^?

Hey, ich habe neulich erst meinen Computer zu Windows 10 Geupquradet also von win7 zu win10.

Ich habe in diesem Code keinen Fehler gefunden Keine Ahung was das ist guckt ihr bitte mal (Es handelt sich um ein Freeze command (Noch nicht Fertig))

Main:

package de.caps.troll.main;

import org.bukkit.plugin.java.JavaPlugin;

import Cmd.Freeze;

public class Main extends JavaPlugin {     public void OnEnable() {         System.out.println("TrollV1 is ready!");         getCommand("freeze").setExecutor(new Freeze());     }

}

Freeze.java

package Cmd;

import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player;

public class Freeze implements CommandExecutor {

    @Override     public boolean onCommand(CommandSender send, Command block, String labl, String[] args) {         Player player = (Player) send;         if((player.hasPermission("troll.troll.freeze") || (player.hasPermission("troll.troll.*")))) {             if(send instanceof Player) {                 if(args.length == 0) {                     player.sendMessage("§6Troll> §fBitte benutze /freeze [Spieler]");                     player.sendMessage("§6Troll> §fZum unfreezen /unfreeze [Spieler]");                 } else {                     @SuppressWarnings("deprecation")                     Player target = Bukkit.getPlayer(args[0]); {                         player.sendMessage("§6Troll> §fDer Spieler "+target.getName()+" wurde gefreezt!");                         target.setWalkSpeed(0);                     }                 }                              } else {                 System.out.println("Jemand hat einen Fehler erzeugt!");             }                                   } else {             player.sendMessage("§4Unbekannter Befehl!");         }         // TODO Auto-generated method stub         return false;     }

}

plugin.yml

name: TrollV1
version: 1.0
main: de.caps.troll.main.Main
commands:
   freeze:
      description: Friere andere Spieler ein!
...zur Frage

Bukkit Plugin HILFE! Wo ist der fehler?

Ich kriege die im Bild dargestellte Fehlermeldung, wenn ich mein Server mit meinem neuen Bukkit Plugin starte. Da ich keine Zeichen mehr frei habe erzähle ich den Sinn des Plugins als Antwort.

Hier der Code:

package me.tclpmc.JoinPremium;

import java.util.HashMap;

import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class main extends JavaPlugin {


HashMap<String, Location> oldLocation = new HashMap<>();

public void onEnable()
{
    System.out.println("JoinPremium v" + this.getDescription().getVersion() + " aktiviert!");
}



public void onDisable()
{
    System.out.println("JoinPremium v" + this.getDescription().getVersion() + " deaktiviert!");
}




public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
    if(!(sender instanceof Player))
    {
        System.out.println("Dieser Befehl kann nicht von der Konsole benutzt werden!");
        return true;
    }

    Player p = (Player) sender;





    //Premium
    if(cmd.getName().equalsIgnoreCase("premium"));
    {
        if(args.length == 0)
        {
            if(p.hasPermission("premium.arg.null"))
            {
                p.sendMessage("§4/join premium ");
            }
                else
                {
                    p.sendMessage("§4Dafür besitzt du keine Berechtigungen!");
                }
        }
        else if(args.length == 1)
        {

            if(args[1].equalsIgnoreCase("join"))
            {

                if(p.hasPermission("premium.join"))
                {
                    oldLocation.put(p.getName(), p.getLocation());
                    p.sendMessage("Deine Position wurde gespeichert!");

                    Location premium = new Location(getServer().getWorld("Sky-Village"), -1247, 42, -353);
                    p.teleport(premium);
            }
            else
            {
                p.sendMessage("§4Dafür besitzt du keine Berechtigungen!");
            }
        }
            else if(args[1].equalsIgnoreCase("leave"))
            {
                if(p.hasPermission("premium.leave"))
                {
                    Location loc = oldLocation.get(p.getName());
                    p.teleport(loc);
                    p.sendMessage("Du bist an deiner gespeicherten Position!");
                }
                else
                {
                    p.sendMessage("§4Dafür besitzt du keine Berechtigungen!");
                }
            }
            else
            {
                p.sendMessage("§4/premium join/leave");
            }
        }
        return true;
    }
}
}

Plugin.yml

name: JoinPremium
author: T3amCraft3rLP
version: 1.0

main: me.tclpmc.JoinPremium.main

commands:
premium:
    description: Premium join and leave
    usage: /<command>

permissions:
  premium.*:
 description all premium join and leave permissions
 children:
      premium.arg.null: true
     premium.join: true
      premium.leave: true

 premium.arg.null:
  description: if args null

  premium.join:
 description: premium join

 premium.leave: 
  description: if args null
...zur Frage

Minecraft Plugin programmieren plugin wird nicht angezeigt?

Hallo ich habe jetzt angefangen ein bissle mit eclipse zu "Programmieren", ich habe mir ein youtube Video angguckt und eig alles nachgemacht aber trotzdem funktioniert das Plugin nicht. Ich habe einige sachen verändert wie die Texte die angezeigt werden und so also nciht 1:1 übernommen trotzdem wenn ich in Minecraft /plugin eingebe wird das plugin nicht angezeigt. Ich hoffe ihr könnt mir helfen hier die codes von eclipse.

package me.ben940;

import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin { public void onEnable() { System.out.println("[Info] Plugin wurde erfolgreich acktiviert");

}
public void onDisable() {
    System.out.println("[Info] Plugin wurde erfolgreich deaktiviert");
}


public boolean onCommand(CommandSender sender, Command cmd, String cmdlabel, String[] args) {
        Player p = (Player) sender;
        if(cmd.getName().equalsIgnoreCase("info")) {
            p.sendMessage("§2[Info] §4Der server gehört Milchpackung_ und");
            p.setHealth(20);
            p.setFoodLevel(20);
            p.sendMessage("Du hast nun wieder volle Herzen und hast keinen Hunger mehr");
            return true;
        }
        if(cmd.getName().equalsIgnoreCase("clear")) {
            if(p.hasPermission("Info.clear")) {
                p.getInventory().clear();
                p.sendMessage("Dein Inventar wurde gecleared");
                return true;
            }
        }
        
        
        return false;

}
@EventHandler
public void onjoin(PlayerJoinEvent e) {
    Player p = e.getPlayer();
    if(p.hasPermission("Info.join")) {
        e.setJoinMessage("§4" + p.getName() +  "ist dem Spiel beigetreten");
    } else {
        e.setJoinMessage("§4" + p.getName() +  "§4ist dem Spiel beigetreten");
        
    }
    
}
@EventHandler
public void onoutput(PlayerQuitEvent e) {
    e.setQuitMessage("§c" + e.getPlayer().getName() +  "§bhat das Spiel verlassen");
}
@EventHandler
public void onkick(PlayerKickEvent e) {
    e.setLeaveMessage("§2" + e.getPlayer().getName() + "§bwurde gekickt");
}

}

package org.bukkit.plugin.java;

public class JavaPlugin {

}

name: Start author: ben940 main: me.ben940.Main commands: info: description: Zeigt Server Info an usage: clear: description: Leert dein Inventar usage: permission: Info.clear aliases[cl]

die Sachen sind leider unformatiert bei den usage: ist beim comman um das command <> drum und ein /vor dem ocmmand in den<>

...zur Frage

Was möchtest Du wissen?