Um hier auch mal eine ordentliche Antwort zu geben, die nicht auf Discord basiert (Leute, andere Leute wollen die Antwort vlltbsuch lesen?!)..

Um die Bewegungen eines Spielers zu registrieren und damit zu arbeiten, verwendet man einen sog. Listener, in dem Fall ein PlayerMoveListener.

Der hiermit verknüpfte Code wird jedes Mal ausgeführt, sobald sich der Spieler bewegt (dazu zählt btw auch MouseMovement, also Umgucken). In diesem kannst du die Position des Spielers mit [Player].getLocation() abfragen und diese mit [].subtract/add usw verändern. In deinem fall auf den Block unter dem Spieler. Darauffolgend ist es nun möglich mit [].getBlock().getMaterial() den Typ des Blockes zu erhalten. Diese lässt sich nun einfach mit dem von dir gewünschten Typ abgleichen (==) und bei Gleichheit zB ein Sieg auszulösen. (Hierbei ist eine Abfrage != null sinnvoll, um eine NullPointerException zu verhindern)

Ich hoffe ich konnte dir helfen (und mal wieder ein wenig Qualität in GF bringen..)

LG Atomsi

...zur Antwort

„Was wäre eigentlich, wenn das jetzt so wäre?“ und dann davon auf euch schließen? So ne Situation ist wohl nicht sooo häufig ;)

...zur Antwort

Durch das verkleinern von a (zB <1) werden die Werte verringert. Wenn du normalerweise auf f(2) also eine 4 erhalten würdest, kannst du nun für 0.5 beispielsweise eine 2 erhalten. Die Parabel steckt sich also

...zur Antwort
/god funktion programieren?

Hi, Ich beschäftige mich grad mit Plugin Programierung in Minecraft. Ich wollte eine god funktion in mein plugin einbauen. Hab dies auch gemacht hier der code:

package de.TreftCraft;
import java.util.ArrayList; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player;

public class God
  implements CommandExecutor
{
  public static ArrayList<String> god = new ArrayList();
 
  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
  {
    Player p = (Player)sender;
    if (p.hasPermission("system.god"))
    {
      if (args.length == 0)
      {
        if (god.contains(p.getName()))
        {
          god.remove(p.getName());
          p.sendMessage("Du bist nun nicht mehr im Godmode!");
        }
        else
        {
          god.add(p.getName());
          p.sendMessage("Du bist nun im Godmode!");
        }
      }
      else {
        p.sendMessage("Benutze /God");
      }
    }
    else {
      p.sendMessage("Dazu hast du keine Rechte!");
    }
    return false;
  }
}

Und der EntityDamageListener:

package de.TreftCraft;
import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent;


public class EntityDamage implements Listener {     @EventHandler     public void onDamage(EntityDamageEvent e) {         Player p = (Player) e.getEntity();         if (God.god.contains(p.getName())) {             e.setCancelled(true);         } else {             e.setCancelled(false);         }     } }


Ich hab alles in der Main.java hinzugefügt es geht auch alles aber in der Console wird dieser Fehler angezeigt:

[10:44:17 ERROR]: Could not pass event EntityDamageEvent to System v1.0
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot_server.jar:git-Spigot-c3093ef-7e94e65]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot_server.jar:git-Spigot-c3093ef-7e94e65]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot_server.jar:git-Spigot-c3093ef-7e94e65]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot_server.jar:git-Spigot-c3093ef-7e94e65]
        at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:93) [spigot_server.jar:git-Spigot-c3093ef-7e94e65] .......

EDIT: Ich muss mich entschuldigen das es hier so komisch angezeigt wird

...zur Frage

Das Casten funktioniert (wie schon beschrieben) nicht...

Auch solltest du beachten, dass es noch andere Listener zB EntityDamageEntitiy gibt, die du eventuell auch canceln solltest. Könnte aber auch generell alles über den EntityDamage laufen, da bin ich nicht sicher

...zur Antwort

Nein kann es nicht - es verstößt grob gegen die Mojang EULA. Und da ist deine Meinung tatsächlich komplett egal, es ist und bleibt egal was du sagst, ILLEGAL.

Einfach mal die EULA lesen und zack: ne Klage weniger am Hals ;)

Es gibt natürlich Tricks die ein wenig zu umgehen...

Schönen Tag noch - Atomsi

...zur Antwort

Ja das hörst du wahrscheinlich- is bei meinem zumindest so

...zur Antwort

Sollte gehen

...zur Antwort

Wie weit bist du denn schon?

...zur Antwort

Normalerweise nicht

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.