Почему containsKey () возвращает false, даже если UUID находится в HashMap? - PullRequest
1 голос
/ 26 мая 2019

Привет, я делаю небольшой сервер Minecraft для меня и некоторых друзей, и я некоторое время не работал с Java, я использую spigot 1.14.1, кстати.к сожалению, мой containsKey () возвращает false, хотя я выполнил первую команду и знаю, что мой UUID находится в HashMap.Если бы кто-нибудь мог объяснить, это было бы здорово, если возможно, измененная версия моего кода, кроме объяснения :) Большое спасибо в продвинутом.

Я пытался сделать свой собственный логический объект не работал, к сожалению

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.UUID;

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

import me.melorn.com.pineapplegang.mc.chatutility.Prefix;
import me.melorn.com.pineapplegang.mc.programutility.HashMapUtility;

public class TempYannick implements CommandExecutor{

    private static Location joejoespawn;

    private HashMap<UUID, Location> OLDLOCATIONS = new HashMap<UUID, Location>();

    public boolean onCommand(CommandSender sender, Command cmd, String label, String args[]) {
        if(sender instanceof Player) {
            Player player = (Player) sender;
            if(cmd.getName().equalsIgnoreCase("joejoe")) {
                this.OLDLOCATIONS.put(player.getUniqueId(), player.getLocation());
                player.sendMessage(Prefix.getPineappleCore() + Prefix.getChatPrefix() + Prefix.getChatColor() + " You have ben teleported to " + Prefix.getPlayerNameColor() + "JoeJoe's" + Prefix.getChatColor() + " Creative Universe");
            }else if(cmd.getName().equalsIgnoreCase("joejoeback")) {
                if(this.OLDLOCATIONS.containsKey(player.getUniqueId())) {
                    this.OLDLOCATIONS.remove(player.getUniqueId());
                    player.sendMessage(Prefix.getPineappleCore() + Prefix.getChatPrefix() + Prefix.getChatColor() + " You teleported back to your old location away from " + Prefix.getPlayerNameColor() + "JoeJoe's " + Prefix.getChatColor() + " Creative Universe");
                }else {
                    player.sendMessage(Prefix.getPineappleCore() + Prefix.getChatPrefix() + Prefix.getChatColor() + " You cant teleport back from " + Prefix.getPlayerNameColor() + "JoeJoe's" + Prefix.getChatColor() + " Creative Universe if you have not ben there!");
                }
            }
        }
        return false;
    }
}

Я ожидаю, что containsKey () вернет true, так что игроку будет отправлено сообщение «Вы телепортировались в старое место».

...