java - Player*First*JoinEvent 我应该怎么做?
问题描述
所以我尝试为我的服务器制作一个简单的 PlayerJoinEvent ( AKA. Player First JoinEvent )。有没有办法做到这一点?我想在玩家第一次加入服务器时运行我的代码。我尝试了多种选择,例如使用if(player.hasPlayedBefore())
,但它不想工作!那么,您是否知道如何修复它或使用不同的方法来解决它?感谢大家的帮助!
解决方案
您可能还没有删除玩家数据!如果有新玩家加入,会创建新玩家数据,只有这样 Spigot 才知道该玩家是服务器的新玩家!
为此:
- 关闭你的服务器
- 去
server-folder/world/playerdata/*player-uuid*.dat
- 删除player-uuid .dat
- 启动服务器
警告:这会删除玩家库存!
如果您的服务器处于离线模式,并且您不知道您的 UUID 是什么,请使用此在线工具。如果您的服务器处于在线模式,并且您不知道您的 UUID,请使用namemc
测试事件的代码:
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
if(!event.getPlayer().hasPlayedBefore()) {
event.getPlayer().sendMessage("Hi!");
}
}
不要忘记在您的主课中注册此活动!
推荐阅读
- r - 在几何线中以不同比例绘制辅助轴
- angular - 无法将具有 Angular Universal 的 Angular 9 应用程序部署到具有 Firebase 功能的 Firebase
- java - JSON 映射集合到 ArrayList
- ruby-on-rails - lazyload-rails 显示扭曲的 PNG
- google-analytics - 是不是像加 onclick=”ga('send', 'event', 'Category', 'Action', 'Label', 'Value');》这么简单 到我的链接以跟踪点击事件?
- postgresql - 在 Postgres 的另一列中获取具有最大字符串长度的行
- javascript - Discord.js V12 如何显示具有特定角色的所有成员?
- node.js - 如果在 NodeJS 中未确认电子邮件,则自动删除 Mongo 文档
- java - 检测到错误的 Node.js 版本
- firebase - 如何将图像加载到内存中,然后在 Flutter / Dart 中保存到 Firebase 存储