Skocz do zawartości
  • 0

Problem ze zmienna w HashMapie


Pytanie

Witam, mam pytanie. Czy da sie tutaj sprawdzac boolean'a o konkretnej nazwie? np wiadomosc bo ten kod nie dziala poprawnie :/

package me.neroos.repair;

import java.util.HashMap;

import org.bukkit.Bukkit;
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.event.player.PlayerQuitEvent;

public class Pickaxe implements CommandExecutor, Listener{
	
	HashMap<Player, Boolean> map = new HashMap<Player, Boolean>();

	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String l, String[] args) {
		if(sender instanceof Player) {
			if(sender.hasPermission("sprawdz.version.neroo")) {
				if(cmd.getName().equalsIgnoreCase("sprawdz")) {
					if(args.length !=1) {
						sender.sendMessage("§cPODAJ GRACZA!");	
						return false;
					}
					Player gracz = Bukkit.getPlayerExact(args[0]);
					Player p = (Player) sender;
					if(map.get(gracz) == Boolean.TRUE) {
						sender.sendMessage("§cTEN GRACZ JUZ JEST SPRAWDZANY!");
					}
					else {
						map.put(gracz, Boolean.TRUE);
						Bukkit.broadcastMessage("");
						Bukkit.broadcastMessage("§7§oAdministrator§8: §a" + p.getName());
						Bukkit.broadcastMessage("§7§oSprawdza gracza§8: §c" + gracz.getName());
						Bukkit.broadcastMessage("" + "§c" + gracz.getName() + "§7LOGNIESZ = §4§o§nBAN §4§o1 DZIEN");
						Bukkit.broadcastMessage("§7§oPrzyznasz sie = §4§o§nBAN §4§o 3 DNI");
						Bukkit.broadcastMessage("");
						int i = 0;
						while(i < 10) {
							gracz.sendMessage("§4§oJESTES SPRAWDZANY!");
							i++;
						}
					}
				}
			}
		}
		if(sender instanceof Player) {
			if(sender.hasPermission("sprawdz")) {
				if(cmd.getName().equalsIgnoreCase("czysty")) {
					Player gracz = Bukkit.getPlayerExact(args[0]);
					if(map.get(gracz) == Boolean.FALSE) {
						sender.sendMessage("§cTEN GRACZ NIE JEST SPRAWDZANY!");
					}
					else {
						Bukkit.broadcastMessage("");
						Bukkit.broadcastMessage("§7Gracz§8: §a" + gracz.getName() + " §7okazal sie byc §a§nCZYSTYM!");
						Bukkit.broadcastMessage("");
						map.put(gracz, Boolean.FALSE);
					}
				}
			}
		}
		if(sender instanceof Player) {
			if(sender.hasPermission("sprawdz")) {
				if(cmd.getName().equalsIgnoreCase("cziter")) {
					Player gracz = Bukkit.getPlayerExact(args[0]);
					if(map.get(gracz) == Boolean.FALSE) {
						sender.sendMessage("§cTEN GRACZ NIE JEST SPRAWDZANY!");
					}
					else {
						Bukkit.broadcastMessage("");
						Bukkit.broadcastMessage("§7Gracz§8: §a" + gracz.getName() + " §7okazal sie byc §4§nCZITEREM!§7, i zostal ukarany §4BANEM!");
						Bukkit.broadcastMessage("");
						map.put(gracz, Boolean.FALSE);
					}
				}
			}
		}
		return false;
	}
}

 

Odnośnik do komentarza
https://skript.pl/temat/27979-problem-ze-zmienna-w-hashmapie/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

1. Nie rozumiem o co ci chodzi

2. Dlaczego robisz Boolean.TRUE i Boolean.FALSE, zamień w hasmapie Boolean na boolean (duże B na małe b) i może robisz po prostu true i false ;v

Edytowane przez McKoxu
Odnośnik do komentarza
https://skript.pl/temat/27979-problem-ze-zmienna-w-hashmapie/#findComment-185333
Udostępnij na innych stronach

  • 0

Jakiego booleana o konkretnej nazwie? Masz mapke, która zwraca true/false (boolean), po kluczu Player, a nie jakieś nazwie "wiadomość". Po za tym:

private Map<Player, Boolean> map = new HashMap<Player, Boolean>();

 

Odnośnik do komentarza
https://skript.pl/temat/27979-problem-ze-zmienna-w-hashmapie/#findComment-185345
Udostępnij na innych stronach

  • 0
14 godzin temu, McKoxu napisał:

1. Nie rozumiem o co ci chodzi

2. Dlaczego robisz Boolean.TRUE i Boolean.FALSE, zamień w hasmapie Boolean na boolean (duże B na małe b) i może robisz po prostu true i false ;v

klucze, tak samo jak i wartosci w mapie nie moga byc prymitywne, no ale zgodze sie z tym ze powinien uzywac true/false, a nie Boolean.TRUE itd. bo Boolean.TRUE zwraca nowy obiekt klasy Boolean z parametrem 'true' new Boolean(true)

 

Co do samego tematu: czemu trzymasz playera w mapce zamiast same jego uuid ;/

Cytat

						int i = 0;
						while(i < 10) {
							gracz.sendMessage("§4§oJESTES SPRAWDZANY!");
							i++;
						}

od tego masz:

for (int i = 0; i < 10; i++) {
}
Cytat

					if(args.length !=1) {
						sender.sendMessage("§cPODAJ GRACZA!");	
						return false;
					}

jak zwracasz false w onCommand to jezeli w plugin.yml masz podane poprawne uzycie (usage) to wysle je do gracza, a raczej tego nie chcesz bo juz sam wysylasz do gracza wiadomosc zeby podal po prostu gracza.

 

nie wiem wgl po co tutaj uzywasz mapki, przeciez do takiego czegos mozesz uzywac tych jakże pięknych setów, bo przecież są one po coś w javie:

private final Set<UUID> checkingPlayers = new HashSet<>();

private boolean isChecking(UUID uuid) {
  	return this.checkingPlayers.contains(uuid);
}

private void check(UUID uuid) {
  	this.checkingPlayers.add(uuid);
}

private void successCheck(UUID uuid) {
  	this.checkingPlayers.remove(uuid);
}

a jak juz robisz mapke to powinna ona wygladac mniej wiecej tak:

private final Map<UUID, SomeObject> someMap = new HashMap<>();
  
this.someMap.put(player.getUniqueId(), true);

if (this.someMap.get(player.getUniqueId()) == somePrimitiveType) {
}

 

Odnośnik do komentarza
https://skript.pl/temat/27979-problem-ze-zmienna-w-hashmapie/#findComment-185368
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...