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

Pobieranie wyrazów ciągu


Gość tomecki1

Rekomendowane odpowiedzi

Gość tomecki1
Opublikowano

Witam,

Mam taki kod:

    @EventHandler
    public void PlayerChat(AsyncPlayerChatEvent e){
        if (e.getMessage().equalsIgnoreCase("lol")) {

Co mam zrobić, aby zamiast lol pobierało wyrazy z listy z configu?

Dziekuję

Opublikowano

Chcesz sprawdzić czy wiadomość zawiera jakiś ciąg znaków? Jeżeli tak, to służy do tego metoda contains().

Gość tomecki1
Opublikowano

Nie, chce, aby było tak:

 

config.yml:

 

List:

  - 'elo'

  - 'tom'

 

I to:
  @EventHandler
    public void PlayerChat(AsyncPlayerChatEvent e){
        if (e.getMessage().equalsIgnoreCase("lol")) {

Te "lol" zamiast niego ma pobierać z tej listy wyżej ^^

Opublikowano

w głownej klasie robisz

@Override
public void onEnable(){
saveDefaultConfig();
}
a potem 
  @EventHandler
    public void PlayerChat(AsyncPlayerChatEvent e){
                    String msg = str.toString();
                    List<String> list = getConfig().getStringList("list");
                    for (int i = 0; i < list.size(); i++) {

        if (e.getMessage().equalsIgnoreCase(((String)list.get(i)).replace("&", "§") )) {
       e.getPlayer().sendMessage("nie wolno");

 

}

}

Gość tomecki1
Opublikowano

 @EventHandler
        public void PlayerChat(AsyncPlayerChatEvent e){
                        Object str = null;
                        @SuppressWarnings({ "unused", "null" })
                        String msg = str.toString();
                        List<String> list = getConfig().getStringList("censure.List");
                        for (int i = 0; i < list.size(); i++) {

            if (e.getMessage().equalsIgnoreCase(((String)list.get(i)).replace("&", "§") )) {
           e.getPlayer().sendMessage("nie wolno");
    

    }
        }
    }

Nie działa :(

Gość tomecki1
Opublikowano

@Edit:

Poprawka:

Mam taki kod:

 

 

public class Censure implements Listener {
    
    private List<String> censureList;

    @EventHandler
    public void onPlayerChat(AsyncPlayerChatEvent e){
        int i = 0;
        if (e.getMessage().equalsIgnoreCase(EpicChat.censureList.get(i))) {
            Player p = e.getPlayer();
            p.kickPlayer("wypad");
            Bukkit.broadcastMessage( p.getDisplayName() + " dostal automatycznie bana za brak kultury");
            i++;
            censureList = null;
            if(i == censureList.size()){
                i = 0;
            e.setCancelled(true);
            }    
    }

 

 

Ale wyskakuje mi taki błąd:

 


[21:27:14 INFO]: tomecki1 lost connection: wypad
[21:27:14 INFO]: tomecki1 left the game.
[21:27:14 INFO]: tomecki1 dostal automatycznie bana za brak kultury
[21:27:14 ERROR]: Could not pass event AsyncPlayerChatEvent to EpicChat v_1.0
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:483) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.PlayerConnection.chat(PlayerConnection.java:882) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:832) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:47) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:84) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.NetworkManager.channelRead0(NetworkManager.java:204) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:149) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:480) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.util.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_77]
Caused by: java.lang.NullPointerException
        at me.tomecki1.EpicChat.Censure.onPlayerChat(Censure.java:24) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_77]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_77]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_77]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_77]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        ... 28 more
[21:27:14 INFO]: <tomecki1> idiot

 

 

Opublikowano

przeslij caly event on disable

cały config

i cały event on chat to ci to zrobie -,-

@Edit

a najlepiej cały kod na pw

i na c**j ?

 

@top

@EventHandler
public void onChat(AsyncPlayerChatEvent e)
{
Player p = e.getPlayer();
for (String s : wpisz_lista_twojanazwamiasta)
{
if (e.getMessage().equalsIgnoreCase(s))
{
p.sendMessage("OK");
}
}
} najprostrzy kod jaki sie da
Gość tomecki1
Opublikowano

Ale ja chce moj kod :(

Po prostu nie dziala 24 linijka, czyli

If(i == censureList.size()){

 

Edit:

Ja ..., głupi... ma byc:

If(i == EpicChat.censureList.size()){

Jutro sprawdze czy dziala

Opublikowano

­Caused by: java.lang.NullPointerException . nic więcej dodać nic ująć :/ kochany NPE , ogolnie to dziwnie ale to bardzo dziwnie to robisz , po co 'i' przyrównujesz do wielkości listy ? i zawsze bedzie = 1 (w tym ifie który podałeś)

 

a cały kod sprawdza tylko jeden element tablicy o indeksie 0 :/ więc ta lista nie ma sensu

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...