Skocz do zawartości
  • 0

AsyncPlayerChatEvent


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
https://skript.pl/temat/17341-asyncplayerchatevent/
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
https://skript.pl/temat/17341-asyncplayerchatevent/#findComment-118673
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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