ChatGames 是一个基础的聊天互动游戏 API,允许你为玩家在聊天中增添趣味问答。它内置了四种默认问题类型,并支持通过配置自定义奖励与题目生成器。
flint and steel)give %player% minecraft:diamond 3)> 请注意:本插件并非一个功能完整的独立游戏插件。其核心是提供 API 支持,内置的四种问题类型仅为示例。插件本身仅支持基础奖励(金钱与命令)。
/chatgames current - 显示当前问题、答案与剩余时间/chatgames leaderboard - 显示前 10 名得分榜(如果可用)/chatgames list - 显示所有已加载的问题生成器/chatgames reload - 重载插件配置/chatgames reset [player] - 重置所有玩家/指定玩家的分数/chatgames skip - 跳过当前问题/chatgames toggle - 切换是否接收聊天游戏公告/chatgames version - 显示插件版本chatgames.admin - 使用大部分 /chatgames 命令chatgames.admin.reload - 使用 /chatgames reloadchatgames.admin.reset - 使用 /chatgames reset [player]chatgames.leaderboard - 使用 /chatgames leaderboardchatgames.blacklist - 永不接收聊天游戏问题chatgames.whitelist - 始终接收聊天游戏问题你需要创建一个继承 ChatGameGenerator 的类。生成器会自动注册,因此只需创建一个实例。
public class ExampleQuestion extends ChatGameGenerator {
private static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
// 后续版本中必需
public ExampleQuestion(Plugin plugin) {
super(plugin);
}
// 当轮到该生成器提问时,会调用此方法
@Override
public Question getNewQuestion() {
int index = new Random().nextInt(ALPHABET.length());
return new Question() {
@Override
public String getAnswer() {
return Character.toString(ALPHABET.charAt(index));
}
@Override
public boolean isCaseSensitive() {
return false;
}
@Override
public String getQuestion() {
String message = "what's the %index% letter in the alphabet";
return message.replace("%index%", (index + 1) + (index < 3 ? (index == 0 ? "st" : (index == 1 ? "nd" : "rd")) : "th"));
}
@Override
public String getMessage() {
return "&7Answer &e%question% &7to get rewards!";
}
};
}
// 自 6.0 版本起,生成器需要此方法
@Override
public String getName() {
return "Alphabet";
}
}你可以监听 AsyncChatGameWinEvent 来添加自定义奖励。请注意,自 4.0 版本起,此事件是异步触发的。
@EventHandler
public void onWin(AsyncChatGameWinEvent event) {
Player winner = event.getPlayer();
winner.getInventory().addItem(new ItemStack(Material.DIAMOND));
event.setWinMessage("&aCongratulations! You won a diamond");
}你还可以使用 JavaScript 脚本定义问题生成器。将脚本文件放置在 ChatGames\scripts 目录下。
脚本必须返回一个包含必需成员的 JSON 对象。
// 该脚本需返回一个包含必需成员的 JSON 对象
// 将此脚本放在 ChatGames\scripts 目录中
function getQuestion() {
return {
answer: "true",
caseSensitive: false,
question: "this is a lie",
message: "&7Is '&e%question%&7' a paradox?"
};
}
getQuestion();友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:2,642,896 | 历史访问人次:3,203,121
今日访问人数:18,086 | 今日访问人次:20,480
昨日访问人数:46,463 | 昨日访问人次:52,262
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6