每当玩家做错时:\ n \ n \ n \ n 应该添加一个新的loreline所以如果播放器确实如此,那么它应该添加2个第一个是dog1,第二个是dog2。
问题在于,它甚至没有返回正确的传说,它总是将底部项目遗漏50次50次,我的意思是,对于配置中的两个项目,将会有50行遗存
下午9点46分 2015年9月7日 问题重述: 我想要做的是每当玩家在那里[1]中有一个\ n时添加一个新的绝杀线,所以如果一个玩家有一个绝杀:dog \ ndog它会产生新的绝杀线,因为 “\ n”假设给你一个新的行!
public ArrayList<String> lorelist;
public ItemStack applyLore(ItemStack stack, String name, String lore1)
{
ItemMeta meta = stack.getItemMeta();
meta.setDisplayName(name.replaceAll("&([0-9a-f])", "\u00A7$1"));
lorelist = new ArrayList();
// lorelist.add(lore1.replaceAll("&([0-9a-f])", "\u00A7$1"));
meta.setLore(lorelist);
stack.setItemMeta(meta);
return stack;
}
function test(World world, Player p)
String labels = "name: lore:";
String[] parts = labels.split(" ");
String name = parts[0];
String lore = parts[1];
if (b instanceof Chest) {
if (chest.getInventory().getSize() == 27) {
if (s.contains("restrict:singlechest")) {
if (chance < Integer.parseInt(s.substring(itemchance.length()).split(" ")[2].replace("chance", "").replace("chan", "").replace("ance", "").replace(":", ""))) {
chest.getBlockInventory().addItem(applyLore(new ItemStack(Integer.parseInt(s.split(" ")[0]), amountgot),
s.substring(name.length()).split(" ")[0].replace("_", " ").replace("ame:", "").replace("e:", ""),
s.substring(lore.length()).split(" ")[1].replace("_", " ").replace("lore:", "")));
for (int i = lore.length(); i < lore.length(); i++) {
lorelist.add(lore.substring(lore.length()).split("\n")[i].replaceAll("&([0-9a-f])", "\u00A7$1").replaceAll("lore", ":"));
break;
}
break;
}
}
}
}
配置
ChestPopulater:
items:
- 126 name:&9Thor_Godly_Axe lore:1st_lore_line\n&7second_lore_line chance:99 maxamount:1 restrict:doublechest
- 276 name:&9testblade lore:dog1\ndog2\ndog3 chance:99 maxamount:1 restrict:singlechest
更新: 2015年9月27日下午9点40分 我试过以下仍然无法正常工作
for ( int i = 0; i < lore.length(); i++ )
{
if ( Integer.toString(i).contains("\n") )
{
lorelist.add(Integer.toString(i).replaceAll("&([0-9a-f])", "\u00A7$1"));
Bukkit.getConsoleSender().sendMessage(ChatColor.YELLOW + "Debug");
}
}
答案 0 :(得分:0)
我不确定我是否理解你的代码正确发生了什么,很多变量都是冒出来的......然而,我要做的是,lore
是带有知识的字符串它,像这样:lore:apple\ndog\nHow_are_you
。此外,item
是要添加项目的项目堆栈,name
是要添加的项目名称,endItem
是已添加项目的已完成项目。然后,如果我理解正确,这段代码应该有用。
ArrayList<String> lorelist = new ArrayList<String>();
String[] lores = lore.split("\n");
for (String addlore : lores) {
lorelist.add((addlore.replaceAll("&([0-9a-f])", "\u00A7$1")).replaceAll("_", " ");
}
endItem = addInfo(item, name, lorelist);
这是addInfo
函数。
public ItemStack addInfo(ItemStack item, String name, ArrayList<String> lorelist) {
ItemMeta meta = item.getItemMeta();
meta.setDisplayName((name.replaceAll("&([0-9a-f])", "\u00A7$1")).replaceAll("_", " "));
meta.setLore(lorelist);
item.setItemMeta(meta);
}