mirror of
https://github.com/sekwah41/Advanced-Portals.git
synced 2024-09-27 14:52:59 +02:00
Added leavedesti
This commit is contained in:
parent
d9928a60bb
commit
36a75a2bd6
@ -257,6 +257,9 @@ public class AdvancedPortalsCommand implements CommandExecutor, TabCompleter {
|
|||||||
} else if (startsWithPortalArg("cooldowndelay:", args[i])) {
|
} else if (startsWithPortalArg("cooldowndelay:", args[i])) {
|
||||||
String cooldownDelay = parseArgVariable(args, i, "cooldowndelay:");
|
String cooldownDelay = parseArgVariable(args, i, "cooldowndelay:");
|
||||||
extraData.add(new PortalArg("cooldowndelay", cooldownDelay));
|
extraData.add(new PortalArg("cooldowndelay", cooldownDelay));
|
||||||
|
} else if (startsWithPortalArg("leavedesti:", args[i])) {
|
||||||
|
String leaveDesti = parseArgVariable(args, i, "leavedesti:");
|
||||||
|
extraData.add(new PortalArg("leavedesti", leaveDesti));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!hasName) {
|
if (!hasName) {
|
||||||
@ -373,7 +376,7 @@ public class AdvancedPortalsCommand implements CommandExecutor, TabCompleter {
|
|||||||
break;
|
break;
|
||||||
case "variables":
|
case "variables":
|
||||||
sender.sendMessage(PluginMessages.customPrefix
|
sender.sendMessage(PluginMessages.customPrefix
|
||||||
+ " \u00A77Variables \u00A7c: \u00A7aname, triggerBlock, desti, destination, bungee, permission, command, cooldowndelay");
|
+ " \u00A77Variables \u00A7c: \u00A7aname, triggerBlock, desti, destination, bungee, permission, command, cooldowndelay, leavedesti");
|
||||||
sender.sendMessage("");
|
sender.sendMessage("");
|
||||||
sender.sendMessage("\u00A7aExample command: \u00A7e/portal create name:test triggerId:portal");
|
sender.sendMessage("\u00A7aExample command: \u00A7e/portal create name:test triggerId:portal");
|
||||||
break;
|
break;
|
||||||
@ -782,6 +785,7 @@ public class AdvancedPortalsCommand implements CommandExecutor, TabCompleter {
|
|||||||
boolean needsPermission = false;
|
boolean needsPermission = false;
|
||||||
boolean hasCommand = false;
|
boolean hasCommand = false;
|
||||||
boolean hasCooldownDelay = false;
|
boolean hasCooldownDelay = false;
|
||||||
|
boolean hasLeaveDesti = false;
|
||||||
|
|
||||||
// TODO change auto complete when quotes are opened and closed. Such as
|
// TODO change auto complete when quotes are opened and closed. Such as
|
||||||
// autocomplete @Player and stuff when specifying commands
|
// autocomplete @Player and stuff when specifying commands
|
||||||
@ -847,6 +851,9 @@ public class AdvancedPortalsCommand implements CommandExecutor, TabCompleter {
|
|||||||
if (!hasCooldownDelay) {
|
if (!hasCooldownDelay) {
|
||||||
autoComplete.add("cooldowndelay:");
|
autoComplete.add("cooldowndelay:");
|
||||||
}
|
}
|
||||||
|
if (!hasLeaveDesti) {
|
||||||
|
autoComplete.add("leavedesti:");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (args.length == 2 && args[0].equalsIgnoreCase("warp")) {
|
if (args.length == 2 && args[0].equalsIgnoreCase("warp")) {
|
||||||
|
@ -104,7 +104,11 @@ public class Destination {
|
|||||||
return warp(player, name, false);
|
return warp(player, name, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean warp(Player player, String name, boolean hideActionbar) {
|
public static boolean warp(Player player, String name, boolean hideActionBar) {
|
||||||
|
return warp(player, name, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean warp(Player player, String name, boolean hideActionbar, boolean noEffects) {
|
||||||
ConfigAccessor config = new ConfigAccessor(plugin, "destinations.yml");
|
ConfigAccessor config = new ConfigAccessor(plugin, "destinations.yml");
|
||||||
if (config.getConfig().getString(name + ".world") != null) {
|
if (config.getConfig().getString(name + ".world") != null) {
|
||||||
Location loc = player.getLocation();
|
Location loc = player.getLocation();
|
||||||
@ -118,8 +122,10 @@ public class Destination {
|
|||||||
loc.setPitch((float) config.getConfig().getDouble(name + ".pos.pitch"));
|
loc.setPitch((float) config.getConfig().getDouble(name + ".pos.pitch"));
|
||||||
loc.setYaw((float) config.getConfig().getDouble(name + ".pos.yaw"));
|
loc.setYaw((float) config.getConfig().getDouble(name + ".pos.yaw"));
|
||||||
|
|
||||||
WarpEffects.activateParticles(player);
|
if(!noEffects) {
|
||||||
WarpEffects.activateSound(player);
|
WarpEffects.activateParticles(player);
|
||||||
|
WarpEffects.activateSound(player);
|
||||||
|
}
|
||||||
Chunk c = loc.getChunk();
|
Chunk c = loc.getChunk();
|
||||||
Entity riding = player.getVehicle();
|
Entity riding = player.getVehicle();
|
||||||
if (!c.isLoaded()) c.load();
|
if (!c.isLoaded()) c.load();
|
||||||
@ -134,8 +140,10 @@ public class Destination {
|
|||||||
} else {
|
} else {
|
||||||
player.teleport(loc, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
player.teleport(loc, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||||
}
|
}
|
||||||
WarpEffects.activateParticles(player);
|
if(!noEffects) {
|
||||||
WarpEffects.activateSound(player);
|
WarpEffects.activateParticles(player);
|
||||||
|
WarpEffects.activateSound(player);
|
||||||
|
}
|
||||||
|
|
||||||
if (PORTAL_MESSAGE_DISPLAY == 1) {
|
if (PORTAL_MESSAGE_DISPLAY == 1) {
|
||||||
player.sendMessage("");
|
player.sendMessage("");
|
||||||
|
@ -80,15 +80,18 @@ public class Listeners implements Listener {
|
|||||||
Portal.joinCooldown.put(event.getPlayer().getName(), System.currentTimeMillis());
|
Portal.joinCooldown.put(event.getPlayer().getName(), System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onLeaveEvent(PlayerQuitEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
if(player.hasMetadata("leaveDesti")) {
|
||||||
|
Destination.warp(player, player.getMetadata("leaveDesti").get(0).asString(),
|
||||||
|
false, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onJoinEvent(PlayerJoinEvent event) {
|
public void onJoinEvent(PlayerJoinEvent event) {
|
||||||
Portal.joinCooldown.put(event.getPlayer().getName(), System.currentTimeMillis());
|
Portal.joinCooldown.put(event.getPlayer().getName(), System.currentTimeMillis());
|
||||||
/*
|
|
||||||
* if (plugin.PlayerDestiMap.containsKey(event.getPlayer())) { String desti =
|
|
||||||
* plugin.PlayerDestiMap.get(event.getPlayer());
|
|
||||||
*
|
|
||||||
* Destination.warp(event.getPlayer(), desti); }
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
@ -36,7 +36,7 @@ public class PluginMessageReceiver implements PluginMessageListener {
|
|||||||
|
|
||||||
if (msgPlayer != null) {
|
if (msgPlayer != null) {
|
||||||
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin,
|
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin,
|
||||||
() -> Destination.warp(msgPlayer, targetDestination),
|
() -> Destination.warp(msgPlayer, targetDestination, false, true),
|
||||||
20L
|
20L
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -8,9 +8,11 @@ import com.sekwah.advancedportals.bukkit.PluginMessages;
|
|||||||
import com.sekwah.advancedportals.bukkit.api.portaldata.PortalArg;
|
import com.sekwah.advancedportals.bukkit.api.portaldata.PortalArg;
|
||||||
import com.sekwah.advancedportals.bukkit.destinations.Destination;
|
import com.sekwah.advancedportals.bukkit.destinations.Destination;
|
||||||
import com.sekwah.advancedportals.bukkit.effects.WarpEffects;
|
import com.sekwah.advancedportals.bukkit.effects.WarpEffects;
|
||||||
|
import com.sekwah.advancedportals.bukkit.listeners.Listeners;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
import org.bukkit.permissions.PermissionAttachment;
|
import org.bukkit.permissions.PermissionAttachment;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
@ -441,7 +443,7 @@ public class Portal {
|
|||||||
int portalCooldown = 0; // default cooldowndelay when cooldowndelay is not specified
|
int portalCooldown = 0; // default cooldowndelay when cooldowndelay is not specified
|
||||||
try {
|
try {
|
||||||
portalCooldown = Integer.parseInt(portal.getArg("cooldowndelay"));
|
portalCooldown = Integer.parseInt(portal.getArg("cooldowndelay"));
|
||||||
} catch (Exception e) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
if (diff < portalCooldown) {
|
if (diff < portalCooldown) {
|
||||||
int time = (portalCooldown - diff);
|
int time = (portalCooldown - diff);
|
||||||
@ -473,6 +475,13 @@ public class Portal {
|
|||||||
+ "\u00A7a.");
|
+ "\u00A7a.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(portal.hasArg("leavedesti")) {
|
||||||
|
player.setMetadata("leaveDesti", new FixedMetadataValue(plugin, portal.getArg("leavedesti")));
|
||||||
|
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
|
||||||
|
player.removeMetadata("leaveDesti", plugin);
|
||||||
|
}, 20 * 10);
|
||||||
|
}
|
||||||
|
|
||||||
if (portal.getDestiation() != null) {
|
if (portal.getDestiation() != null) {
|
||||||
ByteArrayDataOutput outForList = ByteStreams.newDataOutput();
|
ByteArrayDataOutput outForList = ByteStreams.newDataOutput();
|
||||||
outForList.writeUTF("PortalEnter");
|
outForList.writeUTF("PortalEnter");
|
||||||
@ -487,6 +496,8 @@ public class Portal {
|
|||||||
outForSend.writeUTF("Connect");
|
outForSend.writeUTF("Connect");
|
||||||
outForSend.writeUTF(bungeeServer);
|
outForSend.writeUTF(bungeeServer);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
portal.inPortal.add(player.getUniqueId());
|
portal.inPortal.add(player.getUniqueId());
|
||||||
player.sendPluginMessage(plugin, "BungeeCord", outForSend.toByteArray());
|
player.sendPluginMessage(plugin, "BungeeCord", outForSend.toByteArray());
|
||||||
// Down to bungee to sort out the teleporting but yea theoretically they should
|
// Down to bungee to sort out the teleporting but yea theoretically they should
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
main: com.sekwah.advancedportals.bungee.AdvancedPortalsPlugin
|
main: com.sekwah.advancedportals.bungee.AdvancedPortalsPlugin
|
||||||
name: AdvancedPortals
|
name: AdvancedPortals
|
||||||
version: 0.3.0
|
version: 0.4.0
|
||||||
author: sekwah41
|
author: sekwah41
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
main: com.sekwah.advancedportals.bukkit.AdvancedPortalsPlugin
|
main: com.sekwah.advancedportals.bukkit.AdvancedPortalsPlugin
|
||||||
name: AdvancedPortals
|
name: AdvancedPortals
|
||||||
version: 0.3.0
|
version: 0.4.0
|
||||||
author: sekwah41
|
author: sekwah41
|
||||||
description: An advanced portals plugin for bukkit.
|
description: An advanced portals plugin for bukkit.
|
||||||
api-version: 1.13
|
api-version: 1.13
|
||||||
|
Loading…
Reference in New Issue
Block a user