Naja du könntest z.B. beim Ausführen des Commands den Spieler zu einer Liste hinzufügen, welche dann verwendet wird, damit du im AsyncPlayerChatEvent abfragen kannst, ob der Spieler(event.getPlayer()) in der Liste enthalten ist. Ist dies nicht der Fall, so geschieht einfach gar nichts, ansonsten kannst du dann die Nachricht, die gesendet wurde, dir aus dem Event holen und verwenden, um den entsprechenden Spieler zu heilen. Am Ende darfst du nicht vergessen den Spieler aus der Liste zu entfernen, da er ansonsten nicht mehr normal Chatten kann.
Es wäre eventuell auch ratsam nur den Namen oder die UUID des Spielers zu speichern, statt den ganzen Spieler.
Ein Beispiel, wie der Event-Listener aussehen könnte(Freihand getippt und nicht überprüft). Dies dient der Veranschaulichung und erfordert z.B. theoretisch noch die Behandlung von Sonderfällen(z.B: Der eingegeben ist gar nicht Online ) :
@Eventhandler
public void onPlayerChatEvent(AsyncPlayerChatEvent event){
Player player = event.getPlayer();
//Wenn der Spieler nicht in der Liste ist wird abgebrochen
// list entspricht dem Namen, den du der Liste gegeben hast
if(!list.contains(player.getUUID)){
return;
}
// Wird nur ausgeführt, wenn die obere if-Abfrage ergeben hat, //dass der Spieler in der Liste vorhanden ist
//Hier könnten dann auch weitere Abfragen kommen, wie z.B. ob //die Nachricht nur aus einem Wort besteht.
String targetName = event.getMessage();
Player target = Bukkit.getPlayer(targetName);
// Hier kommt jetzt alles hin, was du mit dem Spieler machen
// möchtes, den du heilst.
//Bsp.:
target.setHealth(20);
// ...
// Nun muss der Spieler noch aus der Liste entfernt werden und am // Ender verhindert werden, dass die eingegebene Nachricht im // Chat ausgegeben wird
list.remove(player);
event.setCancelled(true);
}