mirror of
https://github.com/TotalFreedomMC/TotalFreedomMod.git
synced 2024-06-25 23:40:35 +00:00
![JeromSar](/assets/img/avatar_default.png)
Refractoring Reworked /saconfig Reworked part of the command system Removed unused config sections Refractored part of the config Fixed bugs with admin list Actually allow CONSOLE to have senior perms
130 lines
2.9 KiB
Java
130 lines
2.9 KiB
Java
package me.totalfreedom.totalfreedommod.bridge;
|
|
|
|
import com.sk89q.worldedit.LocalSession;
|
|
import com.sk89q.worldedit.bukkit.BukkitPlayer;
|
|
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
|
import me.totalfreedom.totalfreedommod.FreedomService;
|
|
import me.totalfreedom.totalfreedommod.util.FLog;
|
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
public class WorldEditBridge extends FreedomService
|
|
{
|
|
public WorldEditBridge(TotalFreedomMod plugin)
|
|
{
|
|
super(plugin);
|
|
}
|
|
|
|
@Override
|
|
protected void onStart()
|
|
{
|
|
}
|
|
|
|
@Override
|
|
protected void onStop()
|
|
{
|
|
}
|
|
|
|
private WorldEditPlugin getWorldEditPlugin()
|
|
{
|
|
WorldEditPlugin worldEditPlugin = null;
|
|
|
|
try
|
|
{
|
|
Plugin we = Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
|
|
if (we != null)
|
|
{
|
|
if (we instanceof WorldEditPlugin)
|
|
{
|
|
worldEditPlugin = (WorldEditPlugin) we;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
FLog.severe(ex);
|
|
}
|
|
|
|
return worldEditPlugin;
|
|
}
|
|
|
|
private LocalSession getPlayerSession(Player player)
|
|
{
|
|
final WorldEditPlugin wep = getWorldEditPlugin();
|
|
if (wep == null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
try
|
|
{
|
|
return wep.getSession(player);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
FLog.severe(ex);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
private BukkitPlayer getBukkitPlayer(Player player)
|
|
{
|
|
final WorldEditPlugin wep = getWorldEditPlugin();
|
|
if (wep == null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
try
|
|
{
|
|
return wep.wrapPlayer(player);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
FLog.severe(ex);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void undo(Player player, int count)
|
|
{
|
|
try
|
|
{
|
|
LocalSession session = getPlayerSession(player);
|
|
if (session != null)
|
|
{
|
|
final BukkitPlayer bukkitPlayer = getBukkitPlayer(player);
|
|
if (bukkitPlayer != null)
|
|
{
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
session.undo(session.getBlockBag(bukkitPlayer), bukkitPlayer);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
FLog.severe(ex);
|
|
}
|
|
}
|
|
|
|
public void setLimit(Player player, int limit)
|
|
{
|
|
try
|
|
{
|
|
final LocalSession session = getPlayerSession(player);
|
|
if (session != null)
|
|
{
|
|
session.setBlockChangeLimit(limit);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
FLog.severe(ex);
|
|
}
|
|
}
|
|
}
|