Skip to content

Commit 25793e7

Browse files
committed
途中抜け、即キル判定
1 parent 5acacaf commit 25793e7

File tree

2 files changed

+5
-67
lines changed

2 files changed

+5
-67
lines changed

src/main/java/com/github/elic0de/thejpspit/listener/CombatTagger.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,9 @@ public void run() {
5656
new BukkitRunnable() {
5757
@Override
5858
public void run() {
59-
// TODO コード修正
60-
final Map<UUID, Entity> combatPlayers = EventListener.combatPlayers;
61-
if (combatPlayers.containsKey(uuid)) {
62-
combatPlayers.get(uuid).remove();
63-
combatPlayers.remove(uuid);
64-
}
65-
if (Bukkit.getPlayer(uuid) != null) {
66-
PitPlayerManager.getPitPlayer(Bukkit.getPlayer(uuid))
59+
final Player player = Bukkit.getPlayer(uuid);
60+
if (player != null) {
61+
PitPlayerManager.getPitPlayer(player)
6762
.setLastDamager(null);
6863
}
6964
}

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

Lines changed: 2 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ public EventListener() {
4949
Bukkit.getPluginManager().registerEvents(this, TheJpsPit.getInstance());
5050
}
5151

52-
public static final Map<UUID, Entity> combatPlayers = new HashMap<>();
53-
5452
@EventHandler
5553
public void onJoin(PlayerJoinEvent event) {
5654
event.setJoinMessage("");
@@ -70,29 +68,16 @@ public void onJoin(PlayerJoinEvent event) {
7068
if (updateNeeded) {
7169
plugin.getDatabase().updateUserData(pitPlayer);
7270
}
73-
74-
if (combatPlayers.containsKey(player.getUniqueId())) {
75-
LivingEntity entity = (LivingEntity) combatPlayers.get(player.getUniqueId());
76-
player.setHealth(entity.getHealth());
77-
entity.remove();
78-
}
7971
}
8072

8173
@EventHandler
8274
public void onQuit(PlayerQuitEvent event) {
8375
event.setQuitMessage(null);
8476

8577
final PitPlayer player = PitPlayerManager.getPitPlayer(event.getPlayer());
86-
final UUID uuid = player.getUniqueId();
87-
// 直近攻撃や攻撃を受けていたら仮プレイヤーゾンビを召喚させる
78+
// 直近攻撃や攻撃を受けていて離脱したらペナルティーとして最後に与えたプレイヤーのキルとする
8879
if (CombatTagger.isTagged(player.getUniqueId())) {
89-
LivingEntity entity = (LivingEntity) player.getPlayer().getWorld().spawnEntity(player.getPlayer().getLocation(), EntityType.ZOMBIE);
90-
entity.setMetadata("uuid", new FixedMetadataValue(TheJpsPit.getInstance(), uuid));
91-
entity.getWorld().strikeLightningEffect(entity.getLocation());
92-
entity.getEquipment().setArmorContents(player.getPlayer().getInventory().getArmorContents());
93-
entity.setCustomName(player.getName());
94-
entity.setHealth(player.getPlayer().getHealth());
95-
combatPlayers.put(uuid, entity);
80+
plugin.getGame().death(player);
9681
}
9782

9883
PitPlayerManager.unregisterUser(player);
@@ -102,48 +87,6 @@ public void onQuit(PlayerQuitEvent event) {
10287
}
10388
}
10489

105-
@EventHandler
106-
public void onDeath(EntityDeathEvent event) {
107-
final LivingEntity entity = event.getEntity();
108-
final Database database = TheJpsPit.getInstance().getDatabase();
109-
110-
if (entity.getType() != EntityType.ZOMBIE) return;
111-
if (entity.hasMetadata("uuid")) {
112-
final List<MetadataValue> metadataValues = entity.getMetadata("uuid");
113-
for (MetadataValue metadata : metadataValues) {
114-
final UUID uuid = (UUID) metadata.value();
115-
combatPlayers.get(uuid).remove();
116-
117-
if (entity.getKiller() != null) {
118-
final Player killer = entity.getKiller();
119-
final PitPlayer player = PitPlayerManager.getPitPlayer(killer);
120-
final Optional<OfflinePitPlayer> vitimOptional = database.getOfflinePitPlayer(uuid);
121-
122-
player.increaseKills();
123-
player.increaseXP();
124-
player.increaseStreaks();
125-
player.addReward();
126-
127-
TheJpsPit.getInstance().getRatingHelper().initRating(player);
128-
129-
vitimOptional.ifPresent(vitim -> {
130-
vitim.increaseDeaths();
131-
vitim.resetStreaks();
132-
TheJpsPit.getInstance().getRatingHelper().initRating(vitim);
133-
database.updateUserData(vitim);
134-
135-
player.sendMessage("&b【PIT】%player%を倒しました(KDレート:%rating%)"
136-
.replaceAll("%player%", entity.getCustomName())
137-
.replaceAll("%rating%", vitim.getRating() + "%")
138-
);
139-
});
140-
}
141-
}
142-
}
143-
event.getDrops().clear();
144-
event.setDroppedExp(0);
145-
}
146-
14790
@EventHandler
14891
public void onConsume(PlayerItemConsumeEvent event) {
14992
final Player player = event.getPlayer();

0 commit comments

Comments
 (0)