Skip to content

Commit 9851fa0

Browse files
committed
アシストがおかしいのを修正?
1 parent d18207b commit 9851fa0

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

src/main/java/com/github/elic0de/thejpspit/spigot/util/KillAssistHelper.java

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@
33
import com.github.elic0de.thejpspit.spigot.TheJpsPit;
44
import com.github.elic0de.thejpspit.spigot.player.PitPlayer;
55
import com.github.elic0de.thejpspit.spigot.player.PitPlayerManager;
6-
import java.util.HashMap;
7-
import java.util.UUID;
86
import org.bukkit.Bukkit;
97
import org.bukkit.entity.Player;
108
import org.bukkit.event.EventHandler;
119
import org.bukkit.event.Listener;
1210
import org.bukkit.event.entity.EntityDamageByEntityEvent;
1311

12+
import java.util.Collections;
13+
import java.util.HashMap;
14+
import java.util.Map;
15+
import java.util.UUID;
16+
1417
import static java.lang.Math.round;
1518

1619
public class KillAssistHelper implements Listener {
@@ -21,23 +24,24 @@ public KillAssistHelper() {
2124
Bukkit.getPluginManager().registerEvents(this, TheJpsPit.getInstance());
2225
}
2326

24-
public void death(PitPlayer pitPlayer) {
25-
if (pitPlayers.containsKey(pitPlayer.getUniqueId())) {
26-
final String KillerName = pitPlayer.getKiller().getName();
27+
public void death(PitPlayer victim) {
28+
if (pitPlayers.containsKey(victim.getUniqueId())) {
29+
final Map<UUID, Double> damagerMap = Collections.unmodifiableMap(pitPlayers.get(victim.getUniqueId()));
2730
double totalDamage = 0D;
28-
for (Double damage : pitPlayers.get(pitPlayer.getUniqueId()).values()) {
31+
for (Double damage : damagerMap.values()) {
2932
totalDamage += damage;
3033
}
31-
for (UUID uuid : pitPlayers.get(pitPlayer.getUniqueId()).keySet()) {
34+
for (UUID uuid : damagerMap.keySet()) {
3235
final Player player = Bukkit.getPlayer(uuid);
3336
if (player == null) continue;
34-
if (pitPlayer.getName().equalsIgnoreCase(player.getName())) continue;
35-
final double damaged = pitPlayers.get(pitPlayer.getUniqueId()).get(uuid);
36-
final int assistPer = (int) round(damaged/totalDamage * 100);
37-
pitPlayer.sendMessage("アシストキル [%per%%] %killedPlayer%".replaceAll("%per%", assistPer + "").replaceAll("%killedPlayer%", KillerName));
37+
final PitPlayer damager = PitPlayerManager.getPitPlayer(player);
38+
if (victim.getName().equalsIgnoreCase(damager.getName())) continue;
39+
final double damaged = damagerMap.get(uuid);
40+
final int assistPer = (int) round(damaged / totalDamage * 100);
41+
damager.sendMessage("アシストキル [%per%%] %killedPlayer%".replaceAll("%per%", assistPer + "").replaceAll("%killedPlayer%", victim.getName()));
3842
}
39-
pitPlayers.get(pitPlayer.getUniqueId()).clear();
40-
}
43+
pitPlayers.get(victim.getUniqueId()).clear();
44+
}
4145
}
4246

4347
@EventHandler
@@ -49,7 +53,7 @@ private void onDamage(EntityDamageByEntityEvent event) {
4953

5054
if (pitPlayers.containsKey(victimPitPlayer.getUniqueId())) {
5155
final HashMap<UUID, Double> damages = pitPlayers.get(victimPitPlayer.getUniqueId());
52-
final double damage = damages.getOrDefault(pitPlayer.getPlayer(),0D);
56+
final double damage = damages.getOrDefault(pitPlayer.getPlayer().getUniqueId(), 0D);
5357
final double totalDamage = damage + event.getDamage();
5458
damages.put(pitPlayer.getUniqueId(), totalDamage);
5559
return;

0 commit comments

Comments
 (0)