Artemon
Активный участник
- Баллы
- 63
Всем доброго времени суток!
Прошу помочь мне с написанием плагина. Я писал, чтобы обучиться Java с сайта http://dmitriymx.ru/blog/bukkit-tutorial . Застрял на одном месте и все никак не знаю где же я ошибся, а так как знаний не хватает( я еще новичок в Java), то не знаю что нужно исправить! Прошу помочь мне, так как уж очень хочется дописать плагин!
Ниже предоставляю код:
И еще один:
Заранее спасибо!
Прошу помочь мне с написанием плагина. Я писал, чтобы обучиться Java с сайта http://dmitriymx.ru/blog/bukkit-tutorial . Застрял на одном месте и все никак не знаю где же я ошибся, а так как знаний не хватает( я еще новичок в Java), то не знаю что нужно исправить! Прошу помочь мне, так как уж очень хочется дописать плагин!Ниже предоставляю код:
Код:
package my.chat.plugin;
import java.util.logging.Logger;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.event.Event;
import org.bukkit.plugin.java.JavaPlugin;
public class ArtemonChat extends JavaPlugin{
public Logger mclog = Logger.getLogger("minecraft");
public YamlConfiguration config;
private ArtemonChatListener chatListener = new ArtemonChatListener(this);
@Override
public void onDisable() {
mclog.info("[ArtemonChat] Disabled");
// TODO Auto-generated method stub
}
@Override
public void onEnable() {
config = LoadConfig(getDataFolder()+File.separator+"config.yml");
mclog.info("[ArtemonChat] Enabled");
// TODO Auto-generated method stub
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_CHAT, chatListener, Event.Priority.Monitor, this);
}
}
Код:
package my.chat.plugin;
import java.util.Set;
import org.bukkit.ChatColor;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerListener;
public class ArtemonChatListener extends PlayerListener {
private ArtemonChat plugin;
private Set<String> userList;
public ArtemonChatListener(ArtemonChat plg){
this.plugin = plg;
userList = plg.config.getKeys(false);
}
public void onPlayerChat(PlayerChatEvent event){
String playerName = event.getPlayer().getName().toLowerCase();
String thisFormat = "<#b+name#f>: +message";
if(userList.contains(playerName)){
thisFormat = plugin.config.getString(playerName) + "+message";
}
ConvertFormat(thisFormat);
event.setFormat(thisFormat);
}
private void ConvertFormat(String format){
//заменяем псевдо-переменные на те, что воспринимает bukkit
format = format.replace("+name", "%1$s").replace("+message", "%2$s");
//заменим цветовые коды на коды, понятные bukkit’у
format = format.replace("#0", ""+ChatColor.BLACK).replace("#1", ""+ChatColor.DARK_BLUE).replace("#2", ""+ChatColor.DARK_GREEN).replace("#3", ""+ChatColor.DARK_AQUA).replace("#4", ""+ChatColor.DARK_RED).replace("#5", ""+ChatColor.DARK_PURPLE).replace("#6", ""+ChatColor.GOLD).replace("#7", ""+ChatColor.GRAY).replace("#8", ""+ChatColor.DARK_GRAY).replace("#9", ""+ChatColor.BLUE).replace("#a", ""+ChatColor.GREEN).replace("#b", ""+ChatColor.AQUA).replace("#c", ""+ChatColor.RED).replace("#d", ""+ChatColor.LIGHT_PURPLE).replace("#e", ""+ChatColor.YELLOW).replace("#f", ""+ChatColor.WHITE);
//Уважаемые программисты на Java. Если вы знаете как можно упростить или оптимизировать эту кошмарную функцию, напишите в комментариях. Очень вас прошу.
return;
}
}
Получилось что-то?