Intellij Teleport- command einbauen(Java und Maven)?

1 Antwort

Die Position wird ja in der Location loc gespeichert. Diese ist nur im Scope der Methode onCommand verfügbar. Dementsprechend erstellst du bei jedem Aufruf des Commands eine neue Variable loc. Du hast ja oben schon den VanishManager, dort müsstest du dann die Location reinspeichern, sodass du sie bei einem erneuten Aufruf wieder laden und den Spieler teleportieren kannst.

Übrigens: Es macht nicht so ganz Sinn, dass die Methode getVanishManager heisst, die Klasse aber nur Vanish heisst. Ich würde die Klasse hier auch zu VanishManager umbenennen. Somit weiss man auch auf einen Blick besser, was dort drin sein könnte.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

Nicolaus55 
Beitragsersteller
 21.12.2021, 15:38
package system.Commands;

import org.bukkit.*;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConstructor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import system.system.Main;
import system.vanish.Vanish;

import java.util.Vector;

public class VanishCommand implements CommandExecutor {

    @Override
    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
        Vanish vanish = Main.getInstance().getVanishManager();

        assert sender instanceof Player;
        Player player = (Player) sender;


        Location location = player.getLocation();



            if (vanish.isVanished(player)) {


                vanish.setVanished(player, false);
                player.setGameMode(GameMode.SURVIVAL);
                sender.sendMessage(ChatColor.GOLD + "Manetti is raus");
                player.teleport(location);


            } else {
                vanish.setVanished(player, true);
                player.setGameMode(GameMode.CREATIVE);
                sender.sendMessage(ChatColor.GOLD + "Support-Mode");


            }
            return true;



    }
}

Hab das jetzt mal probiert und erstmals danke, es kommt keine Fehlermeldung mehr. Aber er er teleportiert mich nicht zurück zu der stelle wo ich den Command das 1 mal ausgeführt habe sondern er teleportiert mich dahin wo ich den Command das 2mal ausgeführt habe also genau da wo ich eh stehe.

Nicolaus55 
Beitragsersteller
 21.12.2021, 16:23
@Nicolaus55
 public Vanish getVanishManager() {
    



        return this.vanish;

Ich kann in dieser Methode keine abfrage machen