Skip to content

Commit 3255e5e

Browse files
debug
1 parent 57285a6 commit 3255e5e

File tree

16 files changed

+169
-61
lines changed

16 files changed

+169
-61
lines changed

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# AnswerIt
22

3-
灵感源自[《你 问 我 打 !》](https://www.bilibili.com/video/BV13V4y1W7X6/)
3+
灵感源自 [《你 问 我 打 !》](https://www.bilibili.com/video/BV13V4y1W7X6/)
44

55
是视频里插件的升级版,选择问题并不只有是与不是,可以自定义多个选项
66

@@ -9,9 +9,12 @@
99
## TODOs
1010

1111
- [x] Select模式判定
12-
- [ ] Wrire模式判定
13-
- [ ] 投票系统
14-
- [ ] 奖罚系统
12+
- [x] Write模式判定
13+
- [x] 投票系统
14+
- [x] 奖罚系统
15+
16+
## 目前已知问题:
17+
- permission即使default是true,也不会给没OP的玩家权限
1518

1619
## 咕咕咕
1720

src/main/java/top/mpt/huihui/answerit/Main.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.bukkit.ChatColor;
44
import org.bukkit.plugin.java.JavaPlugin;
55
import top.mpt.huihui.answerit.executor.CommandHandler;
6+
import top.mpt.huihui.answerit.listener.InvOpen;
67
import top.mpt.huihui.answerit.listener.PlayerChat;
78

89
import java.util.ArrayList;
@@ -12,8 +13,9 @@
1213

1314
public final class Main extends JavaPlugin {
1415

15-
// getLogger()用
16+
// log用
1617
public static Main instance;
18+
/* Write */
1719
// 是否检查玩家聊天
1820
public static boolean isCheckChat = false;
1921
// 存票
@@ -22,6 +24,7 @@ public final class Main extends JavaPlugin {
2224
public static List<String> voteList = new ArrayList<>();
2325
// 避免玩家投票结束后进行投票
2426
public static boolean canVote = false;
27+
// 设置奖励玩家
2528
public static String normal = BLUE + "[AnswerIt] ";
2629
@Override
2730
public void onEnable() {
@@ -30,6 +33,7 @@ public void onEnable() {
3033
saveDefaultConfig();
3134
getCommand("answer").setExecutor(new CommandHandler());
3235
getServer().getPluginManager().registerEvents(new PlayerChat(), this);
36+
getServer().getPluginManager().registerEvents(new InvOpen(), this);
3337
getLogger().info(normal + ChatColor.AQUA + "插件已启用");
3438
}
3539

src/main/java/top/mpt/huihui/answerit/commands/impl/q.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.bukkit.entity.Player;
88
import top.mpt.huihui.answerit.Main;
99
import top.mpt.huihui.answerit.commands.ICommand;
10+
import top.mpt.huihui.answerit.prize.prize;
1011
import top.mpt.huihui.answerit.utils.ChatUtils;
1112
import top.mpt.huihui.answerit.utils.PlayerUtils;
1213

@@ -19,10 +20,7 @@ public class q extends ICommand {
1920
public q() {
2021
super("q", "", "/answer q [PlayerName] [Question] [select/wrtite] [answer] [answer] *n");
2122
List<String> params = new ArrayList<>();
22-
Bukkit.getOnlinePlayers().forEach( it -> {
23-
params.add(it.getName());
24-
}
25-
);
23+
Bukkit.getOnlinePlayers().forEach( it -> params.add(it.getName()) );
2624
setListParams(params);
2725
}
2826

@@ -74,6 +72,8 @@ public boolean onCommand(CommandSender sender, String[] args) {
7472
message.addExtra(single);
7573
}
7674
}
75+
// 可以奖励
76+
prize.canPrize = true;
7777
sender.spigot().sendMessage(message);
7878
} else if (Objects.equals(args[2], "write") || Objects.equals(args[2], "Write")){
7979
PlayerUtils.send(target, "#YELLOW#您收到了来自#AQUA#[%s]#YELLOW#的提问", sender.getName());
@@ -85,6 +85,9 @@ public boolean onCommand(CommandSender sender, String[] args) {
8585
ChatUtils.broadcast("%s#AQUA#提问内容: #RESET#%s", Main.normal, args[1]);
8686
ChatUtils.broadcast("%s#GREEN#正在等待玩家#AQUA#%s#GREEN#作答", Main.normal, target.getName());
8787
Main.isCheckChat = true;
88+
// 假设玩家会答对,timer那里可以直接execute
89+
prize.setPrizePlayer(target);
90+
prize.setTargetPlayer((Player) sender);
8891
}
8992

9093
} else {

src/main/java/top/mpt/huihui/answerit/commands/impl/reload.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public reload(){
1111

1212
public boolean onCommand(CommandSender sender, String[] args) {
1313
Main.getPlugin(Main.class).reloadConfig();
14+
sender.sendMessage("[AnswerIt] Plugin Reload Completed");
1415
return true;
1516
}
1617

src/main/java/top/mpt/huihui/answerit/commands/impl/send.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package top.mpt.huihui.answerit.commands.impl;
22

3+
import org.bukkit.Bukkit;
34
import org.bukkit.command.CommandSender;
45
import org.bukkit.entity.Player;
56
import top.mpt.huihui.answerit.Main;
67
import top.mpt.huihui.answerit.commands.ICommand;
8+
import top.mpt.huihui.answerit.prize.prize;
79
import top.mpt.huihui.answerit.utils.ChatUtils;
810
import top.mpt.huihui.answerit.utils.PlayerUtils;
911

@@ -16,17 +18,28 @@ public boolean onCommand(CommandSender sender, String[] args){
1618
// args[0] == 答对啦!
1719
// args[1] == NameFlying(提问者)
1820
if (sender instanceof Player){
21+
if (!prize.canPrize){
22+
PlayerUtils.send(sender, "#RED#想啥呢?答完题了还想再答是吧???给爷爬!!!");
23+
return true;
24+
}
1925
if (args.length != 2){
2026
PlayerUtils.send(sender, "#AQUA#您输入的格式并不正确!");
2127
} else if (args[0].equals("答对啦!")){
2228
PlayerUtils.send(sender, "#GREEN#答对啦!");
2329
ChatUtils.broadcast("%s#GOLD#玩家: #AQUA#%s #GOLD#答对了 #BLUE#%s #GOLD#的问题。", Main.normal, sender.getName(), args[1]);
30+
prize.setPrizePlayer((Player) sender);
31+
prize.setTargetPlayer(Bukkit.getPlayer(args[1]));
32+
prize.executePrize();
2433
} else if (args[0].equals("答错了!")){
2534
PlayerUtils.send(sender, "#RED#答错了qwq");
2635
ChatUtils.broadcast("%s#RED#玩家: #AQUA#%s #RED#答错了 #BLUE#%s #RED#的问题。", Main.normal, sender.getName(), args[1]);
36+
prize.setTargetPlayer((Player) sender);
37+
prize.setPrizePlayer(Bukkit.getPlayer(args[1]));
38+
prize.executePrize();
2739
} else {
2840
PlayerUtils.send(sender, "#GREEN#不对啊qwq,肯定是服务器出问题了,这行字按道理来说不会出现的qwq。不要找灰灰好吧");
2941
}
42+
3043
} else {
3144
sender.sendMessage("请让玩家执行该指令.");
3245
}

src/main/java/top/mpt/huihui/answerit/commands/impl/setanswer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package top.mpt.huihui.answerit.commands.impl;
22

3+
import com.sun.tools.classfile.ConstantPool;
34
import net.md_5.bungee.api.chat.ClickEvent;
45
import net.md_5.bungee.api.chat.TextComponent;
56
import org.bukkit.Bukkit;
67
import org.bukkit.entity.Player;
78
import top.mpt.huihui.answerit.commands.ICommand;
89
import org.bukkit.command.CommandSender;
10+
import top.mpt.huihui.answerit.prize.prize;
911
import top.mpt.huihui.answerit.utils.ChatUtils;
1012
import top.mpt.huihui.answerit.utils.PlayerUtils;
1113

@@ -85,6 +87,7 @@ public void sendQuestion(Player sender, String type, String text){
8587
}
8688
}
8789
target.spigot().sendMessage(message);
90+
8891
} else { // 提问类型不是write也不是select
8992
PlayerUtils.send(target, "#RED#提问类型有误,请让%s检查一下。", sender.getName());
9093
}

src/main/java/top/mpt/huihui/answerit/commands/impl/vote.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.bukkit.entity.Player;
66
import top.mpt.huihui.answerit.commands.ICommand;
77
import top.mpt.huihui.answerit.utils.ChatUtils;
8+
import top.mpt.huihui.answerit.utils.LogUtils;
89
import top.mpt.huihui.answerit.utils.PlayerUtils;
910

1011
import java.util.Objects;
@@ -19,12 +20,13 @@ public vote(){
1920
public boolean onCommand(CommandSender sender, String[] args) {
2021
if (sender instanceof Player){
2122
// 防止重复投票
22-
// for (String player : voteList){
23-
// if (Objects.equals(player, sender.getName())){
24-
// PlayerUtils.send(sender, "#RED#您已经参与过投票了,请不要重复投票!!!");
25-
// return true;
26-
// }
27-
// }
23+
LogUtils.info(voteList);
24+
for (String player : voteList){
25+
if (Objects.equals(player, sender.getName())){
26+
PlayerUtils.send(sender, "#RED#您已经参与过投票了,请不要重复投票!!!");
27+
return true;
28+
}
29+
}
2830
// 避免玩家投票结束后再次投票
2931
if (!canVote){
3032
PlayerUtils.send(sender, "#RED#投票时间已过!");

src/main/java/top/mpt/huihui/answerit/executor/CommandHandler.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.bukkit.command.TabExecutor;
66
import top.mpt.huihui.answerit.commands.ICommand;
77
import top.mpt.huihui.answerit.commands.impl.*;
8+
import top.mpt.huihui.answerit.utils.LogUtils;
89
import top.mpt.huihui.answerit.utils.PlayerUtils;
910

1011
import java.util.*;
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package top.mpt.huihui.answerit.listener;
2+
3+
import jdk.jpackage.internal.Log;
4+
import org.bukkit.event.EventHandler;
5+
import org.bukkit.event.Listener;
6+
import org.bukkit.event.inventory.InventoryClickEvent;
7+
import org.bukkit.entity.Player;
8+
import top.mpt.huihui.answerit.prize.prize;
9+
import top.mpt.huihui.answerit.utils.LogUtils;
10+
11+
public class InvOpen implements Listener {
12+
@EventHandler
13+
public void onInvClicked(InventoryClickEvent event){
14+
if(event.getInventory().equals(prize.getTargetPlayer().getInventory())){
15+
Player prizePlayer = prize.getPrizePlayer();
16+
Player targetPlayer = prize.getTargetPlayer();
17+
// 添加物品
18+
prizePlayer.getInventory().addItem(event.getCurrentItem());
19+
// 移除物品
20+
targetPlayer.getInventory().remove(event.getCurrentItem());
21+
// 关闭inventory
22+
prizePlayer.closeInventory();
23+
// 结束奖励
24+
prize.clearAllPlayer();
25+
}
26+
}
27+
}

src/main/java/top/mpt/huihui/answerit/listener/PlayerChat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void onPlayerChat(AsyncPlayerChatEvent event){
4848
int delaySecond = (int) ConfigUtils.getConfig("Write-wait-time", 30);
4949
ChatUtils.broadcast("%s#RED#计时#AQUA#%d#RED#秒,开始。", normal, delaySecond);
5050
ChatUtils.broadcast("%s#RED#请在规定时间内完成投票。", normal);
51-
new Timer().runTaskTimer(Main.getPlugin(Main.class), delaySecond * 20L, 0);
51+
new Timer().runTaskLater(Main.getPlugin(Main.class), delaySecond * 20L);
5252
// 撤销事件
5353
isCheckChat = false;
5454
}

0 commit comments

Comments
 (0)