Skip to content

Commit 93dfc0d

Browse files
Bug Fix: Player Quit Without Ending Q&A
1 parent ed2eb10 commit 93dfc0d

File tree

5 files changed

+24
-3
lines changed

5 files changed

+24
-3
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>top.mpt.huihui</groupId>
88
<artifactId>answerit</artifactId>
9-
<version>1.53-SNAPSHOT</version>
9+
<version>1.54-SNAPSHOT</version>
1010
<packaging>jar</packaging>
1111

1212
<name>Answerit</name>

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

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
package top.mpt.huihui.answerit.listener;
22

3+
import org.bukkit.entity.Player;
34
import org.bukkit.event.EventHandler;
45
import org.bukkit.event.Listener;
56
import org.bukkit.event.player.PlayerJoinEvent;
67
import org.bukkit.event.player.PlayerQuitEvent;
8+
import top.mpt.huihui.answerit.prize.prize;
9+
import top.mpt.huihui.answerit.utils.ChatUtils;
10+
import top.mpt.huihui.answerit.utils.i18N;
11+
712
import static top.mpt.huihui.answerit.Main.Online_Players;
13+
import static top.mpt.huihui.answerit.Main.playersOnQuestioning;
814

915
public class PlayerJoinAndQuit implements Listener {
1016
@EventHandler
@@ -17,7 +23,15 @@ public void onPlayerJoin(PlayerJoinEvent event){
1723

1824
@EventHandler
1925
public void onPlayerQuit(PlayerQuitEvent event){
20-
String PlayerName = event.getPlayer().getName();
21-
Online_Players.remove(PlayerName);
26+
Player player = event.getPlayer();
27+
Online_Players.remove(player.getName());
28+
// 如果玩家在提问队列中,就移除玩家
29+
// TODO:并扣除生命值上限
30+
if (playersOnQuestioning.contains(player)){
31+
playersOnQuestioning.remove(prize.getPrizePlayer());
32+
playersOnQuestioning.remove(prize.getTargetPlayer());
33+
// 全服公告
34+
ChatUtils.broadcast(i18N.getLang("global.player_quit").toString(), player.getName());
35+
}
2236
}
2337
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ public static void executePrize(){
7979
playersOnQuestioning.remove(targetPlayer);
8080
clearAllPlayer();
8181
}
82+
// // 判断玩家是否被减少了生命值,如果被减少过,就设置玩家生命值为正常值
83+
// else if (prizePlayer.isHealthScaled()){
84+
// prizePlayer.setHealthScale(20);
85+
// prizePlayer.setHealthScaled(false);
86+
// }
8287
else {
8388
// 执行奖励
8489
prizePlayer.openInventory(targetPlayer.getInventory());

src/main/resources/lang/en_us.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ global:
2828
player_cant_answer: "#RED#You cannot answer it again!!!"
2929
command_err_format: "#AQUA#The format you entered is incorrect!"
3030
inv_closed: "#AQUA#This Q&A operation has ended."
31+
player_quit: "#RED#Player: #AQUA#%s #RED#quited the game during the Q&A operation, so the Q&A operation has ended."
3132

3233
select:
3334
player_send_question: "#AQUA#The target has received your question, please be patient and wait for his or her answer."

src/main/resources/lang/zh_cn.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ global:
2727
player_cant_answer: "#RED#想啥呢?答完题了还想再答是吧???给爷爬!!!"
2828
command_err_format: "#AQUA#您输入的格式并不正确!"
2929
inv_closed: "#AQUA#本次问答操作已结束。"
30+
player_quit: "#RED#玩家: #AQUA#%s#RED#在问答过程中陶艺了,本次问答操作已结束。"
3031

3132
select:
3233
player_send_question: "#AQUA#对方已收到您的问题,请耐心等待对方回答。"

0 commit comments

Comments
 (0)