DisableCreeperBoom
This commit is contained in:
10
.idea/.gitignore
generated
vendored
Normal file
10
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# 已忽略包含查询文件的默认文件夹
|
||||||
|
/queries/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
|
# 基于编辑器的 HTTP 客户端请求
|
||||||
|
/httpRequests/
|
||||||
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<state>
|
||||||
|
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||||
|
</state>
|
||||||
|
</component>
|
||||||
13
.idea/compiler.xml
generated
Normal file
13
.idea/compiler.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CompilerConfiguration">
|
||||||
|
<annotationProcessing>
|
||||||
|
<profile name="Maven default annotation processors profile" enabled="true">
|
||||||
|
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||||
|
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||||
|
<outputRelativeToContentRoot value="true" />
|
||||||
|
<module name="DisableCreeperBoom" />
|
||||||
|
</profile>
|
||||||
|
</annotationProcessing>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
7
.idea/dictionaries/project.xml
generated
Normal file
7
.idea/dictionaries/project.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<component name="ProjectDictionaryState">
|
||||||
|
<dictionary name="project">
|
||||||
|
<words>
|
||||||
|
<w>creeperboom</w>
|
||||||
|
</words>
|
||||||
|
</dictionary>
|
||||||
|
</component>
|
||||||
7
.idea/encodings.xml
generated
Normal file
7
.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding">
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
25
.idea/jarRepositories.xml
generated
Normal file
25
.idea/jarRepositories.xml
generated
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RemoteRepositoriesConfiguration">
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Central Repository" />
|
||||||
|
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="spigotmc-repo" />
|
||||||
|
<option name="name" value="spigotmc-repo" />
|
||||||
|
<option name="url" value="https://hub.spigotmc.org/nexus/content/repositories/snapshots/" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Maven Central repository" />
|
||||||
|
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="jboss.community" />
|
||||||
|
<option name="name" value="JBoss Community repository" />
|
||||||
|
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||||
|
</remote-repository>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
14
.idea/misc.xml
generated
Normal file
14
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
|
<component name="MavenProjectsManager">
|
||||||
|
<option name="originalFiles">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/DisableCreeperBoom.iml" filepath="$PROJECT_DIR$/DisableCreeperBoom.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
19
DisableCreeperBoom.iml
Normal file
19
DisableCreeperBoom.iml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module version="4">
|
||||||
|
<component name="AdditionalModuleElements">
|
||||||
|
<content url="file://$MODULE_DIR$" dumb="true">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/test" type="java-test-resource" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/test_server" type="java-test-resource" />
|
||||||
|
</content>
|
||||||
|
</component>
|
||||||
|
<component name="FacetManager">
|
||||||
|
<facet type="minecraft" name="Minecraft">
|
||||||
|
<configuration>
|
||||||
|
<autoDetectTypes>
|
||||||
|
<platformType>SPIGOT</platformType>
|
||||||
|
</autoDetectTypes>
|
||||||
|
<projectReimportVersion>1</projectReimportVersion>
|
||||||
|
</configuration>
|
||||||
|
</facet>
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
154
README.md
Normal file
154
README.md
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
# DisableCreeperBoom - 苦力怕爆炸控制插件
|
||||||
|
|
||||||
|
## 插件简介
|
||||||
|
|
||||||
|
DisableCreeperBoom 是一个基于 Bukkit API 的 Minecraft 插件,适用于 Minecraft 1.21.8 版本。该插件允许服务器管理员控制苦力怕的爆炸行为,包括阻止爆炸破坏方块和阻止爆炸对玩家/实体造成伤害。
|
||||||
|
|
||||||
|
## 功能特性
|
||||||
|
|
||||||
|
- ✅ **阻止方块破坏**: 可以配置苦力怕爆炸时不破坏任何方块
|
||||||
|
- ✅ **阻止伤害**: 可以配置苦力怕爆炸不对玩家和实体造成伤害
|
||||||
|
- ✅ **灵活配置**: 通过配置文件轻松开关各项功能
|
||||||
|
- ✅ **命令管理**: 支持在游戏中重新加载配置和查看状态
|
||||||
|
- ✅ **调试模式**: 提供详细的调试日志输出
|
||||||
|
|
||||||
|
## 安装方法
|
||||||
|
|
||||||
|
1. 将编译好的 `DisableCreeperBoom.jar` 文件放入服务器的 `plugins` 文件夹
|
||||||
|
2. 启动或重启 Minecraft 服务器
|
||||||
|
3. 插件会自动生成配置文件 `config.yml`
|
||||||
|
4. 根据需要编辑配置文件
|
||||||
|
5. 使用 `/creeperboom reload` 命令重新加载配置
|
||||||
|
|
||||||
|
## 配置说明
|
||||||
|
|
||||||
|
配置文件位于 `plugins/DisableCreeperBoom/config.yml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
config:
|
||||||
|
# 插件总开关 - 是否启用此插件功能
|
||||||
|
# true = 启用插件功能
|
||||||
|
# false = 禁用插件功能(苦力怕正常爆炸)
|
||||||
|
Enable: true
|
||||||
|
|
||||||
|
# 苦力怕爆炸破坏方块控制
|
||||||
|
# true = 阻止苦力怕爆炸破坏方块
|
||||||
|
# false = 允许苦力怕爆炸破坏方块
|
||||||
|
CreeperExplode: true
|
||||||
|
|
||||||
|
# 苦力怕爆炸伤害控制
|
||||||
|
# true = 阻止苦力怕爆炸对玩家和实体造成伤害
|
||||||
|
# false = 允许苦力怕爆炸对玩家和实体造成伤害
|
||||||
|
CreeperDamage: true
|
||||||
|
|
||||||
|
# 调试模式
|
||||||
|
# true = 在控制台输出详细的调试信息
|
||||||
|
# false = 关闭调试信息输出
|
||||||
|
debug: false
|
||||||
|
```
|
||||||
|
|
||||||
|
## 命令列表
|
||||||
|
|
||||||
|
| 命令 | 权限 | 描述 |
|
||||||
|
|------|------|------|
|
||||||
|
| `/creeperboom` | disablecreeperboom.admin | 显示帮助信息 |
|
||||||
|
| `/creeperboom reload` | disablecreeperboom.admin | 重新加载配置文件 |
|
||||||
|
| `/creeperboom status` | disablecreeperboom.admin | 查看当前配置状态 |
|
||||||
|
| `/creeperboom help` | disablecreeperboom.admin | 显示帮助信息 |
|
||||||
|
|
||||||
|
**命令别名**: `/cb`, `/creeper`
|
||||||
|
|
||||||
|
## 权限节点
|
||||||
|
|
||||||
|
- `disablecreeperboom.admin` - 允许使用插件管理命令(默认 OP)
|
||||||
|
|
||||||
|
## 使用示例
|
||||||
|
|
||||||
|
### 场景 1: 完全禁止苦力怕爆炸破坏
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
config:
|
||||||
|
Enable: true
|
||||||
|
CreeperExplode: true
|
||||||
|
CreeperDamage: true
|
||||||
|
debug: false
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景 2: 只阻止方块破坏,但保留伤害
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
config:
|
||||||
|
Enable: true
|
||||||
|
CreeperExplode: true
|
||||||
|
CreeperDamage: false
|
||||||
|
debug: false
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景 3: 只阻止伤害,但允许破坏方块
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
config:
|
||||||
|
Enable: true
|
||||||
|
CreeperExplode: false
|
||||||
|
CreeperDamage: true
|
||||||
|
debug: false
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景 4: 临时禁用插件功能
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
config:
|
||||||
|
Enable: false
|
||||||
|
CreeperExplode: true
|
||||||
|
CreeperDamage: true
|
||||||
|
debug: false
|
||||||
|
```
|
||||||
|
|
||||||
|
## 技术细节
|
||||||
|
|
||||||
|
- **API 版本**: 1.21
|
||||||
|
- **Java 版本**: Java 21
|
||||||
|
- **依赖**: Spigot API 1.21.8-R0.1-SNAPSHOT
|
||||||
|
- **构建工具**: Maven
|
||||||
|
|
||||||
|
## 开发构建
|
||||||
|
|
||||||
|
如果你想要自己编译这个插件:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mvn clean package
|
||||||
|
```
|
||||||
|
|
||||||
|
编译后的 JAR 文件将位于 `target/` 目录中。
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
|
||||||
|
1. 修改配置文件后,需要使用 `/creeperboom reload` 命令或重启服务器才能使更改生效
|
||||||
|
2. 当 `Enable` 设置为 `false` 时,所有功能都将被禁用,苦力怕会正常爆炸
|
||||||
|
3. 调试模式会在控制台输出详细的事件日志,建议在生产环境中关闭
|
||||||
|
4. 插件只影响苦力怕的爆炸行为,不会影响其他爆炸源(如 TNT、末影水晶等)
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
**Q: 为什么苦力怕还是会破坏方块?**
|
||||||
|
A: 请检查配置文件中 `CreeperExplode` 是否设置为 `true`,并确保插件已启用(`Enable: true`)
|
||||||
|
|
||||||
|
**Q: 如何确认插件正在运行?**
|
||||||
|
A: 使用 `/creeperboom status` 命令查看当前配置状态
|
||||||
|
|
||||||
|
**Q: 修改配置后为什么不生效?**
|
||||||
|
A: 请使用 `/creeperboom reload` 命令重新加载配置文件
|
||||||
|
|
||||||
|
## 支持与反馈
|
||||||
|
|
||||||
|
如果你遇到问题或有建议,请提交 Issue 或联系开发者。
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
本项目遵循开源协议,可自由使用和修改。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Minecraft 版本**: 1.21.8
|
||||||
|
**插件版本**: 1.0-SNAPSHOT
|
||||||
|
**开发者**: gtb520
|
||||||
57
dependency-reduced-pom.xml
Normal file
57
dependency-reduced-pom.xml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>top.gtb520.java.minecraft.plugins</groupId>
|
||||||
|
<artifactId>DisableCreeperBoom</artifactId>
|
||||||
|
<name>DisableCreeperBoom</name>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<build>
|
||||||
|
<defaultGoal>clean package</defaultGoal>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.13.0</version>
|
||||||
|
<configuration>
|
||||||
|
<source>${java.version}</source>
|
||||||
|
<target>${java.version}</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
|
<version>3.5.3</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>shade</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>spigotmc-repo</id>
|
||||||
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.spigotmc</groupId>
|
||||||
|
<artifactId>spigot-api</artifactId>
|
||||||
|
<version>1.21.8-R0.1-SNAPSHOT</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<java.version>21</java.version>
|
||||||
|
</properties>
|
||||||
|
</project>
|
||||||
74
pom.xml
Normal file
74
pom.xml
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>top.gtb520.java.minecraft.plugins</groupId>
|
||||||
|
<artifactId>DisableCreeperBoom</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<name>DisableCreeperBoom</name>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<java.version>21</java.version>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<defaultGoal>clean package</defaultGoal>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.13.0</version>
|
||||||
|
<configuration>
|
||||||
|
<source>${java.version}</source>
|
||||||
|
<target>${java.version}</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
|
<version>3.5.3</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>shade</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>spigotmc-repo</id>
|
||||||
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.spigotmc</groupId>
|
||||||
|
<artifactId>spigot-api</artifactId>
|
||||||
|
<version>1.21.8-R0.1-SNAPSHOT</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jetbrains</groupId>
|
||||||
|
<artifactId>annotations</artifactId>
|
||||||
|
<version>26.0.2</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
package top.gtb520.java.minecraft.plugins.disableCreeperBoom.Commands;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import top.gtb520.java.minecraft.plugins.disableCreeperBoom.main;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class creeperboom_Commands implements CommandExecutor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
// 检查权限
|
||||||
|
if (!sender.hasPermission("disablecreeperboom.admin")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "你没有权限使用此命令!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debug部分
|
||||||
|
boolean debug = main.instance.getConfig().getBoolean("config.debug", false);
|
||||||
|
if (debug) {
|
||||||
|
main.getInstance().getLogger().info("========DisableCreeperBoom Command Debug========\n" +
|
||||||
|
"sender: " + sender.toString() + "\n" +
|
||||||
|
"command: " + command.toString() + "\n" +
|
||||||
|
"label: " + label + "\n" +
|
||||||
|
"args: " + Arrays.toString(args) + "\n" +
|
||||||
|
"========DisableCreeperBoom Command Debug========"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 没有参数时显示帮助信息
|
||||||
|
if (args.length == 0) {
|
||||||
|
showHelp(sender);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理命令参数
|
||||||
|
String subCommand = args[0].toLowerCase();
|
||||||
|
|
||||||
|
switch (subCommand) {
|
||||||
|
case "reload":
|
||||||
|
handleReload(sender);
|
||||||
|
break;
|
||||||
|
case "status":
|
||||||
|
handleStatus(sender);
|
||||||
|
break;
|
||||||
|
case "help":
|
||||||
|
showHelp(sender);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sender.sendMessage(ChatColor.RED + "未知命令!使用 /" + label + " help 查看帮助");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示帮助信息
|
||||||
|
*/
|
||||||
|
private void showHelp(CommandSender sender) {
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "======== DisableCreeperBoom 帮助 ========");
|
||||||
|
sender.sendMessage(ChatColor.YELLOW + "/" + "creeperboom" + " reload" + ChatColor.WHITE + " - 重新加载配置文件");
|
||||||
|
sender.sendMessage(ChatColor.YELLOW + "/" + "creeperboom" + " status" + ChatColor.WHITE + " - 查看当前配置状态");
|
||||||
|
sender.sendMessage(ChatColor.YELLOW + "/" + "creeperboom" + " help" + ChatColor.WHITE + " - 显示此帮助信息");
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "====================================");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理重载命令
|
||||||
|
*/
|
||||||
|
private void handleReload(CommandSender sender) {
|
||||||
|
main.instance.reloadConfig();
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "配置文件已重新加载!");
|
||||||
|
|
||||||
|
// 如果开启debug模式,输出日志
|
||||||
|
if (main.instance.getConfig().getBoolean("config.debug", false)) {
|
||||||
|
main.getInstance().getLogger().info("配置文件已由 " + sender.getName() + " 重新加载");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理状态查询命令
|
||||||
|
*/
|
||||||
|
private void handleStatus(CommandSender sender) {
|
||||||
|
boolean enabled = main.instance.getConfig().getBoolean("config.Enable", true);
|
||||||
|
boolean preventExplode = main.instance.getConfig().getBoolean("config.CreeperExplode", false);
|
||||||
|
boolean preventDamage = main.instance.getConfig().getBoolean("config.CreeperDamage", false);
|
||||||
|
boolean debug = main.instance.getConfig().getBoolean("config.debug", false);
|
||||||
|
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "======== DisableCreeperBoom 状态 ========");
|
||||||
|
sender.sendMessage(ChatColor.WHITE + "插件启用: " + (enabled ? ChatColor.GREEN + "是" : ChatColor.RED + "否"));
|
||||||
|
sender.sendMessage(ChatColor.WHITE + "阻止爆炸破坏: " + (preventExplode ? ChatColor.GREEN + "是" : ChatColor.RED + "否"));
|
||||||
|
sender.sendMessage(ChatColor.WHITE + "阻止爆炸伤害: " + (preventDamage ? ChatColor.GREEN + "是" : ChatColor.RED + "否"));
|
||||||
|
sender.sendMessage(ChatColor.WHITE + "调试模式: " + (debug ? ChatColor.GREEN + "开启" : ChatColor.RED + "关闭"));
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "====================================");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
package top.gtb520.java.minecraft.plugins.disableCreeperBoom.Event;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Creeper;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
|
import top.gtb520.java.minecraft.plugins.disableCreeperBoom.main;
|
||||||
|
|
||||||
|
public class CreeperBoom implements Listener {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理苦力怕爆炸事件 - 阻止破坏方块
|
||||||
|
*/
|
||||||
|
@EventHandler
|
||||||
|
public void onCreeperExplode(EntityExplodeEvent event) {
|
||||||
|
// 检查插件是否启用
|
||||||
|
if (!main.instance.getConfig().getBoolean("config.Enable", true)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查是否是苦力怕爆炸
|
||||||
|
if (!(event.getEntity() instanceof Creeper)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取配置项:是否阻止苦力怕爆炸破坏方块
|
||||||
|
boolean preventBlockDamage = main.instance.getConfig().getBoolean("config.CreeperExplode", false);
|
||||||
|
|
||||||
|
if (preventBlockDamage) {
|
||||||
|
// 取消方块破坏
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
// 如果开启debug模式,输出日志
|
||||||
|
if (main.instance.getConfig().getBoolean("config.debug", false)) {
|
||||||
|
main.getInstance().getLogger().info("已阻止苦力怕爆炸破坏方块 at " + event.getLocation());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 如果不阻止破坏,但需要清除爆炸影响的方块列表
|
||||||
|
// 这样可以让爆炸发生但不破坏任何方块
|
||||||
|
event.blockList().clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理苦力怕伤害事件 - 阻止对玩家和实体造成伤害
|
||||||
|
*/
|
||||||
|
@EventHandler
|
||||||
|
public void onCreeperDamage(EntityDamageByEntityEvent event) {
|
||||||
|
// 检查插件是否启用
|
||||||
|
if (!main.instance.getConfig().getBoolean("config.Enable", true)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查攻击者是否是苦力怕
|
||||||
|
if (!(event.getDamager() instanceof Creeper)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取配置项:是否阻止苦力怕伤害
|
||||||
|
boolean preventDamage = main.instance.getConfig().getBoolean("config.CreeperDamage", false);
|
||||||
|
|
||||||
|
if (preventDamage) {
|
||||||
|
// 取消伤害
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
// 如果开启debug模式,输出日志
|
||||||
|
if (main.instance.getConfig().getBoolean("config.debug", false)) {
|
||||||
|
main.getInstance().getLogger().info("已阻止苦力怕对 " + event.getEntity().getType() + " 造成伤害");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
package top.gtb520.java.minecraft.plugins.disableCreeperBoom;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.plugin.PluginDescriptionFile;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import top.gtb520.java.minecraft.plugins.disableCreeperBoom.Commands.creeperboom_Commands;
|
||||||
|
import top.gtb520.java.minecraft.plugins.disableCreeperBoom.Event.CreeperBoom;
|
||||||
|
import top.gtb520.java.minecraft.plugins.disableCreeperBoom.utils.YamlFile_Utils;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import static top.gtb520.java.minecraft.plugins.disableCreeperBoom.utils.unity.GetLoggerPlus;
|
||||||
|
|
||||||
|
public final class main extends JavaPlugin {
|
||||||
|
|
||||||
|
public static YamlFile_Utils Yaml;
|
||||||
|
public static main instance;
|
||||||
|
private static PluginDescriptionFile descriptionFile;
|
||||||
|
public static PluginDescriptionFile getDescriptionFile() {
|
||||||
|
return descriptionFile;
|
||||||
|
}
|
||||||
|
public static main getInstance() {
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable() {
|
||||||
|
// Plugin startup logic
|
||||||
|
instance = this;
|
||||||
|
|
||||||
|
GetLoggerPlus("\n" +
|
||||||
|
" ___ ___ \n" +
|
||||||
|
" / _ \\ _ __ ___ _ _ / __| ___ _ _ _ _ __ ___ \n" +
|
||||||
|
" | (_) | '_ \\/ -_) ' \\\\__ \\/ _ \\ || | '_/ _/ -_)\n" +
|
||||||
|
" \\___/| .__/\\___|_||_|___/\\___/\\_,_|_| \\__\\___|\n" +
|
||||||
|
" |_| \n");
|
||||||
|
GetLoggerPlus("&f========DisableCreeperBoom========" + "\n" +
|
||||||
|
"禁用苦力怕爆炸破坏" + "\n" +
|
||||||
|
"&f========DisableCreeperBoom========\""
|
||||||
|
);
|
||||||
|
|
||||||
|
// 加载配置文件及初始化目录等
|
||||||
|
File Folder = new File(String.valueOf(getDataFolder()));
|
||||||
|
File Config_File = new File(getDataFolder(), "config.yml");
|
||||||
|
Yaml = new YamlFile_Utils();
|
||||||
|
if (!Folder.exists() || !Config_File.exists()) {
|
||||||
|
Folder.mkdirs();
|
||||||
|
Yaml.saveYamlFile(getDataFolder().getPath(), "config.yml", "config.yml",true);
|
||||||
|
}
|
||||||
|
List<File> Folders = new ArrayList<>();
|
||||||
|
Folders.add(new File(getDataFolder().getPath()));
|
||||||
|
Makedirs(Folders);
|
||||||
|
|
||||||
|
// 注册事件监听器
|
||||||
|
Bukkit.getPluginManager().registerEvents(new CreeperBoom(), this);
|
||||||
|
|
||||||
|
// 注册命令
|
||||||
|
Objects.requireNonNull(getCommand("creeperboom")).setExecutor(new creeperboom_Commands());
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDisable() {
|
||||||
|
// Plugin shutdown logic
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void Makedirs(List<File> Folders) {
|
||||||
|
for (File EachFolder : Folders) {
|
||||||
|
if (!EachFolder.exists()) {
|
||||||
|
EachFolder.mkdirs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package top.gtb520.java.minecraft.plugins.disableCreeperBoom.utils;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
|
||||||
|
public class YamlFile_Utils {
|
||||||
|
|
||||||
|
private InputStream getResource(@NotNull String filename) {
|
||||||
|
try {
|
||||||
|
URL URL = getClass().getClassLoader().getResource(filename);
|
||||||
|
if (URL == null)
|
||||||
|
return null;
|
||||||
|
URLConnection Connection = URL.openConnection();
|
||||||
|
Connection.setUseCaches(false);
|
||||||
|
return Connection.getInputStream();
|
||||||
|
} catch (IOException ex) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveYmlFile(String FilePath, String FileName, String ResourcePath) {
|
||||||
|
File Folder = new File(FilePath);
|
||||||
|
if (!Folder.exists())
|
||||||
|
Folder.mkdirs();
|
||||||
|
saveResource(FilePath, ResourcePath, FileName, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveYamlFile(String FilePath, String FileName, String ResourcePath,boolean Replace) {
|
||||||
|
File Folder = new File(FilePath);
|
||||||
|
if (!Folder.exists())
|
||||||
|
Folder.mkdirs();
|
||||||
|
saveResource(FilePath, ResourcePath, FileName, Replace);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveResource(String FilePath, @NotNull String ResourcePath, String OutFileName, boolean Replace) {
|
||||||
|
if (ResourcePath.equals(""))
|
||||||
|
throw new IllegalArgumentException("ResourcePath cannot be null or empty");
|
||||||
|
ResourcePath = ResourcePath.replace('\\', '/');
|
||||||
|
InputStream in = getResource(ResourcePath);
|
||||||
|
if (in == null)
|
||||||
|
throw new IllegalArgumentException("The embedded resource '" + ResourcePath + "' cannot be found in " + ResourcePath);
|
||||||
|
File OutFile = new File(FilePath, OutFileName);
|
||||||
|
try {
|
||||||
|
if (!OutFile.exists() || Replace) {
|
||||||
|
OutputStream out = new FileOutputStream(OutFile);
|
||||||
|
byte[] buf = new byte[1024];
|
||||||
|
int Len;
|
||||||
|
while ((Len = in.read(buf)) > 0)
|
||||||
|
out.write(buf, 0, Len);
|
||||||
|
out.close();
|
||||||
|
in.close();
|
||||||
|
} else {
|
||||||
|
System.out.println("Could not save " + OutFile.getName() + " to " + OutFile + " because " + OutFile.getName() + " already exists.");
|
||||||
|
}
|
||||||
|
} catch (IOException ex) {
|
||||||
|
System.out.println("Could not save " + OutFile.getName() + " to " + OutFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,134 @@
|
|||||||
|
package top.gtb520.java.minecraft.plugins.disableCreeperBoom.utils;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
|
import top.gtb520.java.minecraft.plugins.disableCreeperBoom.main;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class unity {
|
||||||
|
|
||||||
|
public static void SaveAndReloadConfig() {
|
||||||
|
main.instance.saveConfig();
|
||||||
|
main.instance.reloadConfig();
|
||||||
|
}
|
||||||
|
public static String ColorMessage(String String1) {
|
||||||
|
return ChatColor.translateAlternateColorCodes('&',String1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void GetLoggerPlus(String String1) {
|
||||||
|
CommandSender Console = Bukkit.getConsoleSender();
|
||||||
|
Console.sendMessage(ColorMessage(String1));
|
||||||
|
}
|
||||||
|
|
||||||
|
static HashMap<String, Integer> IntTemp = new HashMap<>();
|
||||||
|
|
||||||
|
static HashMap<String, String> StringTemp = new HashMap<>();
|
||||||
|
|
||||||
|
static HashMap<String, Boolean> BooleanTemp = new HashMap<>();
|
||||||
|
|
||||||
|
static HashMap<String, Location> LocationTemp = new HashMap<>();
|
||||||
|
|
||||||
|
public static void SetLocationTempTemp(String String1, Location String2) {
|
||||||
|
LocationTemp.put(String1,String2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Location getLocationTempTemp(String String1) {
|
||||||
|
return LocationTemp.get(String1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetStringTemp(String String1,String String2) {
|
||||||
|
StringTemp.put(String1,String2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getStringTemp(String String1) {
|
||||||
|
return StringTemp.get(String1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetIntTemp(String String1, Integer Int1) {
|
||||||
|
IntTemp.put(String1,Int1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Integer GetIntTemp(String String1) {
|
||||||
|
return IntTemp.get(String1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetBooleanTemp(String String1, boolean Boolean1) {
|
||||||
|
BooleanTemp.put(String1, Boolean1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean getBooleanTemp(String String1) {
|
||||||
|
return BooleanTemp.get(String1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void KickGui(Player player) {
|
||||||
|
Inventory UI = Bukkit.createInventory(player,45, ColorMessage("&a选择你要踢出的玩家"));
|
||||||
|
|
||||||
|
ItemStack Bk = new ItemStack(Material.ORANGE_STAINED_GLASS_PANE);
|
||||||
|
ItemMeta Bk_Meta = Bk.getItemMeta();
|
||||||
|
Objects.requireNonNull(Bk_Meta).setDisplayName(ColorMessage("&e这只是一个边框"));
|
||||||
|
ArrayList<String> Bk_Lore = new ArrayList<>();
|
||||||
|
Bk_Lore.add(null);
|
||||||
|
Bk_Lore.add(ColorMessage("&e这只是一个边框"));
|
||||||
|
Bk_Meta.setLore(Bk_Lore);
|
||||||
|
Bk.setItemMeta(Bk_Meta);
|
||||||
|
|
||||||
|
for (int i1 = 0 ; i1 <9 ; i1++) {
|
||||||
|
UI.setItem(i1,Bk);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i2 = 36 ; i2 <40 ; i2++) {
|
||||||
|
UI.setItem(i2,Bk);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i3 = 41 ; i3 <45 ; i3++) {
|
||||||
|
UI.setItem(i3,Bk);
|
||||||
|
}
|
||||||
|
|
||||||
|
UI.setItem(9,Bk);
|
||||||
|
UI.setItem(17,Bk);
|
||||||
|
|
||||||
|
UI.setItem(18,Bk);
|
||||||
|
UI.setItem(26,Bk);
|
||||||
|
|
||||||
|
UI.setItem(27,Bk);
|
||||||
|
UI.setItem(35,Bk);
|
||||||
|
|
||||||
|
ItemStack Gb = new ItemStack(Material.REDSTONE_BLOCK);
|
||||||
|
ItemMeta Gb_Meta = Gb.getItemMeta();
|
||||||
|
Objects.requireNonNull(Gb_Meta).setDisplayName(ColorMessage("&d关闭菜单"));
|
||||||
|
ArrayList<String> Gb_Lore = new ArrayList<>();
|
||||||
|
Gb_Lore.add(null);
|
||||||
|
Gb_Lore.add(ColorMessage("&e点击关闭菜单"));
|
||||||
|
Gb_Meta.setLore(Gb_Lore);
|
||||||
|
Gb.setItemMeta(Gb_Meta);
|
||||||
|
|
||||||
|
UI.setItem(40,Gb);
|
||||||
|
|
||||||
|
ArrayList<Player> players = new ArrayList<>(player.getServer().getOnlinePlayers());
|
||||||
|
for (Player value : players) {
|
||||||
|
ItemStack PlayerHead = new ItemStack(Material.PLAYER_HEAD);
|
||||||
|
SkullMeta PlayerHead_meta = (SkullMeta) PlayerHead.getItemMeta();
|
||||||
|
Objects.requireNonNull(PlayerHead_meta).setOwningPlayer(value);
|
||||||
|
Objects.requireNonNull(PlayerHead_meta).setDisplayName(ChatColor.RESET + value.getDisplayName() + ChatColor.RESET);
|
||||||
|
ArrayList<String> PlayerHead_Lore = new ArrayList<>();
|
||||||
|
PlayerHead_Lore.add(null);
|
||||||
|
PlayerHead_Lore.add(ColorMessage( "&e点击踢出玩家"));
|
||||||
|
PlayerHead_meta.setLore(PlayerHead_Lore);
|
||||||
|
PlayerHead.setItemMeta(PlayerHead_meta);
|
||||||
|
|
||||||
|
UI.addItem(PlayerHead);
|
||||||
|
}
|
||||||
|
player.openInventory(UI);
|
||||||
|
}
|
||||||
|
}
|
||||||
27
src/main/resources/config.yml
Normal file
27
src/main/resources/config.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# ============================================
|
||||||
|
# DisableCreeperBoom 插件配置文件
|
||||||
|
# ============================================
|
||||||
|
# Minecraft 版本: 1.21.8
|
||||||
|
# Bukkit API 插件
|
||||||
|
# ============================================
|
||||||
|
|
||||||
|
config:
|
||||||
|
# 插件总开关 - 是否启用此插件功能
|
||||||
|
# true = 启用插件功能
|
||||||
|
# false = 禁用插件功能(苦力怕正常爆炸)
|
||||||
|
Enable: true
|
||||||
|
|
||||||
|
# 苦力怕爆炸破坏方块控制
|
||||||
|
# true = 阻止苦力怕爆炸破坏方块
|
||||||
|
# false = 允许苦力怕爆炸破坏方块
|
||||||
|
CreeperExplode: true
|
||||||
|
|
||||||
|
# 苦力怕爆炸伤害控制
|
||||||
|
# true = 阻止苦力怕爆炸对玩家和实体造成伤害
|
||||||
|
# false = 允许苦力怕爆炸对玩家和实体造成伤害
|
||||||
|
CreeperDamage: true
|
||||||
|
|
||||||
|
# 调试模式
|
||||||
|
# true = 在控制台输出详细的调试信息
|
||||||
|
# false = 关闭调试信息输出
|
||||||
|
debug: false
|
||||||
20
src/main/resources/plugin.yml
Normal file
20
src/main/resources/plugin.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
name: DisableCreeperBoom
|
||||||
|
version: '${version}'
|
||||||
|
main: top.gtb520.java.minecraft.plugins.disableCreeperBoom.main
|
||||||
|
api-version: '1.21'
|
||||||
|
authors: [gtb520]
|
||||||
|
description: 禁用苦力怕爆炸破坏方块和伤害玩家
|
||||||
|
website: https://github.com/gtb520
|
||||||
|
|
||||||
|
commands:
|
||||||
|
creeperboom:
|
||||||
|
description: 苦力怕爆炸控制插件主命令
|
||||||
|
usage: /<command> [reload|status]
|
||||||
|
aliases: [cb, creeper]
|
||||||
|
permission: disablecreeperboom.admin
|
||||||
|
permission-message: "你没有权限使用此命令"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
disablecreeperboom.admin:
|
||||||
|
description: 允许使用插件管理命令
|
||||||
|
default: op
|
||||||
BIN
target/DisableCreeperBoom-1.0-SNAPSHOT-shaded.jar
Normal file
BIN
target/DisableCreeperBoom-1.0-SNAPSHOT-shaded.jar
Normal file
Binary file not shown.
BIN
target/DisableCreeperBoom-1.0-SNAPSHOT.jar
Normal file
BIN
target/DisableCreeperBoom-1.0-SNAPSHOT.jar
Normal file
Binary file not shown.
27
target/classes/config.yml
Normal file
27
target/classes/config.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# ============================================
|
||||||
|
# DisableCreeperBoom 插件配置文件
|
||||||
|
# ============================================
|
||||||
|
# Minecraft 版本: 1.21.8
|
||||||
|
# Bukkit API 插件
|
||||||
|
# ============================================
|
||||||
|
|
||||||
|
config:
|
||||||
|
# 插件总开关 - 是否启用此插件功能
|
||||||
|
# true = 启用插件功能
|
||||||
|
# false = 禁用插件功能(苦力怕正常爆炸)
|
||||||
|
Enable: true
|
||||||
|
|
||||||
|
# 苦力怕爆炸破坏方块控制
|
||||||
|
# true = 阻止苦力怕爆炸破坏方块
|
||||||
|
# false = 允许苦力怕爆炸破坏方块
|
||||||
|
CreeperExplode: true
|
||||||
|
|
||||||
|
# 苦力怕爆炸伤害控制
|
||||||
|
# true = 阻止苦力怕爆炸对玩家和实体造成伤害
|
||||||
|
# false = 允许苦力怕爆炸对玩家和实体造成伤害
|
||||||
|
CreeperDamage: true
|
||||||
|
|
||||||
|
# 调试模式
|
||||||
|
# true = 在控制台输出详细的调试信息
|
||||||
|
# false = 关闭调试信息输出
|
||||||
|
debug: false
|
||||||
20
target/classes/plugin.yml
Normal file
20
target/classes/plugin.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
name: DisableCreeperBoom
|
||||||
|
version: '1.0-SNAPSHOT'
|
||||||
|
main: top.gtb520.java.minecraft.plugins.disableCreeperBoom.main
|
||||||
|
api-version: '1.21'
|
||||||
|
authors: [gtb520]
|
||||||
|
description: 禁用苦力怕爆炸破坏方块和伤害玩家
|
||||||
|
website: https://github.com/gtb520
|
||||||
|
|
||||||
|
commands:
|
||||||
|
creeperboom:
|
||||||
|
description: 苦力怕爆炸控制插件主命令
|
||||||
|
usage: /<command> [reload|status]
|
||||||
|
aliases: [cb, creeper]
|
||||||
|
permission: disablecreeperboom.admin
|
||||||
|
permission-message: "你没有权限使用此命令"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
disablecreeperboom.admin:
|
||||||
|
description: 允许使用插件管理命令
|
||||||
|
default: op
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
3
target/maven-archiver/pom.properties
Normal file
3
target/maven-archiver/pom.properties
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
artifactId=DisableCreeperBoom
|
||||||
|
groupId=top.gtb520.java.minecraft.plugins
|
||||||
|
version=1.0-SNAPSHOT
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
top\gtb520\java\minecraft\plugins\disableCreeperBoom\Commands\creeperboom_Commands.class
|
||||||
|
top\gtb520\java\minecraft\plugins\disableCreeperBoom\main.class
|
||||||
|
top\gtb520\java\minecraft\plugins\disableCreeperBoom\Event\CreeperBoom.class
|
||||||
|
top\gtb520\java\minecraft\plugins\disableCreeperBoom\utils\unity.class
|
||||||
|
top\gtb520\java\minecraft\plugins\disableCreeperBoom\utils\YamlFile_Utils.class
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
G:\Project\Java\DisableCreeperBoom\src\main\java\top\gtb520\java\minecraft\plugins\disableCreeperBoom\Commands\creeperboom_Commands.java
|
||||||
|
G:\Project\Java\DisableCreeperBoom\src\main\java\top\gtb520\java\minecraft\plugins\disableCreeperBoom\Event\CreeperBoom.java
|
||||||
|
G:\Project\Java\DisableCreeperBoom\src\main\java\top\gtb520\java\minecraft\plugins\disableCreeperBoom\main.java
|
||||||
|
G:\Project\Java\DisableCreeperBoom\src\main\java\top\gtb520\java\minecraft\plugins\disableCreeperBoom\utils\unity.java
|
||||||
|
G:\Project\Java\DisableCreeperBoom\src\main\java\top\gtb520\java\minecraft\plugins\disableCreeperBoom\utils\YamlFile_Utils.java
|
||||||
BIN
target/original-DisableCreeperBoom-1.0-SNAPSHOT.jar
Normal file
BIN
target/original-DisableCreeperBoom-1.0-SNAPSHOT.jar
Normal file
Binary file not shown.
9
test/server/.console_history
Normal file
9
test/server/.console_history
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
1778691498431:help
|
||||||
|
1778691500592:stop
|
||||||
|
1778691564681:pl
|
||||||
|
1778691581408:cb
|
||||||
|
1778691585451:cb status
|
||||||
|
1778691609772:cb reload
|
||||||
|
1778691613673:cb status
|
||||||
|
1778691656326:op a1a1a13684
|
||||||
|
1778691892779:stop
|
||||||
1
test/server/banned-ips.json
Normal file
1
test/server/banned-ips.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
1
test/server/banned-players.json
Normal file
1
test/server/banned-players.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
43
test/server/bukkit.yml
Normal file
43
test/server/bukkit.yml
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# This is the Bukkit configuration file in Paper.
|
||||||
|
# As you can see, there's actually not that much to configure without any plugins.
|
||||||
|
#
|
||||||
|
# If you need help with the configuration or have any questions related to Paper,
|
||||||
|
# join us in our Discord or check the docs page.
|
||||||
|
#
|
||||||
|
# File Reference: https://docs.papermc.io/paper/reference/bukkit-configuration/
|
||||||
|
# Docs: https://docs.papermc.io/
|
||||||
|
# Discord: https://discord.gg/papermc
|
||||||
|
# Website: https://papermc.io/
|
||||||
|
|
||||||
|
settings:
|
||||||
|
allow-end: true
|
||||||
|
warn-on-overload: true
|
||||||
|
permissions-file: permissions.yml
|
||||||
|
update-folder: update
|
||||||
|
plugin-profiling: false
|
||||||
|
connection-throttle: 4000
|
||||||
|
query-plugins: true
|
||||||
|
deprecated-verbose: default
|
||||||
|
shutdown-message: Server closed
|
||||||
|
minimum-api: none
|
||||||
|
use-map-color-cache: true
|
||||||
|
spawn-limits:
|
||||||
|
monsters: 70
|
||||||
|
animals: 10
|
||||||
|
water-animals: 5
|
||||||
|
water-ambient: 20
|
||||||
|
water-underground-creature: 5
|
||||||
|
axolotls: 5
|
||||||
|
ambient: 15
|
||||||
|
chunk-gc:
|
||||||
|
period-in-ticks: 600
|
||||||
|
ticks-per:
|
||||||
|
animal-spawns: 400
|
||||||
|
monster-spawns: 1
|
||||||
|
water-spawns: 1
|
||||||
|
water-ambient-spawns: 1
|
||||||
|
water-underground-creature-spawns: 1
|
||||||
|
axolotl-spawns: 1
|
||||||
|
ambient-spawns: 1
|
||||||
|
autosave: 6000
|
||||||
|
aliases: now-in-commands.yml
|
||||||
BIN
test/server/cache/mojang_1.21.8.jar
vendored
Normal file
BIN
test/server/cache/mojang_1.21.8.jar
vendored
Normal file
Binary file not shown.
15
test/server/commands.yml
Normal file
15
test/server/commands.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# This is the Bukkit commands configuration file for Paper.
|
||||||
|
#
|
||||||
|
# If you need help with the configuration or have any questions related to Paper,
|
||||||
|
# join us in our Discord or check the docs page.
|
||||||
|
#
|
||||||
|
# File Reference: https://docs.papermc.io/paper/reference/bukkit-commands-configuration/
|
||||||
|
# Docs: https://docs.papermc.io/
|
||||||
|
# Discord: https://discord.gg/papermc
|
||||||
|
# Website: https://papermc.io/
|
||||||
|
|
||||||
|
command-block-overrides: []
|
||||||
|
ignore-vanilla-permissions: false
|
||||||
|
aliases:
|
||||||
|
icanhasbukkit:
|
||||||
|
- version $1-
|
||||||
143
test/server/config/paper-global.yml
Normal file
143
test/server/config/paper-global.yml
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
# This is the global configuration file for Paper.
|
||||||
|
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
|
||||||
|
# with caution, and make sure you know what each option does before configuring.
|
||||||
|
#
|
||||||
|
# If you need help with the configuration or have any questions related to Paper,
|
||||||
|
# join us in our Discord or check the docs page.
|
||||||
|
#
|
||||||
|
# The world configuration options have been moved inside
|
||||||
|
# their respective world folder. The files are named paper-world.yml
|
||||||
|
#
|
||||||
|
# File Reference: https://docs.papermc.io/paper/reference/global-configuration/
|
||||||
|
# Docs: https://docs.papermc.io/
|
||||||
|
# Discord: https://discord.gg/papermc
|
||||||
|
# Website: https://papermc.io/
|
||||||
|
|
||||||
|
_version: 30
|
||||||
|
anticheat:
|
||||||
|
obfuscation:
|
||||||
|
items:
|
||||||
|
all-models:
|
||||||
|
also-obfuscate: []
|
||||||
|
dont-obfuscate:
|
||||||
|
- minecraft:lodestone_tracker
|
||||||
|
sanitize-count: true
|
||||||
|
enable-item-obfuscation: false
|
||||||
|
model-overrides:
|
||||||
|
minecraft:elytra:
|
||||||
|
also-obfuscate: []
|
||||||
|
dont-obfuscate:
|
||||||
|
- minecraft:damage
|
||||||
|
sanitize-count: true
|
||||||
|
block-updates:
|
||||||
|
disable-chorus-plant-updates: false
|
||||||
|
disable-mushroom-block-updates: false
|
||||||
|
disable-noteblock-updates: false
|
||||||
|
disable-tripwire-updates: false
|
||||||
|
chunk-loading-advanced:
|
||||||
|
auto-config-send-distance: true
|
||||||
|
player-max-concurrent-chunk-generates: 0
|
||||||
|
player-max-concurrent-chunk-loads: 0
|
||||||
|
chunk-loading-basic:
|
||||||
|
player-max-chunk-generate-rate: -1.0
|
||||||
|
player-max-chunk-load-rate: 100.0
|
||||||
|
player-max-chunk-send-rate: 75.0
|
||||||
|
chunk-system:
|
||||||
|
gen-parallelism: default
|
||||||
|
io-threads: -1
|
||||||
|
worker-threads: -1
|
||||||
|
collisions:
|
||||||
|
enable-player-collisions: true
|
||||||
|
send-full-pos-for-hard-colliding-entities: true
|
||||||
|
commands:
|
||||||
|
ride-command-allow-player-as-vehicle: false
|
||||||
|
suggest-player-names-when-null-tab-completions: true
|
||||||
|
time-command-affects-all-worlds: false
|
||||||
|
console:
|
||||||
|
enable-brigadier-completions: true
|
||||||
|
enable-brigadier-highlighting: true
|
||||||
|
has-all-permissions: false
|
||||||
|
item-validation:
|
||||||
|
book:
|
||||||
|
author: 8192
|
||||||
|
page: 16384
|
||||||
|
title: 8192
|
||||||
|
book-size:
|
||||||
|
page-max: 2560
|
||||||
|
total-multiplier: 0.98
|
||||||
|
display-name: 8192
|
||||||
|
lore-line: 8192
|
||||||
|
resolve-selectors-in-books: false
|
||||||
|
logging:
|
||||||
|
deobfuscate-stacktraces: true
|
||||||
|
messages:
|
||||||
|
kick:
|
||||||
|
authentication-servers-down: <lang:multiplayer.disconnect.authservers_down>
|
||||||
|
connection-throttle: Connection throttled! Please wait before reconnecting.
|
||||||
|
flying-player: <lang:multiplayer.disconnect.flying>
|
||||||
|
flying-vehicle: <lang:multiplayer.disconnect.flying>
|
||||||
|
no-permission: <red>I'm sorry, but you do not have permission to perform this command.
|
||||||
|
Please contact the server administrators if you believe that this is in error.
|
||||||
|
use-display-name-in-quit-message: false
|
||||||
|
misc:
|
||||||
|
chat-threads:
|
||||||
|
chat-executor-core-size: -1
|
||||||
|
chat-executor-max-size: -1
|
||||||
|
client-interaction-leniency-distance: default
|
||||||
|
compression-level: default
|
||||||
|
load-permissions-yml-before-plugins: true
|
||||||
|
max-joins-per-tick: 5
|
||||||
|
prevent-negative-villager-demand: false
|
||||||
|
region-file-cache-size: 256
|
||||||
|
send-full-pos-for-item-entities: false
|
||||||
|
strict-advancement-dimension-check: false
|
||||||
|
use-alternative-luck-formula: false
|
||||||
|
use-dimension-type-for-custom-spawners: false
|
||||||
|
xp-orb-groups-per-area: default
|
||||||
|
packet-limiter:
|
||||||
|
all-packets:
|
||||||
|
action: KICK
|
||||||
|
interval: 7.0
|
||||||
|
max-packet-rate: 500.0
|
||||||
|
kick-message: <red><lang:disconnect.exceeded_packet_rate>
|
||||||
|
overrides:
|
||||||
|
minecraft:place_recipe:
|
||||||
|
action: DROP
|
||||||
|
interval: 4.0
|
||||||
|
max-packet-rate: 5.0
|
||||||
|
player-auto-save:
|
||||||
|
max-per-tick: -1
|
||||||
|
rate: -1
|
||||||
|
proxies:
|
||||||
|
bungee-cord:
|
||||||
|
online-mode: true
|
||||||
|
proxy-protocol: false
|
||||||
|
velocity:
|
||||||
|
enabled: false
|
||||||
|
online-mode: true
|
||||||
|
secret: ''
|
||||||
|
scoreboards:
|
||||||
|
save-empty-scoreboard-teams: true
|
||||||
|
track-plugin-scoreboards: false
|
||||||
|
spam-limiter:
|
||||||
|
incoming-packet-threshold: 300
|
||||||
|
recipe-spam-increment: 1
|
||||||
|
recipe-spam-limit: 20
|
||||||
|
tab-spam-increment: 1
|
||||||
|
tab-spam-limit: 500
|
||||||
|
spark:
|
||||||
|
enable-immediately: false
|
||||||
|
enabled: true
|
||||||
|
unsupported-settings:
|
||||||
|
allow-headless-pistons: false
|
||||||
|
allow-permanent-block-break-exploits: false
|
||||||
|
allow-piston-duplication: false
|
||||||
|
allow-unsafe-end-portal-teleportation: false
|
||||||
|
compression-format: ZLIB
|
||||||
|
perform-username-validation: true
|
||||||
|
skip-tripwire-hook-placement-validation: false
|
||||||
|
skip-vanilla-damage-tick-when-shield-blocked: false
|
||||||
|
update-equipment-on-player-actions: true
|
||||||
|
watchdog:
|
||||||
|
early-warning-delay: 10000
|
||||||
|
early-warning-every: 5000
|
||||||
320
test/server/config/paper-world-defaults.yml
Normal file
320
test/server/config/paper-world-defaults.yml
Normal file
@@ -0,0 +1,320 @@
|
|||||||
|
# This is the world defaults configuration file for Paper.
|
||||||
|
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
|
||||||
|
# with caution, and make sure you know what each option does before configuring.
|
||||||
|
#
|
||||||
|
# If you need help with the configuration or have any questions related to Paper,
|
||||||
|
# join us in our Discord or check the docs page.
|
||||||
|
#
|
||||||
|
# Configuration options here apply to all worlds, unless you specify overrides inside
|
||||||
|
# the world-specific config file inside each world folder.
|
||||||
|
#
|
||||||
|
# File Reference: https://docs.papermc.io/paper/reference/world-configuration/
|
||||||
|
# Docs: https://docs.papermc.io/
|
||||||
|
# Discord: https://discord.gg/papermc
|
||||||
|
# Website: https://papermc.io/
|
||||||
|
|
||||||
|
_version: 31
|
||||||
|
anticheat:
|
||||||
|
anti-xray:
|
||||||
|
enabled: false
|
||||||
|
engine-mode: 1
|
||||||
|
hidden-blocks:
|
||||||
|
- copper_ore
|
||||||
|
- deepslate_copper_ore
|
||||||
|
- raw_copper_block
|
||||||
|
- gold_ore
|
||||||
|
- deepslate_gold_ore
|
||||||
|
- iron_ore
|
||||||
|
- deepslate_iron_ore
|
||||||
|
- raw_iron_block
|
||||||
|
- coal_ore
|
||||||
|
- deepslate_coal_ore
|
||||||
|
- lapis_ore
|
||||||
|
- deepslate_lapis_ore
|
||||||
|
- mossy_cobblestone
|
||||||
|
- obsidian
|
||||||
|
- chest
|
||||||
|
- diamond_ore
|
||||||
|
- deepslate_diamond_ore
|
||||||
|
- redstone_ore
|
||||||
|
- deepslate_redstone_ore
|
||||||
|
- clay
|
||||||
|
- emerald_ore
|
||||||
|
- deepslate_emerald_ore
|
||||||
|
- ender_chest
|
||||||
|
lava-obscures: false
|
||||||
|
max-block-height: 64
|
||||||
|
replacement-blocks:
|
||||||
|
- stone
|
||||||
|
- oak_planks
|
||||||
|
- deepslate
|
||||||
|
update-radius: 2
|
||||||
|
use-permission: false
|
||||||
|
chunks:
|
||||||
|
auto-save-interval: default
|
||||||
|
delay-chunk-unloads-by: 10s
|
||||||
|
entity-per-chunk-save-limit:
|
||||||
|
arrow: -1
|
||||||
|
ender_pearl: -1
|
||||||
|
experience_orb: -1
|
||||||
|
fireball: -1
|
||||||
|
small_fireball: -1
|
||||||
|
snowball: -1
|
||||||
|
fixed-chunk-inhabited-time: -1
|
||||||
|
flush-regions-on-save: false
|
||||||
|
max-auto-save-chunks-per-tick: 24
|
||||||
|
prevent-moving-into-unloaded-chunks: false
|
||||||
|
collisions:
|
||||||
|
allow-player-cramming-damage: false
|
||||||
|
allow-vehicle-collisions: true
|
||||||
|
fix-climbing-bypassing-cramming-rule: false
|
||||||
|
max-entity-collisions: 8
|
||||||
|
only-players-collide: false
|
||||||
|
command-blocks:
|
||||||
|
force-follow-perm-level: true
|
||||||
|
permissions-level: 2
|
||||||
|
entities:
|
||||||
|
armor-stands:
|
||||||
|
do-collision-entity-lookups: true
|
||||||
|
tick: true
|
||||||
|
behavior:
|
||||||
|
allow-spider-world-border-climbing: true
|
||||||
|
baby-zombie-movement-modifier: 0.5
|
||||||
|
cooldown-failed-beehive-releases: true
|
||||||
|
disable-chest-cat-detection: false
|
||||||
|
disable-creeper-lingering-effect: false
|
||||||
|
disable-player-crits: false
|
||||||
|
door-breaking-difficulty:
|
||||||
|
husk:
|
||||||
|
- HARD
|
||||||
|
vindicator:
|
||||||
|
- NORMAL
|
||||||
|
- HARD
|
||||||
|
zombie:
|
||||||
|
- HARD
|
||||||
|
zombie_villager:
|
||||||
|
- HARD
|
||||||
|
zombified_piglin:
|
||||||
|
- HARD
|
||||||
|
ender-dragons-death-always-places-dragon-egg: false
|
||||||
|
experience-merge-max-value: -1
|
||||||
|
mobs-can-always-pick-up-loot:
|
||||||
|
skeletons: false
|
||||||
|
zombies: false
|
||||||
|
nerf-pigmen-from-nether-portals: false
|
||||||
|
only-merge-items-horizontally: false
|
||||||
|
parrots-are-unaffected-by-player-movement: false
|
||||||
|
phantoms-do-not-spawn-on-creative-players: true
|
||||||
|
phantoms-only-attack-insomniacs: true
|
||||||
|
phantoms-spawn-attempt-max-seconds: 119
|
||||||
|
phantoms-spawn-attempt-min-seconds: 60
|
||||||
|
piglins-guard-chests: true
|
||||||
|
pillager-patrols:
|
||||||
|
disable: false
|
||||||
|
spawn-chance: 0.2
|
||||||
|
spawn-delay:
|
||||||
|
per-player: false
|
||||||
|
ticks: 12000
|
||||||
|
start:
|
||||||
|
day: 5
|
||||||
|
per-player: false
|
||||||
|
player-insomnia-start-ticks: 72000
|
||||||
|
should-remove-dragon: false
|
||||||
|
spawner-nerfed-mobs-should-jump: false
|
||||||
|
stuck-entity-poi-retry-delay: 200
|
||||||
|
zombie-villager-infection-chance: default
|
||||||
|
zombies-target-turtle-eggs: true
|
||||||
|
markers:
|
||||||
|
tick: true
|
||||||
|
mob-effects:
|
||||||
|
immune-to-wither-effect:
|
||||||
|
wither: true
|
||||||
|
wither-skeleton: true
|
||||||
|
spiders-immune-to-poison-effect: true
|
||||||
|
sniffer:
|
||||||
|
boosted-hatch-time: default
|
||||||
|
hatch-time: default
|
||||||
|
spawning:
|
||||||
|
all-chunks-are-slime-chunks: false
|
||||||
|
alt-item-despawn-rate:
|
||||||
|
enabled: false
|
||||||
|
items:
|
||||||
|
cobblestone: 300
|
||||||
|
count-all-mobs-for-spawning: false
|
||||||
|
creative-arrow-despawn-rate: default
|
||||||
|
despawn-range-shape: ELLIPSOID
|
||||||
|
despawn-ranges:
|
||||||
|
ambient:
|
||||||
|
hard: default
|
||||||
|
soft: default
|
||||||
|
axolotls:
|
||||||
|
hard: default
|
||||||
|
soft: default
|
||||||
|
creature:
|
||||||
|
hard: default
|
||||||
|
soft: default
|
||||||
|
misc:
|
||||||
|
hard: default
|
||||||
|
soft: default
|
||||||
|
monster:
|
||||||
|
hard: default
|
||||||
|
soft: default
|
||||||
|
underground_water_creature:
|
||||||
|
hard: default
|
||||||
|
soft: default
|
||||||
|
water_ambient:
|
||||||
|
hard: default
|
||||||
|
soft: default
|
||||||
|
water_creature:
|
||||||
|
hard: default
|
||||||
|
soft: default
|
||||||
|
despawn-time:
|
||||||
|
llama_spit: disabled
|
||||||
|
snowball: disabled
|
||||||
|
disable-mob-spawner-spawn-egg-transformation: false
|
||||||
|
duplicate-uuid:
|
||||||
|
mode: SAFE_REGEN
|
||||||
|
safe-regen-delete-range: 32
|
||||||
|
filter-bad-tile-entity-nbt-from-falling-blocks: true
|
||||||
|
filtered-entity-tag-nbt-paths:
|
||||||
|
- Pos
|
||||||
|
- Motion
|
||||||
|
- sleeping_pos
|
||||||
|
iron-golems-can-spawn-in-air: false
|
||||||
|
monster-spawn-max-light-level: default
|
||||||
|
non-player-arrow-despawn-rate: default
|
||||||
|
per-player-mob-spawns: true
|
||||||
|
scan-for-legacy-ender-dragon: true
|
||||||
|
skeleton-horse-thunder-spawn-chance: default
|
||||||
|
slime-spawn-height:
|
||||||
|
slime-chunk:
|
||||||
|
maximum: 40.0
|
||||||
|
surface-biome:
|
||||||
|
maximum: 70.0
|
||||||
|
minimum: 50.0
|
||||||
|
spawn-limits:
|
||||||
|
ambient: -1
|
||||||
|
axolotls: -1
|
||||||
|
creature: -1
|
||||||
|
monster: -1
|
||||||
|
underground_water_creature: -1
|
||||||
|
water_ambient: -1
|
||||||
|
water_creature: -1
|
||||||
|
ticks-per-spawn:
|
||||||
|
ambient: -1
|
||||||
|
axolotls: -1
|
||||||
|
creature: -1
|
||||||
|
monster: -1
|
||||||
|
underground_water_creature: -1
|
||||||
|
water_ambient: -1
|
||||||
|
water_creature: -1
|
||||||
|
wandering-trader:
|
||||||
|
spawn-chance-failure-increment: 25
|
||||||
|
spawn-chance-max: 75
|
||||||
|
spawn-chance-min: 25
|
||||||
|
spawn-day-length: 24000
|
||||||
|
spawn-minute-length: 1200
|
||||||
|
wateranimal-spawn-height:
|
||||||
|
maximum: default
|
||||||
|
minimum: default
|
||||||
|
tracking-range-y:
|
||||||
|
animal: default
|
||||||
|
display: default
|
||||||
|
enabled: false
|
||||||
|
misc: default
|
||||||
|
monster: default
|
||||||
|
other: default
|
||||||
|
player: default
|
||||||
|
environment:
|
||||||
|
disable-explosion-knockback: false
|
||||||
|
disable-ice-and-snow: false
|
||||||
|
disable-thunder: false
|
||||||
|
fire-tick-delay: 30
|
||||||
|
frosted-ice:
|
||||||
|
delay:
|
||||||
|
max: 40
|
||||||
|
min: 20
|
||||||
|
enabled: true
|
||||||
|
generate-flat-bedrock: false
|
||||||
|
locate-structures-outside-world-border: false
|
||||||
|
max-block-ticks: 65536
|
||||||
|
max-fluid-ticks: 65536
|
||||||
|
nether-ceiling-void-damage-height: disabled
|
||||||
|
optimize-explosions: false
|
||||||
|
portal-create-radius: 16
|
||||||
|
portal-search-radius: 128
|
||||||
|
portal-search-vanilla-dimension-scaling: true
|
||||||
|
treasure-maps:
|
||||||
|
enabled: true
|
||||||
|
find-already-discovered:
|
||||||
|
loot-tables: default
|
||||||
|
villager-trade: false
|
||||||
|
void-damage-amount: 4.0
|
||||||
|
void-damage-min-build-height-offset: -64.0
|
||||||
|
water-over-lava-flow-speed: 5
|
||||||
|
feature-seeds:
|
||||||
|
generate-random-seeds-for-all: false
|
||||||
|
fishing-time-range:
|
||||||
|
maximum: 600
|
||||||
|
minimum: 100
|
||||||
|
fixes:
|
||||||
|
disable-unloaded-chunk-enderpearl-exploit: false
|
||||||
|
falling-block-height-nerf: disabled
|
||||||
|
fix-items-merging-through-walls: false
|
||||||
|
prevent-tnt-from-moving-in-water: false
|
||||||
|
split-overstacked-loot: true
|
||||||
|
tnt-entity-height-nerf: disabled
|
||||||
|
hopper:
|
||||||
|
cooldown-when-full: true
|
||||||
|
disable-move-event: false
|
||||||
|
ignore-occluding-blocks: false
|
||||||
|
lootables:
|
||||||
|
auto-replenish: false
|
||||||
|
max-refills: -1
|
||||||
|
refresh-max: 2d
|
||||||
|
refresh-min: 12h
|
||||||
|
reset-seed-on-fill: true
|
||||||
|
restrict-player-reloot: true
|
||||||
|
restrict-player-reloot-time: disabled
|
||||||
|
retain-unlooted-shulker-box-loot-table-on-non-player-break: true
|
||||||
|
maps:
|
||||||
|
item-frame-cursor-limit: 128
|
||||||
|
item-frame-cursor-update-interval: 10
|
||||||
|
max-growth-height:
|
||||||
|
bamboo:
|
||||||
|
max: 16
|
||||||
|
min: 11
|
||||||
|
cactus: 3
|
||||||
|
reeds: 3
|
||||||
|
misc:
|
||||||
|
allow-remote-ender-dragon-respawning: false
|
||||||
|
alternate-current-update-order: HORIZONTAL_FIRST_OUTWARD
|
||||||
|
disable-end-credits: false
|
||||||
|
disable-relative-projectile-velocity: false
|
||||||
|
disable-sprint-interruption-on-attack: false
|
||||||
|
legacy-ender-pearl-behavior: false
|
||||||
|
max-leash-distance: default
|
||||||
|
redstone-implementation: VANILLA
|
||||||
|
shield-blocking-delay: 5
|
||||||
|
show-sign-click-command-failure-msgs-to-player: false
|
||||||
|
update-pathfinding-on-block-update: true
|
||||||
|
scoreboards:
|
||||||
|
allow-non-player-entities-on-scoreboards: true
|
||||||
|
use-vanilla-world-scoreboard-name-coloring: false
|
||||||
|
spawn:
|
||||||
|
allow-using-signs-inside-spawn-protection: false
|
||||||
|
tick-rates:
|
||||||
|
behavior:
|
||||||
|
villager:
|
||||||
|
validatenearbypoi: -1
|
||||||
|
container-update: 1
|
||||||
|
dry-farmland: 1
|
||||||
|
grass-spread: 1
|
||||||
|
mob-spawner: 1
|
||||||
|
sensor:
|
||||||
|
villager:
|
||||||
|
secondarypoisensor: 40
|
||||||
|
wet-farmland: 1
|
||||||
|
unsupported-settings:
|
||||||
|
disable-world-ticking-when-empty: false
|
||||||
|
fix-invulnerable-end-crystal-exploit: true
|
||||||
3
test/server/eula.txt
Normal file
3
test/server/eula.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
|
||||||
|
#Thu May 14 00:57:10 CST 2026
|
||||||
|
eula=true
|
||||||
64
test/server/help.yml
Normal file
64
test/server/help.yml
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# This is the Bukkit help configuration file for Paper.
|
||||||
|
#
|
||||||
|
# By default you do not need to modify this file. Help topics for all plugin commands are automatically provided by
|
||||||
|
# or extracted from your installed plugins. You only need to modify this file if you wish to add new help pages to
|
||||||
|
# your server or override the help pages of existing plugin commands.
|
||||||
|
#
|
||||||
|
# This file is divided up into the following parts:
|
||||||
|
# -- general-topics: lists admin defined help topics
|
||||||
|
# -- index-topics: lists admin defined index topics
|
||||||
|
# -- amend-topics: lists topic amendments to apply to existing help topics
|
||||||
|
# -- ignore-plugins: lists any plugins that should be excluded from help
|
||||||
|
#
|
||||||
|
# Examples are given below. When amending command topic, the string <text> will be replaced with the existing value
|
||||||
|
# in the help topic. Color codes can be used in topic text. The color code character is & followed by 0-F.
|
||||||
|
# ================================================================
|
||||||
|
#
|
||||||
|
# Set this to true to list the individual command help topics in the master help.
|
||||||
|
# command-topics-in-master-index: true
|
||||||
|
#
|
||||||
|
# Each general topic will show up as a separate topic in the help index along with all the plugin command topics.
|
||||||
|
# general-topics:
|
||||||
|
# Rules:
|
||||||
|
# shortText: Rules of the server
|
||||||
|
# fullText: |
|
||||||
|
# &61. Be kind to your fellow players.
|
||||||
|
# &B2. No griefing.
|
||||||
|
# &D3. No swearing.
|
||||||
|
# permission: topics.rules
|
||||||
|
#
|
||||||
|
# Each index topic will show up as a separate sub-index in the help index along with all the plugin command topics.
|
||||||
|
# To override the default help index (displayed when the user executes /help), name the index topic "Default".
|
||||||
|
# index-topics:
|
||||||
|
# Ban Commands:
|
||||||
|
# shortText: Player banning commands
|
||||||
|
# preamble: Moderator - do not abuse these commands
|
||||||
|
# permission: op
|
||||||
|
# commands:
|
||||||
|
# - /ban
|
||||||
|
# - /ban-ip
|
||||||
|
# - /banlist
|
||||||
|
#
|
||||||
|
# Topic amendments are used to change the content of automatically generated plugin command topics.
|
||||||
|
# amended-topics:
|
||||||
|
# /stop:
|
||||||
|
# shortText: Stops the server cold....in its tracks!
|
||||||
|
# fullText: <text> - This kills the server.
|
||||||
|
# permission: you.dont.have
|
||||||
|
#
|
||||||
|
# Any plugin in the ignored plugins list will be excluded from help. The name must match the name displayed by
|
||||||
|
# the /plugins command. Ignore "Bukkit" to remove the standard bukkit commands from the index. Ignore "All"
|
||||||
|
# to completely disable automatic help topic generation.
|
||||||
|
# ignore-plugins:
|
||||||
|
# - PluginNameOne
|
||||||
|
# - PluginNameTwo
|
||||||
|
# - PluginNameThree
|
||||||
|
#
|
||||||
|
# If you need help with the configuration or have any questions related to Paper,
|
||||||
|
# join us in our Discord or check the docs page.
|
||||||
|
#
|
||||||
|
# File Reference: https://docs.papermc.io/paper/reference/bukkit-help-configuration/
|
||||||
|
# Docs: https://docs.papermc.io/
|
||||||
|
# Discord: https://discord.gg/papermc
|
||||||
|
|
||||||
|
{}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
test/server/libraries/com/mojang/jtracy/1.0.29/jtracy-1.0.29.jar
Normal file
BIN
test/server/libraries/com/mojang/jtracy/1.0.29/jtracy-1.0.29.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
test/server/libraries/com/nimbusds/lang-tag/1.7/lang-tag-1.7.jar
Normal file
BIN
test/server/libraries/com/nimbusds/lang-tag/1.7/lang-tag-1.7.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
test/server/libraries/net/java/dev/jna/jna/5.15.0/jna-5.15.0.jar
Normal file
BIN
test/server/libraries/net/java/dev/jna/jna/5.15.0/jna-5.15.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user