Skocz do zawartości
  • 0

kolejny problem z hash mapa


kerpson
 Udostępnij

Pytanie

import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;

public class Kills implements Listener{
	
	public static HashMap<String,Boolean> death = new HashMap<String, Boolean>();
	
	public void add(Player p){
		String s = p.getDisplayName();
		death.get(s);
		death.put(s, true);
	}
	public void check(Player p){
		String s = p.getDisplayName();
		if(death.containsKey(s)){
			if(death.containsValue(true)){
				p.performCommand("kit gracz");
				remove(p);
			}
		}
	}
	public void remove(Player p){
		String s = p.getDisplayName();
		death.put(s, false);		
		
	}
	
	@EventHandler
	public void onDeath(PlayerDeathEvent e){
		
		Player p = e.getEntity();
		World w = p.getWorld();
		
		add(p);
		
		w.strikeLightningEffect(p.getLocation());
		p.kickPlayer(ChatColor.translateAlternateColorCodes('&', "&4Zginales ! &cWejdz ponownie na serwer"));
	}
	@EventHandler
	public void onJoin(PlayerJoinEvent e){
		
		Player p = e.getPlayer();
		
		check(p);
		
		
	}
}

Gdy gracz wejdzie nic sie nie dzieje :/

Main:

public class Main extends JavaPlugin{
	
	public static Main instance;
	
	
	@Override
	public void onEnable(){
		instance = this;
		Chat.chat = true;
		getCommand("chat").setExecutor(new Chat());
		getCommand("pomoc").setExecutor(new Help());
		saveDefaultConfig();
		Bukkit.getServer().getPluginManager().registerEvents(new AutoMSG(), this);
		Bukkit.getServer().getPluginManager().registerEvents(new Kills(), this);
		Bukkit.getServer().getPluginManager().registerEvents(new UknowCMD(), this);
		Bukkit.getServer().getPluginManager().registerEvents(new Kits(), this);
		Bukkit.getServer().getPluginManager().registerEvents(new Motd(), this);
		Bukkit.getServer().getPluginManager().registerEvents(new ChatListener(), this);
		Bukkit.getServer().getPluginManager().registerEvents(new Chat(), this);
		System.out.println("[LastSV] Wlaczanie...");
	}
	
	@Override
	public void onDisable(){
		System.out.println("[LastSV] Wylaczanie...");
	}
	
	public static Main getInst(){
		return instance;
	}
}

 

Odnośnik do komentarza
Udostępnij na innych stronach

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

eh.. tak jest jak piszesz pluginy pod mc, a jedyne co widziales to kod z dekompilatora

public class PlayersHolder {
  
	private final Set<UUID> players = new HashSet<>();

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

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

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

(zmien private na public bo robilem na szybko)

private final PlayersHolder playersHolder = new PlayersHolder();

@EventHandler
public void onJoin(PlayerJoinEvent event) {
	this.playersHolder.add(event.getPlayer().getUniqueId());
}

@EventHandler
public void onQuit(PlayerQuitEvent event) {
	this.playersHolder.remove(event.getPlayer().getUniqueId());
}

//dodaj sobie jakis listener i wtedy:
if (this.playersHolder.contains(player.getUniqueId()) {
	player.sendMessage("contains!");
}

 

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

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

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