forked from TuxCoding/FastLogin
Implement FastLoginPremiumToggleEvent
This commit is contained in:
@ -1,11 +1,15 @@
|
|||||||
package com.github.games647.fastlogin.bukkit.command;
|
package com.github.games647.fastlogin.bukkit.command;
|
||||||
|
|
||||||
import com.github.games647.fastlogin.bukkit.FastLoginBukkit;
|
import com.github.games647.fastlogin.bukkit.FastLoginBukkit;
|
||||||
|
import com.github.games647.fastlogin.bukkit.event.BukkitFastLoginPremiumToggleEvent;
|
||||||
import com.github.games647.fastlogin.core.StoredProfile;
|
import com.github.games647.fastlogin.core.StoredProfile;
|
||||||
|
|
||||||
|
import com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
import static com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent.*;
|
||||||
|
|
||||||
public class CrackedCommand extends ToggleCommand {
|
public class CrackedCommand extends ToggleCommand {
|
||||||
|
|
||||||
public CrackedCommand(FastLoginBukkit plugin) {
|
public CrackedCommand(FastLoginBukkit plugin) {
|
||||||
@ -45,6 +49,8 @@ public class CrackedCommand extends ToggleCommand {
|
|||||||
profile.setId(null);
|
profile.setId(null);
|
||||||
plugin.getScheduler().runAsync(() -> {
|
plugin.getScheduler().runAsync(() -> {
|
||||||
plugin.getCore().getStorage().save(profile);
|
plugin.getCore().getStorage().save(profile);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(
|
||||||
|
new BukkitFastLoginPremiumToggleEvent(profile, PremiumToggleReason.COMMAND_OTHER));
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
plugin.getCore().sendLocaleMessage("not-premium", sender);
|
plugin.getCore().sendLocaleMessage("not-premium", sender);
|
||||||
@ -77,6 +83,8 @@ public class CrackedCommand extends ToggleCommand {
|
|||||||
profile.setPremium(false);
|
profile.setPremium(false);
|
||||||
plugin.getScheduler().runAsync(() -> {
|
plugin.getScheduler().runAsync(() -> {
|
||||||
plugin.getCore().getStorage().save(profile);
|
plugin.getCore().getStorage().save(profile);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(
|
||||||
|
new BukkitFastLoginPremiumToggleEvent(profile, PremiumToggleReason.COMMAND_OTHER));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
package com.github.games647.fastlogin.bukkit.command;
|
package com.github.games647.fastlogin.bukkit.command;
|
||||||
|
|
||||||
import com.github.games647.fastlogin.bukkit.FastLoginBukkit;
|
import com.github.games647.fastlogin.bukkit.FastLoginBukkit;
|
||||||
|
import com.github.games647.fastlogin.bukkit.event.BukkitFastLoginPremiumToggleEvent;
|
||||||
import com.github.games647.fastlogin.core.StoredProfile;
|
import com.github.games647.fastlogin.core.StoredProfile;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent;
|
||||||
|
import com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent.PremiumToggleReason;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -57,6 +60,8 @@ public class PremiumCommand extends ToggleCommand {
|
|||||||
profile.setPremium(true);
|
profile.setPremium(true);
|
||||||
plugin.getScheduler().runAsync(() -> {
|
plugin.getScheduler().runAsync(() -> {
|
||||||
plugin.getCore().getStorage().save(profile);
|
plugin.getCore().getStorage().save(profile);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(
|
||||||
|
new BukkitFastLoginPremiumToggleEvent(profile, PremiumToggleReason.COMMAND_SELF));
|
||||||
});
|
});
|
||||||
|
|
||||||
plugin.getCore().sendLocaleMessage("add-premium", sender);
|
plugin.getCore().sendLocaleMessage("add-premium", sender);
|
||||||
@ -86,6 +91,8 @@ public class PremiumCommand extends ToggleCommand {
|
|||||||
profile.setPremium(true);
|
profile.setPremium(true);
|
||||||
plugin.getScheduler().runAsync(() -> {
|
plugin.getScheduler().runAsync(() -> {
|
||||||
plugin.getCore().getStorage().save(profile);
|
plugin.getCore().getStorage().save(profile);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(
|
||||||
|
new BukkitFastLoginPremiumToggleEvent(profile, PremiumToggleReason.COMMAND_OTHER));
|
||||||
});
|
});
|
||||||
|
|
||||||
plugin.getCore().sendLocaleMessage("add-premium-other", sender);
|
plugin.getCore().sendLocaleMessage("add-premium-other", sender);
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.github.games647.fastlogin.bukkit.event;
|
||||||
|
|
||||||
|
import com.github.games647.fastlogin.core.StoredProfile;
|
||||||
|
import com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
public class BukkitFastLoginPremiumToggleEvent extends Event implements FastLoginPremiumToggleEvent {
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final StoredProfile profile;
|
||||||
|
private final PremiumToggleReason reason;
|
||||||
|
|
||||||
|
public BukkitFastLoginPremiumToggleEvent(StoredProfile profile, PremiumToggleReason reason) {
|
||||||
|
super(true);
|
||||||
|
this.profile = profile;
|
||||||
|
this.reason = reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StoredProfile getProfile() {
|
||||||
|
return profile;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PremiumToggleReason getReason() {
|
||||||
|
return reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package com.github.games647.fastlogin.bungee.event;
|
||||||
|
|
||||||
|
import com.github.games647.fastlogin.core.StoredProfile;
|
||||||
|
import com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent;
|
||||||
|
import net.md_5.bungee.api.plugin.Event;
|
||||||
|
|
||||||
|
public class BungeeFastLoginPremiumToggleEvent extends Event implements FastLoginPremiumToggleEvent {
|
||||||
|
|
||||||
|
private final StoredProfile profile;
|
||||||
|
private final PremiumToggleReason reason;
|
||||||
|
|
||||||
|
public BungeeFastLoginPremiumToggleEvent(StoredProfile profile, PremiumToggleReason reason) {
|
||||||
|
this.profile = profile;
|
||||||
|
this.reason = reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StoredProfile getProfile() {
|
||||||
|
return profile;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FastLoginPremiumToggleEvent.PremiumToggleReason getReason() {
|
||||||
|
return reason;
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,12 @@
|
|||||||
package com.github.games647.fastlogin.bungee.task;
|
package com.github.games647.fastlogin.bungee.task;
|
||||||
|
|
||||||
import com.github.games647.fastlogin.bungee.FastLoginBungee;
|
import com.github.games647.fastlogin.bungee.FastLoginBungee;
|
||||||
|
import com.github.games647.fastlogin.bungee.event.BungeeFastLoginPremiumToggleEvent;
|
||||||
import com.github.games647.fastlogin.core.StoredProfile;
|
import com.github.games647.fastlogin.core.StoredProfile;
|
||||||
import com.github.games647.fastlogin.core.shared.FastLoginCore;
|
import com.github.games647.fastlogin.core.shared.FastLoginCore;
|
||||||
|
|
||||||
|
import com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent;
|
||||||
|
import com.github.games647.fastlogin.core.shared.event.FastLoginPremiumToggleEvent.PremiumToggleReason;
|
||||||
import net.md_5.bungee.api.CommandSender;
|
import net.md_5.bungee.api.CommandSender;
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
import net.md_5.bungee.api.chat.TextComponent;
|
import net.md_5.bungee.api.chat.TextComponent;
|
||||||
@ -46,6 +49,10 @@ public class AsyncToggleMessage implements Runnable {
|
|||||||
playerProfile.setPremium(false);
|
playerProfile.setPremium(false);
|
||||||
playerProfile.setId(null);
|
playerProfile.setId(null);
|
||||||
core.getStorage().save(playerProfile);
|
core.getStorage().save(playerProfile);
|
||||||
|
PremiumToggleReason reason = (!isPlayerSender || !sender.getName().equalsIgnoreCase(playerProfile.getName())) ?
|
||||||
|
PremiumToggleReason.COMMAND_OTHER : PremiumToggleReason.COMMAND_SELF;
|
||||||
|
core.getPlugin().getProxy().getPluginManager().callEvent(
|
||||||
|
new BungeeFastLoginPremiumToggleEvent(playerProfile, reason));
|
||||||
sendMessage("remove-premium");
|
sendMessage("remove-premium");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,6 +65,10 @@ public class AsyncToggleMessage implements Runnable {
|
|||||||
|
|
||||||
playerProfile.setPremium(true);
|
playerProfile.setPremium(true);
|
||||||
core.getStorage().save(playerProfile);
|
core.getStorage().save(playerProfile);
|
||||||
|
PremiumToggleReason reason = (!isPlayerSender || !sender.getName().equalsIgnoreCase(playerProfile.getName())) ?
|
||||||
|
PremiumToggleReason.COMMAND_OTHER : PremiumToggleReason.COMMAND_SELF;
|
||||||
|
core.getPlugin().getProxy().getPluginManager().callEvent(
|
||||||
|
new BungeeFastLoginPremiumToggleEvent(playerProfile, reason));
|
||||||
sendMessage("add-premium");
|
sendMessage("add-premium");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.github.games647.fastlogin.core.shared.event;
|
||||||
|
|
||||||
|
import com.github.games647.fastlogin.core.StoredProfile;
|
||||||
|
|
||||||
|
public interface FastLoginPremiumToggleEvent {
|
||||||
|
|
||||||
|
StoredProfile getProfile();
|
||||||
|
PremiumToggleReason getReason();
|
||||||
|
|
||||||
|
enum PremiumToggleReason {
|
||||||
|
COMMAND_SELF,
|
||||||
|
COMMAND_OTHER
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user