@@ -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