Skocz do zawartości
  • 0

AsyncPlayerChatEvent


KrejzolekPRO
 Udostępnij

Pytanie

Witam mam kod:

Main:

Spoiler

package me.krejzolekpro.krejzchat;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener{
	
	public static boolean chat;
	private static Main inst;
	
	public Main(){
		inst = this;
	}
	
	public void onEnable(){
		chat = true;
		getServer().getPluginManager().registerEvents(this, this);
		FileManager.checkFiles();
	}
	
	public static Main getInst(){
		return inst;
	}

	@Override
	public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
		if(cmd.getName().equalsIgnoreCase("chat")){
			if(args.length == 1){
				if(args[0].equalsIgnoreCase("switch")){
					if(s.hasPermission("KrejzChat.switch") && s.hasPermission("Krejz.*")){
						if(chat){
							chat = false;
							Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', FileManager.getMsg().getString("chatoff")));
						}
						else{
							chat = true;
							Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', FileManager.getMsg().getString("chaton")));
						}
					}
					else{
						s.sendMessage(ChatColor.translateAlternateColorCodes('&', FileManager.getMsg().getString("noperm")));
					}
				}
				else if(args[0].equalsIgnoreCase("clear")){
					int i = 0;
					while(i < 101){
						Bukkit.broadcastMessage("");
						i++;
					}
					Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', FileManager.getMsg().getString("chatclear")));
				}
			}
			
		}
		
		return false;
	}
	
	public void onChat(AsyncPlayerChatEvent e){
		if(!chat){
			if(!e.getPlayer().hasPermission("KrejzChat.write")){
				e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', FileManager.getMsg().getString("chatoffnow")));
				e.setCancelled(true);
			}
		}		
	}	
}

 

FileManager:

Spoiler

package me.krejzolekpro.krejzchat;

import java.io.File;

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

public class FileManager {
	
	private static YamlConfiguration msg;
	private static File users = new File(Main.getInst().getDataFolder(), "users");
	
	public static void checkFiles(){
		if(!Main.getInst().getDataFolder().exists()){
			Main.getInst().getDataFolder().mkdir();
		}
		if(new File(Main.getInst().getDataFolder(), "config.yml").exists()){
			Main.getInst().saveDefaultConfig();
		}
		File m = new File(Main.getInst().getDataFolder(), "messages.yml");
		if(!m.exists()){
			Main.getInst().saveResource("messages.yml", true);
		}
		if(!users.exists()){
			users.mkdir();
		}
		msg = YamlConfiguration.loadConfiguration(m);
	}
	
	public static YamlConfiguration getMsg(){
		return msg;
	}
	public static File getPFile(Player p){
		File f = new File(users, p.getName() + ".yml");
		if(!f.exists()) return null;
		return f;
	}
	
	public static File getUsersFolder(){
		return users;
	}

}

 

Plugin nie dokończony, ale gdy chat jest wylaczony, można pisać na chacie. Dlaczego? Brak errorów.

Od razu mówię, nie nie ma OP.

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

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
8 godzin temu, XBeTeRR napisał:

Moze dlatego ze w pl nie ma blodkady na to hm? Lepiej se skrypt zrob bo w javie to ty nic nie zrobisz

Wysłane z mojego GT-I9505 przy użyciu Tapatalka
 

Zdajesz sobje sprawę, ze Skript "konwertuje" kod skryptu na Java Plugin, wiec to musi byc możliwe. 

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

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