mHeadData Source [Korean](koKR)
이 소스는 영어를 번역하기 귀찮으신 분들을 위해 넣어놨습니다.
이 플러그인은 GPL 라이센스 3버전을 사용합니다.
만약 이 플러그인의 소스를 이용하신다면,
이를 밝혀야되고 소스를 같이 배포해야합니다.
이 소스를 사용한 플러그인 판매는 허용하지 않습니다.
package com.milkyway.headdata;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener{
String headname = null;
String headlore = null;
prefix 문자열 변수를 [ mHeadData ]로 설정합니다.
public String prefix = ChatColor.RED + "[ " + ChatColor.BLUE + " mHeadData" + ChatColor.RED + " ]" + ChatColor.WHITE;
플러그인이 켜질때 작동합니다.
public void onEnable(){
콘솔에 메시지를 보냅니다.
Bukkit.getConsoleSender().sendMessage(prefix + " Head Data Dropper Has benn enabled.Made by milkyway0308/Skywolf46");
콘피그 파일을 폴더에 생성합니다.
getConfig().options().copyDefaults(true);
콘피그 데이터를 저장합니다.
saveConfig();
reloadConfig();
콘피그 데이터를 문자열 변수에 저장합니다.
headname = getConfig().getString("Head_Name");
headlore = getConfig().getString("Head_Lore");
Bukkit.getConsoleSender().sendMessage(prefix + " Data Check Complete");
Bukkit.getConsoleSender().sendMessage(prefix + " Head Name::" + headname);
Bukkit.getConsoleSender().sendMessage(prefix + " Head Lore:" + headlore);
이벤트 클래스를 등록합니다.
getServer().getPluginManager().registerEvents(this, this);
Bukkit.getConsoleSender().sendMessage(prefix + "Plugin Event Class Register Success");
Bukkit.getConsoleSender().sendMessage(prefix + "Enjoy Your PvP!");
}
엔티티가 죽을때 발동됩니다.
@EventHandler
public void onDeath(EntityDeathEvent e)
{
죽은 플레이어와 살인자가 플레이어라면?
if(e.getEntity().getKiller() instanceof Player && e.getEntity() instanceof Player){
새 ItemStack을 플레이어 머리로 생성합니다.
ItemStack head = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
SkullMeta meta = (SkullMeta)head.getItemMeta();
Player p = (Player)e.getEntity();
World w = p.getWorld();
List lores = meta.getLore();
아이템의 로어가 없다면 새로 변수를 생성해줍니다.
if (lores == null) {
lores = new ArrayList();
}
플레이스 홀더와 색코드를 배치해줍니다.
String[] headlores = headlore.replace("&", "§").replace("%player%", p.getName()).replace("%attacker%", p.getKiller().getName()).split("/;");
머리에 설명을 추가합니다.
for(String s : headlores)
{
lores.add(s);
}
meta.setLore(lores);
meta.setDisplayName(headname.replace("&", "§").replace("%player%", p.getName()).replace("%attacker%", p.getKiller().getName()));
meta.setOwner(p.getName());
head.setItemMeta(meta);
머리를 죽은 플레이어의 위치에 떨어뜨립니다.
w.dropItem(p.getLocation(), head);
}
}
}
Comments