Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Java HashMap


knugi

Rekomendowane odpowiedzi

Opublikowano

@iIvanowski dałem @ up - i dało knugi :P już poprawiłem. A panie kolego, komendę wykonujesz przez gracza nie w konsolce :D Bo jak konsolkę ma parse dać na gracza :D ? Nielogiczne trochę (Nie wiem jak odmienić parse :D )

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

ogólnie to tam nigdzie nie potrzebujesz gracza, CommandSender ma wszystkie metody których używasz, czyli sendMessage i getName, no ale raczej konsola czy commandblock nie potrzebuje kasy, wieć można zostawić jak jest, co najwyżej mozna dodać:

if (!(s instanceof Player)) {
s.sendMessage("Nie można z konosli.");
return true;
}

1438614356923701010629.png

 

Opublikowano

@GotoFinal ja to wiem, że można dać zabezpieczenie, że komendy tylko dla gracza, tylko jak rozwiązać ten problem, aby to wszystko u mnie działało :D ?

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

@GotoFinal ja to wiem, że można dać zabezpieczenie, że komendy tylko dla gracza, tylko jak rozwiązać ten problem, aby to wszystko u mnie działało :D ?

jedyny jaki masz problem to z bezsensownie ustawionymi ifami, poczytaj sobie kod, i wyobraź sobie co on linijka po linijce robi przy jakiś przykładowych danych.

1438614356923701010629.png

 

Opublikowano

@GotoFinal ale jak wpiszę komendę /sprawdz to żadnej wiadomości nie daje :/ a ify rozumiem :) trochę ich za dużo (Z poradnika to wiesz :P ) 

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

@GotoFinal ale jak wpiszę komendę /sprawdz to żadnej wiadomości nie daje :/ a ify rozumiem :) trochę ich za dużo (Z poradnika to wiesz :P ) 

obawiam się że nie rozumiesz

@Override	public boolean onCommand(CommandSender s, Command cmd, String label, String[] args){		Player p = (Player)s; // zakładamy że wpisaliśmy /sprawdz		if(cmd.getName().equalsIgnoreCase("wklej")){ // "sprawdz".equalsIgnoreCase("wklej") -> false						// kod który się nie wykonuje bo if dał false					} // -> klamerka zamykająca if(cmd.getName().equalsIgnoreCase("wklej"))		return false; // koniec komendy	}

czyli rozumiem że wszystko działa.

1438614356923701010629.png

 

Opublikowano

@GotoFinal teraz obaliłem poradnik i zrobiłem po swojemu :P

 

 

package pl.ct8.knugi;import java.util.HashMap;import org.bukkit.command.Command;import org.bukkit.command.CommandExecutor;import org.bukkit.command.CommandSender;import org.bukkit.entity.Player;import org.bukkit.plugin.java.JavaPlugin;public class HashMain extends JavaPlugin implements CommandExecutor{	//public static HashMap<Player, Integer> chat = new HashMap<Player, Integer>();	HashMap<String, Integer> hajs = new HashMap<String, Integer>();	@Override	public void onEnable(){		System.out.println("Test: 23432");	}	@Override	public boolean onCommand(CommandSender s, Command cmd, String label, String[] args){		if(cmd.getName().equalsIgnoreCase("hajs")){			if(!(s instanceof Player)){				s.sendMessage("Komenda wykonywana tylko przez gracza.");				return true;			}			Player p = (Player)s;			if(args.length==0){				p.sendMessage("Dostepne argumenty:\n"						+ "/hajs dodaj - dodaje 100$\n"						+ "/hajs sprawdz - sprawdzasz stan konta\n"						+ "/hajs daj - dodaje Cie do hashmapy");			}			if(args.length==1){				if(args[0].equalsIgnoreCase("dodaj")){					if(hajs.containsKey(p.getName())){						hajs.put(p.getName(), hajs.get(p.getName())+100);						p.sendMessage("Dodano 100$ do twojej kwoty.");					}					else{						p.sendMessage("Nie jestes zapisany do hashmapy");					}				}				if(args[0].equalsIgnoreCase("sprawdz")){					if(hajs.containsKey(p.getName())){						p.sendMessage("Posiadasz: "+hajs.get(p.getName())+"$");					}					else{						p.sendMessage("Nie jestes zapisany do hashmapy");					}				}				if(args[0].equalsIgnoreCase("daj")){					if(!hajs.containsKey(p.getName())){						hajs.put(p.getName(), 0);						p.sendMessage("Dodano Cie do hashmapy!");					}					else{						p.sendMessage("Jestes juz dodany do hashmapy!");					}				}			}		}		return false;	}} 

 

 

 

Zdziwiłem się bo działa :D, teraz kolejne pytanie bo Pan iivanowski napisał, że się hashmapy się usuwają przy reloadzie - miał rację i jak je teraz pozapisywać do bazydanych / odczytać ? :P Jeszcze tylko to i będę szczęśliwy :3

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

@GotoFinal teraz obaliłem poradnik i zrobiłem po swojemu :P

 

 

package pl.ct8.knugi;

import java.util.HashMap;

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

public class HashMain extends JavaPlugin implements CommandExecutor{
	//public static HashMap<Player, Integer> chat = new HashMap<Player, Integer>();
	HashMap<String, Integer> hajs = new HashMap<String, Integer>();
	@Override
	public void onEnable(){
		System.out.println("Test: 23432");
	}
	@Override
	public boolean onCommand(CommandSender s, Command cmd, String label, String[] args){
		if(cmd.getName().equalsIgnoreCase("hajs")){
			if(!(s instanceof Player)){
				s.sendMessage("Komenda wykonywana tylko przez gracza.");
				return true;
			}
			Player p = (Player)s;
			if(args.length==0){
				p.sendMessage("Dostepne argumenty:\n"
						+ "/hajs dodaj - dodaje 100$\n"
						+ "/hajs sprawdz - sprawdzasz stan konta\n"
						+ "/hajs daj - dodaje Cie do hashmapy");
			}
			if(args.length==1){
				if(args[0].equalsIgnoreCase("dodaj")){
					if(hajs.containsKey(p.getName())){
						hajs.put(p.getName(), hajs.get(p.getName())+100);
						p.sendMessage("Dodano 100$ do twojej kwoty.");
					}
					else{
						p.sendMessage("Nie jestes zapisany do hashmapy");
					}
				}
				if(args[0].equalsIgnoreCase("sprawdz")){
					if(hajs.containsKey(p.getName())){
						p.sendMessage("Posiadasz: "+hajs.get(p.getName())+"$");
					}
					else{
						p.sendMessage("Nie jestes zapisany do hashmapy");
					}
				}
				if(args[0].equalsIgnoreCase("daj")){
					if(!hajs.containsKey(p.getName())){
						hajs.put(p.getName(), 0);
						p.sendMessage("Dodano Cie do hashmapy!");
					}
					else{
						p.sendMessage("Jestes juz dodany do hashmapy!");
					}
				}
			}
		}
		return false;
	}
}
 

 

 

 

Zdziwiłem się bo działa :D, teraz kolejne pytanie bo Pan iivanowski napisał, że się hashmapy się usuwają przy reloadzie - miał rację i jak je teraz pozapisywać do bazydanych / odczytać ? :P Jeszcze tylko to i będę szczęśliwy :3

poczytaj/poszukaj o plikach konfiguracyjnych, czyli coś o klasach z bukkita:  FileConfiguration YamlConfiguration ConfigurationSection

1438614356923701010629.png

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...