Defenestrate

投掷方块、实体和你的朋友!

资源图片
# 抛掷 (Defenestrate) 这是一个 Spigot 插件,旨在赋予玩家拾取和投掷游戏中大多数方块和实体的能力。你可以为方块、玩家和实体单独自定义投掷力度,并且可以选择禁用任何组的投掷。 ## 使用方法 只需在蹲伏状态下,用空手右键点击即可拾取玩家、实体或方块。之后,朝你想要投掷的方向看,然后左键点击即可投掷! 注意:为了在一定程度上为服务器管理员提供生成保护,默认情况下,非操作员玩家将无法拾取/投掷位于 `server.properties` 中定义的生成保护区域内的生物或方块。如果需要,可以在设置中更改此行为。 你可以在此处找到一个“质量非常高”的 stridsfordon 风格演示视频: ## 安装与设置 要安装,只需将最新版本添加到 bukkit 派生服务器的 `Plugins` 文件夹中,然后运行 `/reload`。 设置可以通过修改插件配置文件或使用游戏内 `/dSettings` 命令来更改。 `/dSettings` 命令的使用方法如下: `/dSettings list` - 列出所有设置及其对应的值 `/dSettings get ` - 返回指定设置的值 `/dSettings set ` - 将指定设置的值设置为指定的值 `/dsettings blacklist ` - 将方块添加到或从黑名单中移除 `/dsettings blacklist ` - 将实体添加到或从黑名单中移除 `/dsettings blacklist ` - 返回指定类别的黑名单列表
可更改的设置列表 力度设置: - `playerThrowPower (默认: 1.6)` - 玩家投掷的力度 - `entityThrowPower (默认: 1.6)` - 其他实体投掷的力度 - `blockThrowPower (默认: 1.6)` - 方块投掷的力度 功能开关: - `playerThrowEnabled (默认: true)` - 任何玩家是否被允许投掷玩家 - `entityThrowEnabled (默认: true)` - 任何玩家是否被允许投掷其他实体 - `blockThrowEnabled (默认: true)` - 任何玩家是否被允许投掷方块 权限设置: - `throwPlayersRequiresPermission (默认: false)` - 投掷玩家是否需要权限 (仅在 playerThrowEnabled 为 true 时使用) - `throwEntitiesRequiresPermission (默认: false)` - 投掷实体是否需要权限 (仅在 entityThrowEnabled 为 true 时使用) - `throwBlocksRequiresPermission (默认: false)` - 投掷方块是否需要权限 (仅在 blockThrowEnabled 为 true 时使用) 其他设置: - `oldBlockHandling (默认: false)` - 使用一种更简单的方法来处理方块的拾取和投掷 (不推荐,更多信息 [在此](#old-block-handling)) - `useCustomSounds (默认: false)` - 如果你想制作一个自定义材质包,用它来替换拾取、投掷和方块落地时的声音,启用此选项。在没有材质包的情况下启用此选项将禁用此插件的声音。要覆盖的声音是“defenestrate.pickup”、“defenestrate.throw”和“defenestrate.place”。 - `blockDespawnMinutes (默认: 5)` - 投掷后的自定义方块实体在过几分钟后消失。当值为 0 时禁用 - `ignoreSpawnProt (默认: false)` - 插件是否应该忽略生成保护,并允许非操作员从生成保护区中拾取东西。 - `allowStealing (默认: true)` - 玩家是否被允许从其他玩家的头上拿走方块
## 权限 此插件没有内置的权限管理器。但是,如果你希望设置等级以授予玩家使用此插件部分的权限,你可以使用权限管理器,例如 LuckPerms,来授予玩家这些权限。 `defenestrate.players` - 投掷玩家的权限(仅在 throwPlayersRequiresPermission 为 true 时需要) `defenestrate.entities` - 投掷实体的权限(仅在 throwEntitiesRequiresPermission 为 true 时需要) `defenestrate.blocks` - 投掷方块的权限(仅在 throwBlocksRequiresPermission 为 true 时需要) `defenestrate.settings` - 非操作员使用 `/dSettings` 所需的权限 `defenestrate.all` - 授予所有权限 ## 旧的方块处理 旧的方块处理方法使用 Minecraft 的“掉落方块”实体。此问题的在于,掉落方块有随机损坏的习惯。如果你在蹲伏状态下拾取方块,或者仅仅因为身处错误的位置,方块就会掉落。更糟糕的是,当掉落方块落地时,有很大的几率会以物品的形式掉落,而不是以方块的形式放置。 我的解决方案是使用 1.19.4 的 Block Displays 和 Interactions 创建一个“自定义”方块实体,并使用一个非常小的 baby zoglin 来处理重力。这意味着方块实体实际上是堆叠在一起的 3 个实体。如果玩家投掷方块导致服务器开始卡顿,可能值得使用旧的方块处理方法。 ## 其他说明 如果投掷力度设置为精确到 1.5,向上投掷方块会使其在空中放置为方块。已经测试过 1.51 和 1.49 的力度,它们正常工作。这是因为存在一个巧合的时机问题,导致插件检查时,方块的速度与静止方块的速度相同。修复此问题需要更多的处理能力,并不值得。 如果服务器崩溃时有方块在飞行,插件在下次启动时可能无法正确清除这些方块。从版本 1.41 开始,现在有一个 `/removeblocks [radius (optional)]` 命令,可以用来杀死所有方块实体(如果没有指定半径),或者仅仅杀死指定半径范围内的方块实体。 ## 问题与附加功能 如果你在插件中发现任何问题或对新功能有任何要求,请前往 [issues](https://github.com/Pm7-dev/Defenestrate/issues) 页面并创建一个问题。请务必在问题中尽可能详细地描述 bug/功能请求。