2015-10-19 19:43:46 +02:00
|
|
|
package me.totalfreedom.totalfreedommod.bridge;
|
2013-09-27 10:26:59 -04:00
|
|
|
|
2014-08-20 21:23:22 -04:00
|
|
|
import java.util.Iterator;
|
|
|
|
import java.util.Map;
|
2014-03-21 11:39:34 +01:00
|
|
|
import me.StevenLawson.BukkitTelnet.api.TelnetCommandEvent;
|
|
|
|
import me.StevenLawson.BukkitTelnet.api.TelnetPreLoginEvent;
|
2014-12-21 09:23:50 +00:00
|
|
|
import me.StevenLawson.BukkitTelnet.api.TelnetRequestDataTagsEvent;
|
2015-10-19 19:43:46 +02:00
|
|
|
import me.totalfreedom.totalfreedommod.admin.Admin;
|
|
|
|
import me.totalfreedom.totalfreedommod.permission.PlayerRank;
|
|
|
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
|
|
|
import net.pravian.aero.component.service.AbstractService;
|
2014-08-20 21:23:22 -04:00
|
|
|
import org.bukkit.entity.Player;
|
2013-09-27 10:26:59 -04:00
|
|
|
import org.bukkit.event.EventHandler;
|
|
|
|
import org.bukkit.event.EventPriority;
|
|
|
|
|
2015-10-19 19:43:46 +02:00
|
|
|
public class BukkitTelnetBridge extends AbstractService<TotalFreedomMod>
|
2013-09-27 10:26:59 -04:00
|
|
|
{
|
2015-10-19 19:43:46 +02:00
|
|
|
|
|
|
|
public BukkitTelnetBridge(TotalFreedomMod plugin)
|
|
|
|
{
|
|
|
|
super(plugin);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onStart()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onStop()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2013-09-27 10:26:59 -04:00
|
|
|
@EventHandler(priority = EventPriority.NORMAL)
|
2014-03-21 11:39:34 +01:00
|
|
|
public void onTelnetPreLogin(TelnetPreLoginEvent event)
|
2013-12-17 16:24:56 +01:00
|
|
|
{
|
|
|
|
|
2013-12-17 15:16:32 +01:00
|
|
|
final String ip = event.getIp();
|
|
|
|
if (ip == null || ip.isEmpty())
|
2013-09-27 11:01:30 -04:00
|
|
|
{
|
2013-12-17 15:16:32 +01:00
|
|
|
return;
|
2013-09-27 11:01:30 -04:00
|
|
|
}
|
2013-12-17 15:16:32 +01:00
|
|
|
|
2015-10-19 19:43:46 +02:00
|
|
|
final Admin admin = plugin.al.getEntryByIp(ip, true);
|
2013-12-17 15:16:32 +01:00
|
|
|
|
2015-10-19 19:43:46 +02:00
|
|
|
if (admin == null || !admin.isActivated() || !admin.getRank().hasConsole())
|
2013-12-17 15:16:32 +01:00
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
event.setBypassPassword(true);
|
2015-10-19 19:43:46 +02:00
|
|
|
event.setName(admin.getName());
|
2013-09-27 10:26:59 -04:00
|
|
|
}
|
2013-12-17 16:24:56 +01:00
|
|
|
|
|
|
|
@EventHandler(priority = EventPriority.NORMAL)
|
2014-03-21 11:39:34 +01:00
|
|
|
public void onTelnetCommand(TelnetCommandEvent event)
|
2013-12-17 16:24:56 +01:00
|
|
|
{
|
2015-10-19 19:43:46 +02:00
|
|
|
if (plugin.cb.isCommandBlocked(event.getCommand(), event.getSender()))
|
2013-12-17 16:24:56 +01:00
|
|
|
{
|
|
|
|
event.setCancelled(true);
|
|
|
|
}
|
|
|
|
}
|
2014-08-20 21:23:22 -04:00
|
|
|
|
|
|
|
@EventHandler(priority = EventPriority.NORMAL)
|
|
|
|
public void onTelnetRequestDataTags(TelnetRequestDataTagsEvent event)
|
|
|
|
{
|
|
|
|
final Iterator<Map.Entry<Player, Map<String, Object>>> it = event.getDataTags().entrySet().iterator();
|
|
|
|
while (it.hasNext())
|
|
|
|
{
|
|
|
|
final Map.Entry<Player, Map<String, Object>> entry = it.next();
|
|
|
|
final Player player = entry.getKey();
|
|
|
|
final Map<String, Object> playerTags = entry.getValue();
|
|
|
|
|
|
|
|
boolean isAdmin = false;
|
|
|
|
boolean isTelnetAdmin = false;
|
|
|
|
boolean isSeniorAdmin = false;
|
|
|
|
|
2015-10-19 19:43:46 +02:00
|
|
|
final Admin admin = plugin.al.getAdmin(player);
|
2014-08-20 21:23:22 -04:00
|
|
|
if (admin != null)
|
|
|
|
{
|
|
|
|
boolean isActivated = admin.isActivated();
|
|
|
|
|
|
|
|
isAdmin = isActivated;
|
2015-10-19 19:43:46 +02:00
|
|
|
isSeniorAdmin = isActivated && admin.getRank() == PlayerRank.SENIOR_ADMIN;
|
|
|
|
isTelnetAdmin = isActivated && (isSeniorAdmin || admin.getRank() == PlayerRank.TELNET_ADMIN);
|
2014-08-20 21:23:22 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
playerTags.put("tfm.admin.isAdmin", isAdmin);
|
|
|
|
playerTags.put("tfm.admin.isTelnetAdmin", isTelnetAdmin);
|
|
|
|
playerTags.put("tfm.admin.isSeniorAdmin", isSeniorAdmin);
|
|
|
|
|
2015-10-19 19:43:46 +02:00
|
|
|
playerTags.put("tfm.playerdata.getTag", plugin.pl.getPlayer(player).getTag());
|
2014-08-20 21:23:22 -04:00
|
|
|
|
2015-10-19 19:43:46 +02:00
|
|
|
playerTags.put("tfm.essentialsBridge.getNickname", plugin.esb.getNickname(player.getName()));
|
2014-08-20 21:23:22 -04:00
|
|
|
}
|
|
|
|
}
|
2013-09-27 10:26:59 -04:00
|
|
|
}
|