public void openTrading() {
// As task because of inventory issues
new BukkitRunnable() {
@SuppressWarnings("deprecation")
@Override
public void run() {
try {
EntityVillager entityVillager = VillagerItemShop.this.createVillager();
CraftVillager craftVillager = (CraftVillager) entityVillager.getBukkitEntity();
EntityHuman entityHuman = VillagerItemShop.this.getEntityHuman();
// set location
List<MerchantRecipe> recipeList = new ArrayList<MerchantRecipe>();
for (VillagerTrade trade : VillagerItemShop.this.category
.getFilteredOffers()) {
ItemStack reward = trade.getRewardItem();
Method colorable = Utils.getColorableMethod(reward.getType());
if (Utils.isColorable(reward)) {
reward
.setDurability(game.getPlayerTeam(player).getColor().getDyeColor().getWoolData());
} else if (colorable != null) {
ItemMeta meta = reward.getItemMeta();
colorable.setAccessible(true);
colorable.invoke(meta, new Object[]{VillagerItemShop.this.game
.getPlayerTeam(VillagerItemShop.this.player).getColor().getColor()});
reward.setItemMeta(meta);
}
if (!(trade.getHandle()
.getInstance() instanceof net.minecraft.server.v1_11_R1.MerchantRecipe)) {
continue;
}
MerchantRecipe recipe = new MerchantRecipe(trade.getRewardItem(), 1024);
recipe.addIngredient(trade.getItem1());
if (trade.getItem2() != null) {
recipe.addIngredient(trade.getItem2());
} else {
recipe.addIngredient(new ItemStack(Material.AIR));
}
recipe.setUses(0);
recipe.setExperienceReward(false);
recipeList.add(recipe);
}
craftVillager.setRecipes(recipeList);
craftVillager.setRiches(0);
entityVillager.setTradingPlayer(entityHuman);
((CraftPlayer) player).getHandle().openTrade(entityVillager);
} catch (Exception ex) {
BedwarsRel.getInstance().getBugsnag().notify(ex);
ex.printStackTrace();
}
}
}.runTask(BedwarsRel.getInstance());
}
VillagerItemShop.java 文件源码
java
阅读 27
收藏 0
点赞 0
评论 0
项目:BedwarsRel
作者:
评论列表
文章目录