1. 实现 DartCraft 战利品袋

战利品袋,顾名思义是种内含一堆战利品的物品,相关特性如下:

  • 任意怪物死亡时一定概率掉落
    • 应通过配置文件控制这个概率。我们在这里设定默认为 5%。
  • 不可堆叠
  • 含有一“物品栏”结构,最大容积为 9
  • 从下列战利品表中随机抽出一张表并从中抽取战利品:
    • 出生点奖励箱、村庄铁匠铺箱子
    • 地牢箱子、沙漠神殿箱子、丛林神庙箱子、要塞十字路口箱子
    • 废弃矿井箱子矿车、要塞走廊箱子、要塞图书馆箱子
  • 右击打开 GUI,可从中取走所有物品,但当所有物品全部取出时物品直接消失
  • 手持其右击任何物品容器会尽可能将其中物品送入目标容器中,当所有物品全部取出时物品直接消失

你可能需要用到下面这些东西:

  • 你可以假定满足 instanceof EntityMobEntity 实例都算作“怪物”。
    • 加分项:允许用户自行指定哪些实体会掉落战利品袋子。
  • 物品为空的判断依据是 ItemStack.isEmpty() 返回 true