Add command invoker for change command events

Related #1285
This commit is contained in:
TuxCoding
2025-04-23 16:46:37 +02:00
parent 46239c9ffc
commit 1464ef2952
3 changed files with 17 additions and 5 deletions

View File

@ -71,7 +71,7 @@ public class CrackedCommand extends ToggleCommand {
plugin.getScheduler().runAsync(() -> { plugin.getScheduler().runAsync(() -> {
plugin.getCore().getStorage().save(profile); plugin.getCore().getStorage().save(profile);
plugin.getServer().getPluginManager().callEvent( plugin.getServer().getPluginManager().callEvent(
new BukkitFastLoginPremiumToggleEvent(profile, PremiumToggleReason.COMMAND_OTHER)); new BukkitFastLoginPremiumToggleEvent(sender, profile, PremiumToggleReason.COMMAND_OTHER));
}); });
} else { } else {
plugin.getCore().sendLocaleMessage("not-premium", sender); plugin.getCore().sendLocaleMessage("not-premium", sender);
@ -104,7 +104,7 @@ public class CrackedCommand extends ToggleCommand {
plugin.getScheduler().runAsync(() -> { plugin.getScheduler().runAsync(() -> {
plugin.getCore().getStorage().save(profile); plugin.getCore().getStorage().save(profile);
plugin.getServer().getPluginManager().callEvent( plugin.getServer().getPluginManager().callEvent(
new BukkitFastLoginPremiumToggleEvent(profile, PremiumToggleReason.COMMAND_OTHER)); new BukkitFastLoginPremiumToggleEvent(sender, profile, PremiumToggleReason.COMMAND_OTHER));
}); });
} }
} }

View File

@ -86,7 +86,7 @@ public class PremiumCommand extends ToggleCommand {
plugin.getScheduler().runAsync(() -> { plugin.getScheduler().runAsync(() -> {
plugin.getCore().getStorage().save(profile); plugin.getCore().getStorage().save(profile);
plugin.getServer().getPluginManager().callEvent( plugin.getServer().getPluginManager().callEvent(
new BukkitFastLoginPremiumToggleEvent(profile, PremiumToggleReason.COMMAND_SELF)); new BukkitFastLoginPremiumToggleEvent(sender, profile, PremiumToggleReason.COMMAND_SELF));
}); });
plugin.getCore().sendLocaleMessage("add-premium", sender); plugin.getCore().sendLocaleMessage("add-premium", sender);
@ -117,7 +117,7 @@ public class PremiumCommand extends ToggleCommand {
plugin.getScheduler().runAsync(() -> { plugin.getScheduler().runAsync(() -> {
plugin.getCore().getStorage().save(profile); plugin.getCore().getStorage().save(profile);
plugin.getServer().getPluginManager().callEvent( plugin.getServer().getPluginManager().callEvent(
new BukkitFastLoginPremiumToggleEvent(profile, PremiumToggleReason.COMMAND_OTHER)); new BukkitFastLoginPremiumToggleEvent(sender, profile, PremiumToggleReason.COMMAND_OTHER));
}); });
plugin.getCore().sendLocaleMessage("add-premium-other", sender); plugin.getCore().sendLocaleMessage("add-premium-other", sender);

View File

@ -27,6 +27,7 @@ package com.github.games647.fastlogin.bukkit.event;
import com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent; import com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent;
import com.github.games647.fastlogin.core.storage.StoredProfile; import com.github.games647.fastlogin.core.storage.StoredProfile;
import org.bukkit.command.CommandSender;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -34,11 +35,15 @@ import org.jetbrains.annotations.NotNull;
public class BukkitFastLoginPremiumToggleEvent extends Event implements FastLoginPremiumToggleEvent { public class BukkitFastLoginPremiumToggleEvent extends Event implements FastLoginPremiumToggleEvent {
private static final HandlerList HANDLERS = new HandlerList(); private static final HandlerList HANDLERS = new HandlerList();
private final CommandSender invoker;
private final StoredProfile profile; private final StoredProfile profile;
private final PremiumToggleReason reason; private final PremiumToggleReason reason;
public BukkitFastLoginPremiumToggleEvent(StoredProfile profile, PremiumToggleReason reason) { public BukkitFastLoginPremiumToggleEvent(CommandSender invoker, StoredProfile profile, PremiumToggleReason reason) {
super(true); super(true);
this.invoker = invoker;
this.profile = profile; this.profile = profile;
this.reason = reason; this.reason = reason;
} }
@ -48,6 +53,13 @@ public class BukkitFastLoginPremiumToggleEvent extends Event implements FastLogi
return profile; return profile;
} }
/**
* @return who triggered this change. This could be a Player for itself or others (Admin) or the console.
*/
public CommandSender getInvoker() {
return invoker;
}
@Override @Override
public PremiumToggleReason getReason() { public PremiumToggleReason getReason() {
return reason; return reason;