用Java21启用zgc,用spark分析我的Nukkit服务器运行时有些卡顿或延迟,想知道如何优化性能?
2-2配置,捡便宜买的
使用方法:
- 解压压缩包
- 运行AutoSetJavaEnvironmentVariables.bat即可
使用效果:
CoinsAPI-NK
CoinsAPI for Nukkit
指令
指令 描述 使用权限 /setcoin
设置玩家硬币数量 op /addcoin
添加硬币给玩家 op /reducecoin
扣除玩家硬币 op /seecoin
查看玩家硬币数量 all /mycoin
查看我的硬币数量 all 仓库
<repositories> <repository> <id>jitpack.io</id> <url>[URL]https://jitpack.io[/URL]</url> </repository> </repositories>
依赖
<dependency> <groupId>com.github.angga7togk</groupId>...
CoinsAPI for Nukkit
指令 | 描述 | 使用权限 |
---|---|---|
/setcoin |
设置玩家硬币数量 | op |
/addcoin |
添加硬币给玩家 | op |
/reducecoin |
扣除玩家硬币 | op |
/seecoin |
查看玩家硬币数量 | all |
/mycoin |
查看我的硬币数量 | all |
<repositories>
<repository>
<id>jitpack.io</id>
<url>[URL]https://jitpack.io[/URL]</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.angga7togk</groupId>
<artifactId>CoinsAPI-NK</artifactId>
<version>1.0.0</version>
</dependency>
// get coins people or yourself
Coins.getInstance().getPlayerCoins(player);
Coins.getInstance().getPlayerCoinsByName("Angga7Togk");
// Set Coins Player
Coins.getInstance().getCoinsManager().setCoins(player, 100);
Coins.getInstance().getCoinsManager().setCoinsByName("Angga7Togk", 100);
// Add Coins Player
Coins.getInstance().getCoinsManager().addCoins(player, 125);
Coins.getInstance().getCoinsManager().addCoinsByName("Angga7Togk", 125);
// Reduce Coins Player
Coins.getInstance().getCoinsManager().reduceCoins(player, 25);
Coins.getInstance().getCoinsManager().reduceCoinsByName("Angga7Togk", 25);
基岩版Nukkit服务器及其衍生核心PM1E/PowerNukkitX开发的先进反作弊。
架构和设计学习Java版知名反作弊NoCheatPlus。
其目的是修复和阻止我的世界基岩版中的漏洞和作弊行为。
非常欢迎和支持你来贡献代码,以给社区贡献,star本项目以关注我们
这是NCP的一个扩展,可以让你手动兼容其他插件,减少误判
由于不支持导致反作弊,比如双跳。
这是NCP的扩展插件,同步NCP ban数据到群服数据数据库
同步,并依赖于插件 DbLib。如果您安装了 NCPPanel,它甚至可以同步面板数据。
这是 NCP 的扩展,它将把你的 NCP 变成一个被动的静态反作弊。反作弊不起作用
通常情况下,只有在其他玩家举报后,它才会检测到玩家。它没有报告系统
本身,并且需要安装 NCPPanel。
这是NCP的扩展插件,可以为你的NCP提供一个网页面板来管理服务器。这意味着你不用手动修改配置文件,直接通过网页也能便捷的检测服务器内玩家的行为。
Java CI: https://ci.lanink.cn/job/NoCheatPlus
在仓库CI里下载最新版本 NoCheatPlus-1.0-SNAPSHOT-jar-with-dependencies.jar
将其放入服务器的 plugins/
文件夹内。
在使用插件之前,您必须安装以下依赖
KotlinLib
git clone https://github.com/Physical-Science-Academy/NoCheatPlus.git
cd NoCheatPlus
git submodule update --init
./mvnw clean package
/ncp
获取NCP信息/ncp version
获取NCP信息/ncp reload
热重载配置文件/ncp debug
临时开关调试模式/ncp ban
封禁一名玩家/ncp unban
解封一名玩家/ncp kick
踢出一名玩家/ncp toggle
开关检测项目/ncp permission
管理绕过检查的权限接下来启动服务器。之后,你会看到plugins/
下生成了一个名为NoCheatPlus
的目录。
让我们首先打开其中的配置文件 ncpconfig.yml
。
# NoCheatPlus AntiCheat Config
config-version:
notify: false
version: 1000
# Currently "en" and "zh" are supported languages
# You are able to create your own language in the "lang" config directory
lang: "en"
logging:
active: true
auto-delete-days: 1
debug: false
prefix: "§c§lNCP §7>> §r"
extended:
command: true
violation: true
actions:
waring_delay: 10
kick_broadcast: "§c§lNCP §7>>@player has been kicked for @hack"
protection:
net:
packet: true
chunk:
active: true
dynamicScan: false
scanHeight: 6.0
scanWorld:
- world
filter:
- 0
- 8
- 9
- 10
- 11
- 20
- 26
- 27
- 30
- 31
- 32
- 37
- 38
- 39
- 40
- 44
- 50
- 63
- 64
- 65
- 66
- 68
- 71
- 81
- 83
- 85
- 96
- 101
- 102
- 104
- 105
- 106
- 107
- 126
- 141
- 142
ores:
- 14
- 15
- 16
- 21
- 56
- 73
- 74
- 129
command:
hide:
active: true
message: "§c§lNCP §7>> §rYou do not have permission to run this command."
commands:
- "?"
- "plugins"
- "version"
- "about"
- "ver"
checks:
blockbreak:
fastbreak:
active: true
max: 35
min: 0
actions: "cancel vl>5"
fight:
speed:
active: true
maxspeed: 25
dealvariance: 0.1
cancelDamage: true
actions: "cancel vl>5&&kick vl>20"
inventory:
instanteat:
active: true
actions: "cancel vl>5&&kick vl>20"
move:
active: true
actions: "cancel vl>0&&kick vl>3"
open:
active: true
actions: "cancel vl>0"
fastclick:
active: true
delay: 50
actions: "cancel vl>5&&kick vl>20"
item:
active: true
actions: "kick vl>10"
moving:
survivalfly:
active: true
strict_mode: false
setback_policy:
fall_damage: true
void_to_void: true
latency_protection: 120
actions: "cancel vl>20&&log vl>30 break=60&&warn vl>90 message=fly_short&&kick vl>100&&ban repeat=3 time=3,0,0"
speed:
active: true
morepackets:
active: true
actions: "cancel vl>5&&kick vl>15&&ban repeat=3 time=3,0,0"
creativefly:
active: true
actions: "cancel vl>20"
nofall:
active: true
dealdamage: true
skipallowflight: true
resetonviolation: false
resetonteleport: true
resetonvehicle: true
actions: "cancel vl>5&&log vl>10&&kick vl>20"
vehicle:
active: true
actions: "cancel vl>10&&kick vl>50&&ban repeat=3 time=3,0,0"
string:
kick: "§c§lNCP §7>> §rYou are kicked by NCP because of using @hack on server@next"
ban: "§c§lNCP §7>> §rYou are banned by NCP for §c@days,@hours,@minutes,@seconds§r because of using @hack @nextEndTime: @end"
fly_short: "@player could be flying hack @vl"
permission:
no_permission: "§c§lNCP §7>> §rYou do not have permission to run this command."
policy:
- "nocheatplus.admin.all:reload,kick,ban,unban,debug,toggle,permission"
- "nocheatplus.admin.helper:kick,ban,unban"
bypass:
# Custom bypass permission
MOVING_CREATIVE_FLY:
- "ncp.creativefly.bypass"
在每个检测项目中有一个actions的设定,下面给出处罚操作的格式:
对象A[关系式]对象B 其他参数
&&
进行连接cancel
产生一个拉回操作,回滚当前tick的运动log
向NCP日志中记录玩家作弊行为,参数break 冷却秒数
warn
向玩家发送一个警告消息,参数message 消息内容
kick
将玩家踢出服务器ban
将玩家从服务器封禁,参数repeat 容错次数
,time 封禁时间
在permission.policy中进行设置,格式为:
权限:命令表
nocheatplus.admin.all
和nocheatplus.admin.helper
中都没规定在permission下bypass中添加,格式为:
作弊类型:权限(List)
可用作弊类型:
MOVING_SURVIVAL_FLY
MOVING_CREATIVE_FLY
MOVING_VEHICLE
MOVING_SPEED
MOVING_MORE_PACKETS
MOVING_NO_FALL
INVENTORY_INSTANT_EAT
INVENTORY_OPEN
INVENTORY_FAST_CLICK
INVENTORY_MOVE
FIGHT_SPEED
FIGHT_REACH
NCP 提供了丰富的开发接口,你可以依赖它快速开发扩展插件
开发者接口参考 NoCheatPlus
com.github.Physical-Science-Academy.NoCheatPlus
ArtifactId | Version |
---|---|
NoCheatPlus | maven-repo-20220552-2a |
NoCheatPlus | maven-repo-20220552-3a |
NoCheatPlus | maven-repo-20220552-4a |
NoCheatPlus | maven-repo-20220552-common |
CompatNCP | maven-repo-20220552-common |
ECCPCompat | maven-repo-20220552-common |
NCPLiteBan | maven-repo-20220552-common |
NCPPlugin | maven-repo-20220552-common |
NCPStaticBar | maven-repo-20220552-common |
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.Physical-Science-Academy.NoCheatPlus:CompatNCP:maven-repo-20220552-common'
}
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.Physical-Science-Academy.NoCheatPlus</groupId>
<artifactId>NoCheatPlus</artifactId>
<version>maven-repo-20220552-common</version>
</dependency>
</dependencies>
一个简单的例子去实例化API:
NoCheatPlusAPI api = NoCheatPlus.instance;
方法名 | 介绍 |
---|---|
getNCPProvider() | 获取NCP主类 |
getComManager() | 获得NCP模块管理器 |
getAllComponents() | 获得所有的NCP模块 |
getAllPlayerData() | 获得所有的NCP玩家数据 |
addComponents(components: NCPComponent) | 注册NCP模块 |
hasPlayer(player: Player) | 判断玩家是否在NCP中生成了数据 |
getPlayerProvider(player: Player) | 获得玩家数据 |
getNCPLogger() | 获得NCP日志记录器 |
getNCPConfig() | 获得NCP主配置文件 |
getNCPBanRecord() | 获得NCP封禁记录文件 |
isPlayerBan(player: Player) | 判断玩家是否被NCP封禁 |
kickPlayer(player: Player, type: CheckType) | 让NCP踢出一个玩家 |
banPlayer(player: Player, days: Int) | 让NCP封禁一个玩家 |
hasPermission(player: Player, command: String) | 玩家是否拥有使用NCP某命令的权限 |
hasPermissionBypass(player: Player, type: CheckType) | 玩家是否有权限绕过某检查 |
createBypassPermission(permission: String, type: CheckType) | 创建一个绕过某检测的权限 |
removeBypassPermission(permission: String, type: CheckType) | 删除一个绕过某检测的权限 |
clearAllViolations(player: Player) | 清除玩家所有Violation Level |
该插件允许玩家在《我的世界》服务器上管理受保护的区域。其主要功能包括:
区域保护: 玩家可以使用
/reg create <region>
创建 20x20 方块的区域来保护他们的区域。区域移除: 玩家可以使用
/reg remove <region>
删除自己的区域,而管理员可以使用/reg remove <region> <user>
删除其他玩家的区域。名称和所有权管理: 玩家可以使用
/reg rename <region> <new name>
重命名他们的区域,并通过/reg setowner <region> <user>
转移区域所有权。好友管理: 玩家可以添加或移除好友,以允许他们访问自己的区域。使用
/reg addfriend <region> <user>
和/reg removefriend <region> <user>
来完成操作。区域查看: 玩家可以使用
/reg myregions
查看自己的区域,管理员可以使用...
该插件允许玩家在《我的世界》服务器上管理受保护的区域。其主要功能包括:
区域保护: 玩家可以使用 /reg create <region>
创建 20x20 方块的区域来保护他们的区域。
区域移除: 玩家可以使用 /reg remove <region>
删除自己的区域,而管理员可以使用 /reg remove <region> <user>
删除其他玩家的区域。
名称和所有权管理: 玩家可以使用 /reg rename <region> <new name>
重命名他们的区域,并通过 /reg setowner <region> <user>
转移区域所有权。
好友管理: 玩家可以添加或移除好友,以允许他们访问自己的区域。使用 /reg addfriend <region> <user>
和 /reg removefriend <region> <user>
来完成操作。
区域查看: 玩家可以使用 /reg myregions
查看自己的区域,管理员可以使用 /reg myregions <user>
查看其他用户的区域。
重载和帮助: 命令 /reg reload
和 /reg help
允许重新加载插件配置和访问命令帮助。
该插件简化了在服务器上保护和管理个人区域的过程,并为管理员提供了更多操作选项。
常用命令:
/reg create <region>
- 保护一个 20x20 方块的区域。/reg remove <region>
- 完全删除自己的区域。/reg remove <region> <user>
(管理员) - 删除某个玩家的区域。/reg rename <region> <new name>
- 重命名区域。/reg setowner <region> <user>
- 转移区域的所有权。/reg addfriend <region> <user>
- 将好友添加到自己的区域。/reg removefriend <region> <user>
- 移除好友,使其无法访问区域。/reg myregions <user>
(管理员) - 显示其他用户的区域。/reg myregions
- 显示自己的区域。/reg reload
- 重新加载配置文件。/reg help
- 查看帮助命令。权限说明:
警告: 本插件仅支持 Java 21,请确保您的服务器运行 Java 21 以确保兼容性。
Minecraft 的 FFA 插件 - 为每个人提供的史诗级战场!
通过我们令人惊叹的 FFA 插件,体验终极的“自由对战”(FFA)玩法!参与令人兴奋的战斗,目标只有一个:生存并主宰战场。完美适合所有寻求荣耀与荣誉的冒险者和战士。
功能特点
玩家统计: 跟踪您的击杀、死亡和击杀/死亡比率。您是服务器上最强的战士吗?
交互式界面: 用户友好的菜单让您能够快速加入战斗、管理个人资料等。
更多功能即将推出(例如:套件、1对1、回合制等)
配置
ffa-world: world # 选择一个世界 welcome-message: 欢迎来到我们的全新自由对战模式。祝你好运! form-name: FFA 菜单 mainframe-description: 选择任意按钮
通过简单的配置选项,定制插件以适应您的服务器需求。以下是关键设置的快速概览:...
通过我们令人惊叹的 FFA 插件,体验终极的“自由对战”(FFA)玩法!参与令人兴奋的战斗,目标只有一个:生存并主宰战场。完美适合所有寻求荣耀与荣誉的冒险者和战士。
玩家统计: 跟踪您的击杀、死亡和击杀/死亡比率。您是服务器上最强的战士吗?
交互式界面: 用户友好的菜单让您能够快速加入战斗、管理个人资料等。
更多功能即将推出(例如:套件、1对1、回合制等)
ffa-world: world # 选择一个世界
welcome-message: 欢迎来到我们的全新自由对战模式。祝你好运!
form-name: FFA 菜单
mainframe-description: 选择任意按钮
通过简单的配置选项,定制插件以适应您的服务器需求。以下是关键设置的快速概览:
ffa-world: 选择战斗发生的世界。
welcome-message: 向加入游戏的所有玩家发送温暖的欢迎消息。
form-name: 主界面菜单的名称。
mainframe-description: 主界面菜单的简要描述。
准备好迎接一场史诗冒险,展示您的技能,参加自由对战!通过我们的 Minecraft FFA 插件,您将近距离体验激烈战斗,并始终处于战场中心。今天就下载插件,成为服务器上的无敌战士!
体验终极的 FFA 冒险,成为传奇!