Skocz do zawartości
  • 0

Zmienna int, boolean dla danego gracza.


Wakal

Pytanie

Tak jak w temacie, w sk jest nazwa.%player%, nazwa.%attacker%, chce wiedziec jak to zrobic, jezeli robi sie je w int i boolean jakos inaczej to porszę napisać. 

Dziękuje za wszystkie odpowiedzi.

Edytowane przez Wakal
Odnośnik do komentarza
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Ja zazwyczaj używam HashMap'y;

HashMap<Player, Integer> map = new HashMap<Player, Integer>();
  
lub : HashMap<Player, double> map = new HashMap<Player, double>();
  
Lub tez na nick:

HashMap<String, Integer> map = new HashMap<String, Integer>();
  
lub : HashMap<String, double> map = new HashMap<String, double>();

Dodawanie:

map.put(player.getName(), true); // Ustawiasz boolean na true

I otrzymywanie:

if(map.get(p)) // cos sie wykonuje, jesli jest na true

//

if(map.get(p.getName()) // A to na nick czy tez String.

 

Edytowane przez GoblicPL
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

@GoblicPL A jak chce dodac do zmiennej int gracza który wpisał daną komende?

Spoiler

package me.wakal.plugins;

import java.util.HashMap;
import java.util.Map;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin
{
	private Map<Player, Integer> reglist = new HashMap<Player, Integer>();
	@Override
	public void onEnable()
	{
		System.out.println("[Poradniki] Enabling...");
		System.out.println("[Poradniki] Enabled.");
	}

	@Override
	public void onDisable()
	{
		System.out.println("[Poradniki] Disabling...");
		System.out.println("[Poradniki] Disabled.");
	}

	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
	{
		if (cmd.getName().equalsIgnoreCase("poradniki"))
		{
			if(sender instanceof Player)
			{
				Player p = (Player)sender;
				p.sendMessage("§7§l============================");
				p.sendMessage("§7§l         §6Regulamin        ");
				try
				{
					Thread.sleep(2500);
				} catch (InterruptedException e)
				{
					e.printStackTrace();
				}
				p.sendMessage("§b§l1§7. §fNie obrazaj administracji, ani innych graczy.");
				p.sendMessage("§b§l1§7. §fKazdy gracz jest rowny.");
				p.sendMessage("§b§l1§7. §fZakaz spamowania jedna litera na chacie(Zakaz floodowania).");
				p.sendMessage("§b§l1§7. §fCheatowanie jest surowo zabronione.");
				p.sendMessage("§b§l1§7. §fWszelkie ulatwienia typu autoclicker/macro sa zakazane.");
				p.sendMessage("§b§l1§7. §fPrzestrzegaj regulaminu.");
				try
				{
					Thread.sleep(2500);
				} catch (InterruptedException e)
				{
					e.printStackTrace();
				}
				p.sendMessage("§4§lAle wiesz, no ten... nie cheatuj.");
				try
				{
					Thread.sleep(2500);
				} catch (InterruptedException e)
				{
					e.printStackTrace();
				}
				p.sendMessage("§7§l         §6Regulamin        ");
				p.sendMessage("§e§lRegulamin odwiedzales juz §6§l " + reglist);
				sender.sendMessage("§7§l============================");
			}else {
				sender.sendMessage("You are not a player");
			}
		}
		return false;
	}
}

 

 

Edytowane przez Wakal
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

nie używaj Thread.sleep, nigdzie. Jak używasz tego w wątku serwera to zatrzymuje to cały serwer na ten podany czas...

 

Do tego taką mapkę musiałbyś zapisywać przy zmianach i wczytywać na starcie serwera skoro chcesz tam przechowywać coś na stałe. A przechowywanie po Player w mapce też nie jest dobrym pomysłem - szczególnie jak jesteś początkujący, bo jak dodasz gracza do libki i on wyjdzie z serwera to dalej trzymasz go w mapce - a taki obiekt gracza przechowuje bardzo duże ilości danych, które zamiast zostać usunięte musza być dalej trzymane w pamięci. Lepiej trzymać po UUID.

 

		System.out.println("[Poradniki] Enabling...");
		System.out.println("[Poradniki] Enabled.");

Tego nie potrzebujesz, bukkit sam wysyła takie wiadomości, a do tego System.out się prawie nie używa, masz metodę w JavaPlugin, getLogger().log("wiadomość"); wtedy bukkit sam doda odpowiedni tag [Pluginu]

Ale zapisu i odczytu to ja cię tutaj nie nauczę, bo zwyczajnie mi się nie chce, musisz poczytać o YamlConfiguration pod bukkita, na pewno znajdziesz sensowne wyjaśnienia. Ewentualnie zadaj konkretniejsze pytanie wtedy tutaj jak coś nie będzie ci wychodzić.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

@Wakal BukkitRunnable

np.:

public class MyTask extends BukkitRunnable {

	private final Player p;

	public MyTask(Player p) {
		this.p=p;
	}

	@Override
	public void run(){
		p.sendMessage("it works");
	}
}


new MyTask(player).runTaskLater(plugin,20L); //chyba tak to bylo

 

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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