• 注册
  • 服务器&插件 服务器&插件 关注:7 内容:9952

    Random Drops (随机掉落-使方块破坏后的物品掉落变得随机)

  • 查看作者
  • 打赏作者
  • 当前位置: SodaMC > 服务器&插件 > 正文
  • 潮涌核心
    反派

    Random Drops (随机掉落-使方块破坏后的物品掉落变得随机)

    Random Drops是一个有趣的插件,它使得方块破坏后的物品掉落变得随机!这是我的第一个插件,也是受到了CodedRed的启发,因此所有权归他所有!

    - 功能: 使得方块破坏后的物品掉落变得随机
    - 配置:

      reload:
      - "&b&o重新加载"
      - "&c&l随机方块!"
      blocks:
        DIRT:
        - DIRT
        - DIRT
        - DIRT
        - DIAMOND
        - FLINT
        - SAND
        SAND:
        - SAND
        - DIRT
        GRAVEL:
        - IRON_INGOT
      

    - 用法:
    - /randomblock reload - 重新加载插件
    - 权限: randomblock.reload

    源代码:

    package me.Floppy.RandomBlock;
    import java.util.Random;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.plugin.java.JavaPlugin;
    import net.md_5.bungee.api.ChatColor;
    
    public class Main extends JavaPlugin implements Listener {
      @Override
      public void onEnable() {
        this.saveDefaultConfig();
        this.getServer().getPluginManager().registerEvents(this, this);
      }
      
      @Override
      public void onDisable() {}
        
      public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (label.equalsIgnoreCase("randomblock")) {
          if (!sender.hasPermission("randomblock.reload")) {
            sender.sendMessage(ChatColor.RED + "您无法运行此命令");
            return true;
          }
          if (args.length == 0) {
            // /randomblock
            sender.sendMessage(ChatColor.RED + "用法: /randomblock reload");
            return true;
          }
          if (args.length > 0) {
            // /randomblock reload
            if (args[0].equalsIgnoreCase("reload")) {
              for (String msg : this.getConfig().getStringList("reload.message")) {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', msg));
              }
              this.reloadConfig();
            }
          }
        return false;
      }
    
      @EventHandler
      public void onBlockBreak(BlockBreakEvent event) {
        this.getConfig().getConfigurationSection("blocks").getKeys(false).forEach(key -> {
          // dirt
          if (key.equalsIgnoreCase(event.getBlock().getType().toString())) {
            ItemStack[] items =  new ItemStack[this.getConfig().getStringList("blocks." + key).size()];
            ItemStack item = null;
            int position = 0;
            Random r = new Random();
            for (String i : this.getConfig().getStringList("blocks." + key)) {
              // DIRT DIR
              try {
                item = new ItemStack(Material.matchMaterial(i), r.nextInt(16) + 1);
              } catch(Exception e) {
                item = new ItemStack(Material.matchMaterial(key));
              }
              items[position] = item;
              position++;
            }
            int num = r.nextInt(items.length);
            event.setDropItems(false);
            World world = event.getPlayer().getWorld();
            world.dropItemNaturally(event.getBlock().getLocation(), items[num]);
          }
        });
      }
    }
    
    Random Drops (随机掉落-使方块破坏后的物品掉落变得随机)

    Random Drops (随机掉落-使方块破坏后的物品掉落变得随机)

    可用版本为:|1.11|1.12|1.13|1.14|1.15

    源站下载
    登录后前往SPIGOT

  • 收录

  • 请登录之后再进行评论

    登录
  • Soda任务 图片
  • 偏好设置
  • 主题
  • 帖子间隔 侧栏位置: