Skip to content

Commit 17b4c84

Browse files
committed
サーバーキュー実装
1 parent f767d85 commit 17b4c84

File tree

7 files changed

+35
-37
lines changed

7 files changed

+35
-37
lines changed

src/main/java/com/github/elic0de/thejpspit/spigot/TheJpsPit.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.google.gson.GsonBuilder;
3131
import org.bukkit.Bukkit;
3232
import org.bukkit.GameRule;
33+
import org.bukkit.attribute.Attribute;
3334
import org.bukkit.plugin.PluginManager;
3435
import org.bukkit.plugin.java.JavaPlugin;
3536

@@ -106,7 +107,7 @@ public void onEnable() {
106107
loadHooks();
107108

108109
Bukkit.getWorlds().forEach(world -> {
109-
//world.setGameRule(GameRule., true);
110+
world.setGameRule(GameRule.DO_IMMEDIATE_RESPAWN, true);
110111
world.setGameRule(GameRule.KEEP_INVENTORY, true);
111112
});
112113

src/main/java/com/github/elic0de/thejpspit/spigot/gui/ServerQueueMenu.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ private ServerQueueMenu(TheJpsPit plugin, String title) {
2929
this.menu.setFiller(new ItemStack(Material.BLACK_STAINED_GLASS_PANE, 1));
3030
// Add pagination handling
3131
this.menu.addElement(
32-
queueButton('x', "wool", new ItemStack(Material.PINK_WOOL),
32+
queueButton('x', "lobby", new ItemStack(Material.PINK_WOOL),
3333
"CatchTheWool", "&7相手陣地にある羊毛を自分陣地へ持ち帰れ!"));
3434
this.menu.addElement(
3535
queueButton('y', "battle", new ItemStack(Material.COBBLESTONE),

src/main/java/com/github/elic0de/thejpspit/spigot/listener/EventListener.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import com.github.elic0de.thejpspit.spigot.player.PitPlayerManager;
1111
import com.github.elic0de.thejpspit.spigot.villager.VillagerNPC;
1212
import com.github.elic0de.thejpspit.spigot.villager.VillagerNPCManager;
13+
import java.util.Objects;
14+
import java.util.Optional;
1315
import org.bukkit.Bukkit;
1416
import org.bukkit.GameMode;
1517
import org.bukkit.Material;
@@ -19,17 +21,24 @@
1921
import org.bukkit.event.EventHandler;
2022
import org.bukkit.event.Listener;
2123
import org.bukkit.event.block.Action;
22-
import org.bukkit.event.block.BlockPlaceEvent;
23-
import org.bukkit.event.entity.*;
24+
import org.bukkit.event.entity.EntityDamageByEntityEvent;
25+
import org.bukkit.event.entity.EntityDamageEvent;
2426
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
25-
import org.bukkit.event.player.*;
27+
import org.bukkit.event.entity.EntityRegainHealthEvent;
28+
import org.bukkit.event.entity.FoodLevelChangeEvent;
29+
import org.bukkit.event.entity.PlayerDeathEvent;
30+
import org.bukkit.event.player.PlayerDropItemEvent;
31+
import org.bukkit.event.player.PlayerExpChangeEvent;
32+
import org.bukkit.event.player.PlayerInteractEntityEvent;
33+
import org.bukkit.event.player.PlayerInteractEvent;
34+
import org.bukkit.event.player.PlayerItemConsumeEvent;
35+
import org.bukkit.event.player.PlayerItemDamageEvent;
36+
import org.bukkit.event.player.PlayerJoinEvent;
37+
import org.bukkit.event.player.PlayerQuitEvent;
2638
import org.bukkit.inventory.EquipmentSlot;
2739
import org.bukkit.potion.PotionEffect;
2840
import org.bukkit.potion.PotionEffectType;
2941

30-
import java.util.Objects;
31-
import java.util.Optional;
32-
3342
public class EventListener implements Listener {
3443

3544
private final TheJpsPit plugin = TheJpsPit.getInstance();
@@ -41,7 +50,7 @@ public EventListener() {
4150
@EventHandler
4251
public void onJoin(PlayerJoinEvent event) {
4352
event.setJoinMessage("");
44-
53+
//new NoCollisionUtil().sendNoCollisionPacket(event.getPlayer());
4554
final Player player = event.getPlayer();
4655
final Optional<PitPlayer> userData = plugin.getDatabase().getPitPlayer(player);
4756

@@ -141,6 +150,7 @@ public void onDamage(EntityDamageByEntityEvent event) {
141150
final PitPlayer pitPlayer = PitPlayerManager.getPitPlayer(damager);
142151
switch (event.getCause()) {
143152
case FALL -> {
153+
damager.stopAllSounds();
144154
event.setCancelled(true);
145155
return;
146156
}

src/main/java/com/github/elic0de/thejpspit/spigot/network/PluginMessageReceiver.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.github.elic0de.thejpspit.spigot.TheJpsPit;
44
import com.github.elic0de.thejpspit.spigot.player.PitPlayer;
5-
import com.github.elic0de.thejpspit.spigot.queue.QueueServerType;
65
import com.google.common.io.ByteArrayDataInput;
76
import com.google.common.io.ByteArrayDataOutput;
87
import com.google.common.io.ByteStreams;
@@ -36,17 +35,16 @@ public void onPluginMessageReceived(String channel, Player player, byte[] messag
3635
if (!channel.equals(BUNGEE_CHANNEL_ID)) {
3736
return;
3837
}
39-
4038
ByteArrayDataInput in = ByteStreams.newDataInput(message);
4139
if (!in.readUTF().equals("TheJpsPit:response")) return;
4240

4341
HashMap<String, Integer> networkInformation = new HashMap<>();
4442
int length = in.readInt();
4543
for (int i = 0; i < length; i++) networkInformation.put(in.readUTF(), in.readInt());
4644

47-
networkInformation.forEach((s, integer) -> TheJpsPit.getInstance().getQueueManager()
48-
.updateQueue(s, integer));
49-
45+
networkInformation.forEach((s, integer) -> {
46+
TheJpsPit.getInstance().getQueueManager()
47+
.updateQueue(s, integer);
48+
});
5049
}
51-
5250
}

src/main/java/com/github/elic0de/thejpspit/spigot/queue/QueueManager.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,20 @@ public class QueueManager {
1616
private final Map<PitPlayer, String> queuedPlayers = new HashMap<>();
1717
private final Map<String, Integer> servers = new HashMap<>();
1818

19-
private final int MIN_PLAYER_SIZE = 6;
19+
private final int MIN_PLAYER_SIZE = 2;
2020

2121
public void checkQueue() {
2222
PluginMessageReceiver.sendServerPlayerCount();
2323
if (servers.isEmpty()) return;
2424

25-
servers.forEach((severName, onlinePlayers) -> {
26-
final int playerSize = (int) queuedPlayers.values().stream().filter(
27-
severName::equalsIgnoreCase).count();
28-
29-
if (MIN_PLAYER_SIZE < playerSize + onlinePlayers) {
30-
sendServer(severName);
31-
}
25+
servers.forEach((s, integer) -> {
26+
if (getNeededPlayer(s) == 0) sendServer(s);
3227
});
33-
34-
3528
}
3629

3730
public void addQueue(PitPlayer player, String serverName) {
3831
cancelQueue(player);
39-
32+
queuedPlayers.remove(player);
4033
queuedPlayers.put(player, serverName);
4134

4235
checkQueue();
@@ -65,10 +58,12 @@ private void sendServer(String serverName) {
6558

6659
public int getNeededPlayer(String serverName) {
6760
if (servers.isEmpty()) {
68-
return 6;
61+
return MIN_PLAYER_SIZE;
6962
}
70-
final int playerSize = (int) queuedPlayers.values().stream().filter(
63+
int totalPlayers = 0;
64+
if (servers.containsKey(serverName)) totalPlayers = servers.get(serverName);
65+
totalPlayers = totalPlayers + (int) queuedPlayers.values().stream().filter(
7166
serverName::equalsIgnoreCase).count();
72-
return Math.max(0, 6 - (queuedPlayers.size() + playerSize));
67+
return Math.max(0, MIN_PLAYER_SIZE - totalPlayers);
7368
}
7469
}

src/main/java/com/github/elic0de/thejpspit/spigot/queue/QueueServerType.java

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/main/resources/bungee.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Walkure
2-
main: amata1219.walkure.bungee.Walkure
1+
name: TheJps
2+
main: com.github.elic0de.thejpspit.bungee.TheJpsPit
33
version: 1.0.0
44
author: 'Elic0de#0342'

0 commit comments

Comments
 (0)