use of org.bukkit.entity.Player in project Denizen-For-Bukkit by DenizenScript.
the class Denizen method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String cmdName, String[] args) {
if (cmdName.equalsIgnoreCase("ex")) {
List<Object> entries = new ArrayList<Object>();
String entry = "";
for (String arg : args) {
entry = entry + arg + " ";
}
if (entry.length() < 2) {
sender.sendMessage("/ex <dCommand> (arguments)");
return true;
}
if (Settings.showExHelp()) {
if (dB.showDebug) {
sender.sendMessage(ChatColor.YELLOW + "Executing dCommand... check the console for debug output!");
} else {
sender.sendMessage(ChatColor.YELLOW + "Executing dCommand... to see debug, use /denizen debug");
}
}
entries.add(entry);
InstantQueue queue = InstantQueue.getQueue(ScriptQueue.getNextId("EXCOMMAND"));
dNPC npc = null;
if (Depends.citizens != null && Depends.citizens.getNPCSelector().getSelected(sender) != null) {
npc = new dNPC(Depends.citizens.getNPCSelector().getSelected(sender));
}
List<ScriptEntry> scriptEntries = ScriptBuilder.buildScriptEntries(entries, null, new BukkitScriptEntryData(sender instanceof Player ? new dPlayer((Player) sender) : null, npc));
queue.addEntries(scriptEntries);
queue.start();
return true;
}
String modifier = args.length > 0 ? args[0] : "";
if (!commandManager.hasCommand(cmd, modifier) && !modifier.isEmpty()) {
return suggestClosestModifier(sender, cmd.getName(), modifier);
}
Object[] methodArgs = { sender };
return commandManager.executeSafe(cmd, args, sender, methodArgs);
}
use of org.bukkit.entity.Player in project Denizen-For-Bukkit by DenizenScript.
the class Denizen method onDisable.
/*
* Unloads Denizen on shutdown of the craftbukkit server.
*/
@Override
public void onDisable() {
if (!startedSuccessful) {
return;
}
// <--[event]
// @Events
// shutdown
//
// @Warning not all plugins will be loaded and delayed scripts will be dropped.
//
// @Triggers when the server is shutting down.
//
// @Context
// None.
//
// -->
HashMap<String, dObject> context = new HashMap<String, dObject>();
OldEventManager.doEvents(Arrays.asList("shutdown"), new BukkitScriptEntryData(null, null), context);
// Disable the log interceptor... otherwise bad things on /reload
logInterceptor.standardOutput();
// Save notables
notableManager.saveNotables();
// Save scoreboards
ScoreboardHelper._saveScoreboards();
// Save entities
EntityScriptHelper.saveEntities();
// Save offline player inventories
InventoryScriptHelper._savePlayerInventories();
// Deconstruct listeners (server shutdown seems not to be triggering a PlayerQuitEvent)
for (Player player : this.getServer().getOnlinePlayers()) {
getListenerRegistry().deconstructPlayer(dPlayer.mirrorBukkitPlayer(player));
}
for (OfflinePlayer player : this.getServer().getOfflinePlayers()) {
try {
getListenerRegistry().deconstructPlayer(dPlayer.mirrorBukkitPlayer(player));
} catch (Exception e) {
if (player == null) {
dB.echoError("Tell the Denizen team ASAP about this error! ERR: OPN: " + e.toString());
} else {
dB.echoError("'" + player.getName() + "' is having trouble deconstructing! " + "You might have a corrupt player file!");
}
}
}
// Unload loaded dExternals
for (dExternal external : RuntimeCompiler.loadedExternals) {
external.unload();
}
RuntimeCompiler.loadedExternals.clear();
//Disable core members
getCommandRegistry().disableCoreMembers();
getLogger().log(Level.INFO, " v" + getDescription().getVersion() + " disabled.");
Bukkit.getServer().getScheduler().cancelTasks(this);
HandlerList.unregisterAll(this);
for (World world : getServer().getWorlds()) {
EntityScriptHelper.unlinkWorld(world);
}
saveSaves();
}
use of org.bukkit.entity.Player in project Denizen-For-Bukkit by DenizenScript.
the class DenizenCommandHandler method reload.
/*
* DENIZEN RELOAD
*/
@Command(aliases = { "denizen" }, usage = "reload (saves|notables|config|scripts|externals) (-a)", desc = "Reloads various Denizen files from disk to memory.", modifiers = { "reload" }, min = 1, max = 3, permission = "denizen.basic", flags = "a")
public void reload(CommandContext args, CommandSender sender) throws CommandException {
// Get reload type
if (args.hasFlag('a')) {
denizen.reloadConfig();
denizen.runtimeCompiler.reload();
DenizenCore.reloadScripts();
denizen.notableManager().reloadNotables();
denizen.reloadSaves();
Messaging.send(sender, "Denizen/saves.yml, Denizen/notables.yml, Denizen/config.yml, Denizen/scripts/..., and Denizen/externals/... reloaded from disk to memory.");
if (ScriptHelper.hadError()) {
Messaging.sendError(sender, "There was an error loading your scripts, check the console for details!");
}
// TODO: Properly handle player vs. npc?
ReloadScriptsScriptEvent.instance.reset();
ReloadScriptsScriptEvent.instance.all = true;
ReloadScriptsScriptEvent.instance.hadError = ScriptHelper.hadError();
ReloadScriptsScriptEvent.instance.sender = sender.getName();
ReloadScriptsScriptEvent.instance.data = new BukkitScriptEntryData(sender instanceof Player ? new dPlayer((Player) sender) : null, null);
ReloadScriptsScriptEvent.instance.fire();
return;
}
// Reload a specific item
if (args.length() > 2) {
if (args.getString(1).equalsIgnoreCase("saves")) {
denizen.reloadSaves();
Messaging.send(sender, "Denizen/saves.yml reloaded from disk to memory.");
return;
} else if (args.getString(1).equalsIgnoreCase("notables")) {
denizen.notableManager().reloadNotables();
Messaging.send(sender, "Denizen/notables.yml reloaded from disk to memory.");
return;
} else if (args.getString(1).equalsIgnoreCase("config")) {
denizen.reloadConfig();
Messaging.send(sender, "Denizen/config.yml reloaded from disk to memory.");
return;
} else if (args.getString(1).equalsIgnoreCase("scripts")) {
DenizenCore.reloadScripts();
Messaging.send(sender, "Denizen/scripts/... reloaded from disk to memory.");
if (ScriptHelper.hadError()) {
Messaging.sendError(sender, "There was an error loading your scripts, check the console for details!");
}
// TODO: Properly handle player vs. npc?
ReloadScriptsScriptEvent.instance.reset();
ReloadScriptsScriptEvent.instance.all = false;
ReloadScriptsScriptEvent.instance.hadError = ScriptHelper.hadError();
ReloadScriptsScriptEvent.instance.sender = sender.getName();
ReloadScriptsScriptEvent.instance.data = new BukkitScriptEntryData(sender instanceof Player ? new dPlayer((Player) sender) : null, null);
ReloadScriptsScriptEvent.instance.fire();
return;
} else if (args.getString(1).equalsIgnoreCase("externals")) {
denizen.runtimeCompiler.reload();
Messaging.send(sender, "Denizen/externals/... reloaded from disk to memory.");
return;
}
}
Messaging.send(sender, "");
Messaging.send(sender, "<f>Specify which parts to reload. Valid options are: SAVES, NOTABLES, CONFIG, SCRIPTS, EXTERNALS");
Messaging.send(sender, "<b>Example: /denizen reload scripts");
Messaging.send(sender, "<f>Use '-a' to reload all parts.");
Messaging.send(sender, "");
}
use of org.bukkit.entity.Player in project Denizen-For-Bukkit by DenizenScript.
the class DenizenCommandHandler method addnotable.
@Command(aliases = { "notable" }, usage = "add", desc = "Adds a new notable to your current location", modifiers = { "add", "save" }, // before that, so it needs to be high
min = 2, max = 20, permission = "denizen.notable.basic")
public void addnotable(CommandContext args, CommandSender sender) throws CommandException {
NotableManager.saveAs(new dLocation(((Player) sender).getLocation()), args.getString(1));
Messaging.send(sender, "Created new notable called " + (args.getString(1)));
}
use of org.bukkit.entity.Player in project Denizen-For-Bukkit by DenizenScript.
the class ProfileEditor_v1_9_R2 method updatePlayer.
@Override
protected void updatePlayer(Player player, final boolean isSkinChanging) {
final EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle();
final UUID uuid = player.getUniqueId();
PacketPlayOutEntityDestroy destroyPacket = new PacketPlayOutEntityDestroy(entityPlayer.getId());
for (Player p : Bukkit.getServer().getOnlinePlayers()) {
if (!p.getUniqueId().equals(uuid)) {
PacketHelper_v1_9_R2.sendPacket(p, destroyPacket);
}
}
new BukkitRunnable() {
@Override
public void run() {
PacketPlayOutPlayerInfo playerInfo = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, entityPlayer);
PacketPlayOutNamedEntitySpawn spawnPacket = new PacketPlayOutNamedEntitySpawn(entityPlayer);
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
PacketHelper_v1_9_R2.sendPacket(player, playerInfo);
if (!player.getUniqueId().equals(uuid)) {
PacketHelper_v1_9_R2.sendPacket(player, spawnPacket);
} else {
if (isSkinChanging) {
boolean isFlying = player.isFlying();
PacketHelper_v1_9_R2.sendPacket(player, new PacketPlayOutRespawn(player.getWorld().getEnvironment().getId(), entityPlayer.getWorld().getDifficulty(), entityPlayer.getWorld().worldData.getType(), entityPlayer.playerInteractManager.getGameMode()));
player.teleport(player.getLocation(), PlayerTeleportEvent.TeleportCause.PLUGIN);
player.setFlying(isFlying);
}
player.updateInventory();
}
}
}
}.runTaskLater(NMSHandler.getJavaPlugin(), 5);
}
Aggregations