mirror of
https://github.com/TuxCoding/FastLogin.git
synced 2025-07-30 10:47:33 +02:00
Fix Spigot console command invocation sends result to ingame players
This commit is contained in:
@ -6,6 +6,7 @@
|
|||||||
* Finally set a value to the API column
|
* Finally set a value to the API column
|
||||||
* No duplicate session login
|
* No duplicate session login
|
||||||
* Fix timestamp parsing in newer versions of SQLite
|
* Fix timestamp parsing in newer versions of SQLite
|
||||||
|
* Fix Spigot console command invocation sends result to ingame players
|
||||||
|
|
||||||
######1.9
|
######1.9
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin<Comman
|
|||||||
|
|
||||||
public void sendBungeeActivateMessage(CommandSender sender, String target, boolean activate) {
|
public void sendBungeeActivateMessage(CommandSender sender, String target, boolean activate) {
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
notifiyBungeeCord((Player) sender, target, activate);
|
notifiyBungeeCord((Player) sender, target, activate, sender instanceof Player);
|
||||||
} else {
|
} else {
|
||||||
Player firstPlayer = Iterables.getFirst(getServer().getOnlinePlayers(), null);
|
Player firstPlayer = Iterables.getFirst(getServer().getOnlinePlayers(), null);
|
||||||
if (firstPlayer == null) {
|
if (firstPlayer == null) {
|
||||||
@ -140,7 +140,7 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin<Comman
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
notifiyBungeeCord(firstPlayer, target, activate);
|
notifiyBungeeCord(firstPlayer, target, activate, sender instanceof Player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin<Comman
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notifiyBungeeCord(Player sender, String target, boolean activate) {
|
private void notifiyBungeeCord(Player sender, String target, boolean activate, boolean isPlayer) {
|
||||||
ByteArrayDataOutput dataOutput = ByteStreams.newDataOutput();
|
ByteArrayDataOutput dataOutput = ByteStreams.newDataOutput();
|
||||||
if (activate) {
|
if (activate) {
|
||||||
dataOutput.writeUTF("ON");
|
dataOutput.writeUTF("ON");
|
||||||
@ -192,6 +192,7 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin<Comman
|
|||||||
}
|
}
|
||||||
|
|
||||||
dataOutput.writeUTF(target);
|
dataOutput.writeUTF(target);
|
||||||
|
dataOutput.writeBoolean(isPlayer);
|
||||||
sender.sendPluginMessage(this, getName(), dataOutput.toByteArray());
|
sender.sendPluginMessage(this, getName(), dataOutput.toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,10 +4,12 @@ import com.github.games647.fastlogin.bungee.BungeeLoginSession;
|
|||||||
import com.github.games647.fastlogin.bungee.FastLoginBungee;
|
import com.github.games647.fastlogin.bungee.FastLoginBungee;
|
||||||
import com.github.games647.fastlogin.bungee.tasks.AsyncToggleMessage;
|
import com.github.games647.fastlogin.bungee.tasks.AsyncToggleMessage;
|
||||||
import com.github.games647.fastlogin.core.PlayerProfile;
|
import com.github.games647.fastlogin.core.PlayerProfile;
|
||||||
|
import com.github.games647.fastlogin.core.shared.FastLoginCore;
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
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;
|
||||||
@ -47,30 +49,34 @@ public class PluginMessageListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void readMessage(ProxiedPlayer forPlayer, byte[] data) {
|
private void readMessage(ProxiedPlayer forPlayer, byte[] data) {
|
||||||
|
FastLoginCore<ProxiedPlayer, CommandSender, FastLoginBungee> core = plugin.getCore();
|
||||||
|
|
||||||
ByteArrayDataInput dataInput = ByteStreams.newDataInput(data);
|
ByteArrayDataInput dataInput = ByteStreams.newDataInput(data);
|
||||||
String subchannel = dataInput.readUTF();
|
String subchannel = dataInput.readUTF();
|
||||||
if ("ON".equals(subchannel)) {
|
if ("SUCCESS".equals(subchannel)) {
|
||||||
|
onSuccessMessage(forPlayer);
|
||||||
|
} else if ("ON".equals(subchannel)) {
|
||||||
String playerName = dataInput.readUTF();
|
String playerName = dataInput.readUTF();
|
||||||
|
boolean isPlayerSender = dataInput.readBoolean();
|
||||||
|
|
||||||
if (playerName.equals(forPlayer.getName()) && plugin.getConfig().getBoolean("premium-warning")
|
if (playerName.equals(forPlayer.getName()) && plugin.getConfig().getBoolean("premium-warning")
|
||||||
&& !plugin.getCore().getPendingConfirms().contains(forPlayer.getUniqueId())) {
|
&& !core.getPendingConfirms().contains(forPlayer.getUniqueId())) {
|
||||||
String message = plugin.getCore().getMessage("premium-warning");
|
String message = core.getMessage("premium-warning");
|
||||||
forPlayer.sendMessage(TextComponent.fromLegacyText(message));
|
forPlayer.sendMessage(TextComponent.fromLegacyText(message));
|
||||||
plugin.getCore().getPendingConfirms().add(forPlayer.getUniqueId());
|
core.getPendingConfirms().add(forPlayer.getUniqueId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin.getCore().getPendingConfirms().remove(forPlayer.getUniqueId());
|
core.getPendingConfirms().remove(forPlayer.getUniqueId());
|
||||||
AsyncToggleMessage task = new AsyncToggleMessage(plugin.getCore(), forPlayer, playerName, true);
|
AsyncToggleMessage task = new AsyncToggleMessage(core, forPlayer, playerName, true, isPlayerSender);
|
||||||
ProxyServer.getInstance().getScheduler().runAsync(plugin, task);
|
ProxyServer.getInstance().getScheduler().runAsync(plugin, task);
|
||||||
} else if ("OFF".equals(subchannel)) {
|
} else if ("OFF".equals(subchannel)) {
|
||||||
String playerName = dataInput.readUTF();
|
String playerName = dataInput.readUTF();
|
||||||
|
boolean isPlayerSender = dataInput.readBoolean();
|
||||||
|
|
||||||
AsyncToggleMessage task = new AsyncToggleMessage(plugin.getCore(), forPlayer, playerName, false);
|
AsyncToggleMessage task = new AsyncToggleMessage(core, forPlayer, playerName, false, isPlayerSender);
|
||||||
ProxyServer.getInstance().getScheduler().runAsync(plugin, task);
|
ProxyServer.getInstance().getScheduler().runAsync(plugin, task);
|
||||||
} else if ("SUCCESS".equals(subchannel)) {
|
}
|
||||||
onSuccessMessage(forPlayer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onSuccessMessage(ProxiedPlayer forPlayer) {
|
private void onSuccessMessage(ProxiedPlayer forPlayer) {
|
||||||
|
@ -3,24 +3,27 @@ package com.github.games647.fastlogin.bungee.tasks;
|
|||||||
import com.github.games647.fastlogin.bungee.FastLoginBungee;
|
import com.github.games647.fastlogin.bungee.FastLoginBungee;
|
||||||
import com.github.games647.fastlogin.core.PlayerProfile;
|
import com.github.games647.fastlogin.core.PlayerProfile;
|
||||||
import com.github.games647.fastlogin.core.shared.FastLoginCore;
|
import com.github.games647.fastlogin.core.shared.FastLoginCore;
|
||||||
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.chat.TextComponent;
|
import net.md_5.bungee.api.chat.TextComponent;
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
public class AsyncToggleMessage implements Runnable {
|
public class AsyncToggleMessage implements Runnable {
|
||||||
|
|
||||||
private final FastLoginCore<ProxiedPlayer, CommandSender, FastLoginBungee> core;
|
private final FastLoginCore<ProxiedPlayer, CommandSender, FastLoginBungee> core;
|
||||||
private final ProxiedPlayer fromPlayer;
|
private final ProxiedPlayer sender;
|
||||||
private final String targetPlayer;
|
private final String targetPlayer;
|
||||||
private final boolean toPremium;
|
private final boolean toPremium;
|
||||||
|
private final boolean isPlayerSender;
|
||||||
|
|
||||||
public AsyncToggleMessage(FastLoginCore<ProxiedPlayer, CommandSender, FastLoginBungee> core
|
public AsyncToggleMessage(FastLoginCore<ProxiedPlayer, CommandSender, FastLoginBungee> core,
|
||||||
, ProxiedPlayer fromPlayer, String targetPlayer, boolean toPremium) {
|
ProxiedPlayer sender, String playerName, boolean toPremium, boolean playerSender) {
|
||||||
this.core = core;
|
this.core = core;
|
||||||
this.fromPlayer = fromPlayer;
|
this.sender = sender;
|
||||||
this.targetPlayer = targetPlayer;
|
this.targetPlayer = playerName;
|
||||||
this.toPremium = toPremium;
|
this.toPremium = toPremium;
|
||||||
|
this.isPlayerSender = playerSender;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -36,25 +39,35 @@ public class AsyncToggleMessage implements Runnable {
|
|||||||
PlayerProfile playerProfile = core.getStorage().loadProfile(targetPlayer);
|
PlayerProfile playerProfile = core.getStorage().loadProfile(targetPlayer);
|
||||||
//existing player is already cracked
|
//existing player is already cracked
|
||||||
if (playerProfile.getUserId() != -1 && !playerProfile.isPremium()) {
|
if (playerProfile.getUserId() != -1 && !playerProfile.isPremium()) {
|
||||||
fromPlayer.sendMessage(TextComponent.fromLegacyText(core.getMessage("not-premium")));
|
sendMessage("not-premium");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerProfile.setPremium(false);
|
playerProfile.setPremium(false);
|
||||||
playerProfile.setUuid(null);
|
playerProfile.setUuid(null);
|
||||||
core.getStorage().save(playerProfile);
|
core.getStorage().save(playerProfile);
|
||||||
fromPlayer.sendMessage(TextComponent.fromLegacyText(core.getMessage("remove-premium")));
|
sendMessage("remove-premium");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void activatePremium() {
|
private void activatePremium() {
|
||||||
PlayerProfile playerProfile = core.getStorage().loadProfile(targetPlayer);
|
PlayerProfile playerProfile = core.getStorage().loadProfile(targetPlayer);
|
||||||
if (playerProfile.isPremium()) {
|
if (playerProfile.isPremium()) {
|
||||||
fromPlayer.sendMessage(TextComponent.fromLegacyText(core.getMessage("already-exists")));
|
sendMessage("already-exists");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerProfile.setPremium(true);
|
playerProfile.setPremium(true);
|
||||||
core.getStorage().save(playerProfile);
|
core.getStorage().save(playerProfile);
|
||||||
fromPlayer.sendMessage(TextComponent.fromLegacyText(core.getMessage("add-premium")));
|
sendMessage("add-premium");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendMessage(String localeId) {
|
||||||
|
String message = core.getMessage(localeId);
|
||||||
|
if (isPlayerSender) {
|
||||||
|
sender.sendMessage(TextComponent.fromLegacyText(message));
|
||||||
|
} else {
|
||||||
|
CommandSender console = ProxyServer.getInstance().getConsole();
|
||||||
|
console.sendMessage(TextComponent.fromLegacyText(message));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user