33import com .github .elic0de .thejpspit .spigot .TheJpsPit ;
44import com .github .elic0de .thejpspit .spigot .player .PitPlayer ;
55import com .github .elic0de .thejpspit .spigot .player .PitPlayerManager ;
6- import java .util .HashMap ;
7- import java .util .UUID ;
86import org .bukkit .Bukkit ;
97import org .bukkit .entity .Player ;
108import org .bukkit .event .EventHandler ;
119import org .bukkit .event .Listener ;
1210import 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+
1417import static java .lang .Math .round ;
1518
1619public 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