mirror of
https://github.com/EssentialsX/Essentials.git
synced 2025-04-07 04:26:18 +02:00
Add yet another way to get a user from our users list, Don't teleport an offline player when jailed
Added playerjoin to jaillistener to teleport a player on login
This commit is contained in:
parent
7aea8a3fce
commit
81cc5b1f28
@ -217,6 +217,7 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
pm.registerEvent(Type.PLAYER_INTERACT, jailPlayerListener, Priority.Low, this);
|
||||
pm.registerEvent(Type.PLAYER_RESPAWN, jailPlayerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_TELEPORT, jailPlayerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_JOIN, jailPlayerListener, Priority.High, this);
|
||||
|
||||
if (settings.isNetherEnabled() && getServer().getWorlds().size() < 2)
|
||||
{
|
||||
|
@ -42,7 +42,10 @@ public class Jail extends BlockListener implements IConf
|
||||
|
||||
public void sendToJail(User user, String jail) throws Exception
|
||||
{
|
||||
user.getTeleport().now(getJail(jail));
|
||||
if (user.getLastActivity() > 0)
|
||||
{
|
||||
user.getTeleport().now(getJail(jail));
|
||||
}
|
||||
user.setJail(jail);
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ package com.earth2me.essentials;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
@ -62,6 +63,22 @@ public class JailPlayerListener extends PlayerListener
|
||||
}
|
||||
user.sendMessage(Util.i18n("jailMessage"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onPlayerJoin(final PlayerJoinEvent event)
|
||||
{
|
||||
User u = ess.getUser(event.getPlayer());
|
||||
if (u.isJailed())
|
||||
{
|
||||
try
|
||||
{
|
||||
ess.getJail().sendToJail(u, u.getJail());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, Util.i18n("returnPlayerToJailError"), ex);
|
||||
}
|
||||
u.sendMessage(Util.i18n("jailMessage"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ public class Commandsetjail extends EssentialsCommand
|
||||
@Override
|
||||
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
|
||||
{
|
||||
|
||||
if (args.length < 1)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
|
@ -74,7 +74,10 @@ public class Commandtogglejail extends EssentialsCommand
|
||||
p.setJailTimeout(0);
|
||||
p.sendMessage("§7You have been released");
|
||||
p.setJail(null);
|
||||
p.getTeleport().back();
|
||||
if (p.getLastActivity() > 0)
|
||||
{
|
||||
p.getTeleport().back();
|
||||
}
|
||||
sender.sendMessage("§7Player " + p.getName() + " unjailed.");
|
||||
}
|
||||
}
|
||||
|
@ -41,6 +41,15 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||
protected User getPlayer(Server server, String[] args, int pos, boolean getOffline) throws NoSuchFieldException, NotEnoughArgumentsException
|
||||
{
|
||||
if (args.length <= pos) throw new NotEnoughArgumentsException();
|
||||
User user = ess.getAllUsers().get(args[pos]);
|
||||
if (user != null)
|
||||
{
|
||||
if(user.isHidden())
|
||||
{
|
||||
throw new NoSuchFieldException(Util.i18n("playerNotFound"));
|
||||
}
|
||||
return user;
|
||||
}
|
||||
List<Player> matches = server.matchPlayer(args[pos]);
|
||||
|
||||
if (matches.size() < 1)
|
||||
|
Loading…
Reference in New Issue
Block a user