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

Jaki bedzie kod pluginu (java, mc 1.7.9) blokujacy wiadomosc kiedy zawiera "x"?


Gość Dawid545

Rekomendowane odpowiedzi

Opublikowano

Witajcie,
Chcialbym sie dowiedziec jakim prostym kodem mozna zrobic to co mozna uzyskac skryptem:
 

on chat:
	message contains "x":
		cancel event
		send "Wiadomosc zawiera nieodpowiednie znaki.."

Miamowicie, gdy gracz wysyla wiadomosc ona zawiera "x" zostanie zablokowana, a gracz otrzyma wiadomosc z powiadomieniem.

Tak wiem.. nie znam javy.. :D Chcialem zrobic samemu, ale cos nie szlo..

 

Edit: I jak mozna prosic, to o pokazanie jak zrobic, zeby blokowalo np znaki "x" "y" "z" jezeli, nawet, tylko jeden wystepuje w wiadomosci.

Opublikowano

Jasne..

    @EventHandler
    public void chatblock(AsyncPlayerChatEvent evt){
        Player p = evt.getPlayer();
        if(evt.getMessage().contains("x") || evt.getMessage().contains("y") || evt.getMessage().contains("z")){
            evt.setCancelled(true);
            //wiadomosc ;D
        }
    }

i oczywiście rejestrujesz klasę w onEnable...

getServer().getPluginManager().registerEvents(new nazwaklasy(),this);

Poczytaj o zdarzeniach w bukkicie..

tumblr_mvmbjq2EGs1s3ulybo1_500.gif

Jeśli to czytasz, znaczy to że się opierdalasz :)

Opublikowano

package me.daffit.krainamc.unicode;

import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.event.Listener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.*;

public class Blocker 
extends JavaPlugin 
implements Listener 
{
	
	@EventHandler(priority = EventPriority.HIGH)
	public void chatblock(AsyncPlayerChatEvent event)
	{
		String p = event.getPlayer().getName();
	    if (event.getMessage().contains("x") || event.getMessage().contains("y") || event.getMessage().contains("z"))
	    {
	        event.setCancelled(true);
	        p.sendMessage("Twoja wiadomosc zawiera niedozwolne znaki!");
	    }	
	}
}

Stworzylem takie cudo..

Zmienilem "Player p = event.getPlayer();" na "String p = event.getPlayer().getName();",

bo nie chcialo mi wogole, wspolpracowac,

nie wiem czy dobrze.. Ale teraz mam kolejny problem.

Przy p.sendMessage wyrzuca:

 

Multiple markers at this line
	- The method sendMessage(String) is undefined for the type 
	 String
	- Line breakpoint:Blocker [line: 21] - 
	 chatblock(AsyncPlayerChatEvent)

:(

Pomoz poczatkujacemu :P

 

Dobra, juz sobie mniej wiecej poradzilem :D

 

package me.daffit.krainamc.unicode;

import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.event.Listener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.*;

public class Blocker 
extends JavaPlugin 
implements Listener 
{
	
	@EventHandler(priority = EventPriority.HIGH)
	public void chatblock(AsyncPlayerChatEvent event)
	{
	    if (event.getMessage().contains("x") || event.getMessage().contains("y") || event.getMessage().contains("z"))
	    {
	        event.setCancelled(true);
	        event.getPlayer().kickPlayer("Twoja wiadomosc zawiera niedozwolone znaki!");
	    }	
	}
}

Ale nadal, chetnie sie dowiem, jak wyslac w tym przypadku wiadomosc, bo nie zawsze chcialbym byc taki drastyczny :D

I nie pogradze, informacja jak czytac te contains z yaml list :D (config)

 

 

EDIT: Moj kod po eksporcie nie dziala.. Niby bledow nie ma, ale nie dziala :/

Dodam, ze uzywam znakow unicode, kodowanie ustawione na utf-8 wiec nie powinno byc problemu.. ale nie wiem :\

event.setCancelled(true);
event.setMessage("Atmin, zbanuj mje bo nie staci mje na reklame w internet i spamje wam :C");
event.getPlayer().sendMessage("Twoja wiadomosc zawiera niedozwolone znaki!");
event.getPlayer().kickPlayer("Twoja wiadomosc zawiera niedozwolone znaki!");

Zadna z powyzszych metod, nie przynosi efektow, tak jakby.. nie wykrywalo tego w wiadomsoci, moze to trzeba inaczej ;p?

Opublikowano

@Dawid545

Klasa Main:

package mpcforum.blocked;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{
	
	public void onEnable(){
		getServer().getPluginManager().registerEvents(new blocled(), this);
	}
}

Klasa blocked:


package mpcforum.blocked;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;

public class blocled implements Listener {
	
    @EventHandler
    public void chatblock(AsyncPlayerChatEvent e){
        Player p = e.getPlayer();
        if(e.getMessage().contains("x") || e.getMessage().contains("y") || e.getMessage().contains("z")){
            e.setCancelled(true);
            p.sendMessage("Ta wiadomosc nie jest dozwolona!");
        }
    }

}

plugin.yml :


main: mpcforum.blocked.Main
author: stefanik11
version: 1.0
name: blocked

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...