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]Nie pobiera danych z configu


Rekomendowane odpowiedzi

Opublikowano

Witam. Ostatnio zacząłem uczyć się Javy i tworzę pluginy dla Bukkit. Wszystko działa niby dobrze, plugin ładuje się poprawnie jednak gdy wpisze wulgaryzm który jest wpisany w configu nie wyrzuca mnie. Proszę o pomoc! Tutaj macie mój kod źródłowy:

 


import java.util.ArrayList;
import java.util.List;

import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;

import org.bukkit.event.EventHandler;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;


	public class Main extends JavaPlugin {	
		
		public void onEnable(){
		System.out.println("Plugin poprawnie zaladowany");
		 
		 List przyklad = new ArrayList();
		 przyklad.add("Dupa");
		
		
		 
		 FileConfiguration config = getConfig();
		this.getConfig().addDefault("Kick", przyklad);
		
	
		 config.options().copyDefaults(true);
		 saveConfig();
			
		}
		 @EventHandler
		 public void antyNoob (AsyncPlayerChatEvent e){

		 Player p = e.getPlayer();
		
			 
			 if(e.getMessage().contains(getConfig().getList("Kick"))){
				 p.kickPlayer("Nie tolerujemy wulgaryzmow!");
				 
			 }
			 
			 
		 }

	}

 

Opublikowano

Nie powiem, nie znam zasady działania tych funkcji, ALE:

 

"kick" to tablica

 

if(e.getMessage().contains(getConfig().getList("Kick"))){

p.kickPlayer("Nie tolerujemy wulgaryzmow!");
}

 

patrzysz czy wiadomość zawiera tablica(kick), a nie czy w tablicy jest wpisany przez gracza nick

 

 

 

{{{pseudokod}}}

 

var tab = getConfig().getList("Kick");

for (var i =0;i<tab.length();i++){

 

if(e.getMessage().contains(tab)){

p.kickPlayer("Nie tolerujemy wulgaryzmow!");
} }
Przepraw to tylko na javę i powinno działać
Opublikowano

@up

 

Zmieniłem na to

 public void antyNoob (AsyncPlayerChatEvent e){

		 Player p = e.getPlayer();
		 
		 List<?> t = getConfig().getList("Kick");
		
			 
			 if(e.getMessage().contains((CharSequence) t)){
				 p.kickPlayer("Nie tolerujemy wulgaryzmow!");
				 
			 }

I dalej nie działa :( Pomocy!

Opublikowano

Naprawdę nie możesz zrobić z pętlą tak jak pokazałem?

 

en CharSequence = pl ciąg znaków

 

Ty potrzebujesz konstrukcji w stylu php:foreach(){} lub php:in_array() lub javascript: jQuery.each(tab, function (){}) lub właśnie najzwyklejszego fora, który wykona akcję dla wszystkich elem. w tablicy

Opublikowano

 

@up

 

Zmieniłem na to

 public void antyNoob (AsyncPlayerChatEvent e){

		 Player p = e.getPlayer();
		 
		 List<?> t = getConfig().getList("Kick");
		
			 
			 if(e.getMessage().contains((CharSequence) t)){
				 p.kickPlayer("Nie tolerujemy wulgaryzmow!");
				 
			 }
I dalej nie działa :( Pomocy!

(CharSequence) t

Nie można rzutować z Tablicy na Charseq lol.

Zrobiłeś to na odwrót.

 

Ja bym to zrobił tak:

3Bnww.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...