Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
ec9e11eb3a
10
README.md
10
README.md
|
@ -1,7 +1,13 @@
|
|||
Advanced Portals
|
||||
================
|
||||
|
||||
An advanced portals plugin for bukkit made by sekwah41 designed to have a wide range of features which are easy to use. It adds a bunch of commands to create and edit portals and destinations. This plugin not only enable normal teleportation but also cross server teleportation for networks using bungee.
|
||||
|
||||
<p>An advanced portals plugin for bukkit made by sekwah41 designed to have a wide range of features which are easy to use. It adds a bunch of commands to create and edit portals and destinations. This plugin not only enable normal teleportation but also cross server teleportation for networks using bungee.</p>
|
||||
|
||||
<a href="https://github.com/sekwah41/Advanced-Portals/wiki/Commands">List Of Commands</a>
|
||||
|
||||
<a href="http://dev.bukkit.org/bukkit-plugins/advanced-portals/">Bukkit Page</a>
|
||||
<br>
|
||||
<br>
|
||||
<p>Usage Data</p>
|
||||
|
||||
<img src="http://i.mcstats.org/AdvancedPortals/Global+Statistics.borderless.png" alt="Global Plugin Stats" title="Global Plugin Stats">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.sekwah.advancedportals;
|
||||
|
||||
import com.sekwah.advancedportals.DataCollector.DataCollector;
|
||||
import com.sekwah.advancedportals.compat.NMS;
|
||||
import com.sekwah.advancedportals.compat.bukkit.NMS;
|
||||
import com.sekwah.advancedportals.destinations.Destination;
|
||||
import com.sekwah.advancedportals.metrics.Metrics;
|
||||
import com.sekwah.advancedportals.portals.Portal;
|
||||
|
@ -27,14 +27,14 @@ public class AdvancedPortalsPlugin extends JavaPlugin {
|
|||
// Failed to submit the stats :-(
|
||||
}
|
||||
|
||||
this.getServer().getConsoleSender().sendMessage("\u00A7aAdvanced portals have been sucsessfully enabled!");
|
||||
this.getServer().getConsoleSender().sendMessage("\u00A7aAdvanced portals have been successfully enabled!");
|
||||
|
||||
String packageName = getServer().getClass().getPackage().getName();
|
||||
String[] packageSplit = packageName.split("\\.");
|
||||
String version = packageSplit[packageSplit.length - 1];
|
||||
|
||||
try {
|
||||
Class<?> nmsClass = Class.forName("com.sekwah.advancedportals.compat." + version);
|
||||
Class<?> nmsClass = Class.forName("com.sekwah.advancedportals.compat.bukkit." + version);
|
||||
if(NMS.class.isAssignableFrom(nmsClass)){
|
||||
this.nmsAccess = (NMS) nmsClass.getConstructor().newInstance();
|
||||
}else
|
||||
|
@ -45,20 +45,11 @@ public class AdvancedPortalsPlugin extends JavaPlugin {
|
|||
} catch (ClassNotFoundException e) {
|
||||
System.out.println("This version of craftbukkit is not yet supported, please notify the author and give version v:" + version);
|
||||
this.setEnabled(false);
|
||||
} catch (InstantiationException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (SecurityException e) {
|
||||
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException |
|
||||
NoSuchMethodException | SecurityException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
new Assets(this);
|
||||
|
||||
// Opens a channel that messages bungeeCord
|
||||
|
|
|
@ -14,7 +14,7 @@ import java.util.List;
|
|||
|
||||
public class DestinationCommand implements CommandExecutor, TabCompleter {
|
||||
|
||||
private final int PortalMessagesDisplay;
|
||||
public static int PortalMessagesDisplay = 0;
|
||||
|
||||
private AdvancedPortalsPlugin plugin;
|
||||
|
||||
|
@ -95,7 +95,7 @@ public class DestinationCommand implements CommandExecutor, TabCompleter {
|
|||
}
|
||||
}
|
||||
else{
|
||||
sender.sendMessage("\u00A7c[\u00A77AdvancedPortals\u00A7c] You need to state the name of the destination you wish to teleport to.");
|
||||
sender.sendMessage("\u00A7c[\u00A77AdvancedPortals\u00A7c] You need to state the name of the destination you wish to exemptPlayer to.");
|
||||
}
|
||||
}
|
||||
else if(args[0].toLowerCase().equals("list")) {
|
||||
|
|
|
@ -16,10 +16,11 @@ import org.bukkit.event.block.Action;
|
|||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.bukkit.event.player.PlayerPortalEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
|
||||
public class Listeners implements Listener {
|
||||
|
||||
|
||||
private final AdvancedPortalsPlugin plugin;
|
||||
|
||||
private int PortalMessagesDisplay = 2;
|
||||
|
@ -80,6 +81,7 @@ public class Listeners implements Listener {
|
|||
// will check if the player is in the portal or not.
|
||||
if(Portal.portalsActive){
|
||||
Player player = event.getPlayer();
|
||||
|
||||
Location fromloc = event.getFrom();
|
||||
Location loc = event.getTo();
|
||||
// Potentially fixes that stupid error cauzed by a bukkit update.
|
||||
|
@ -90,7 +92,7 @@ public class Listeners implements Listener {
|
|||
// rather than sorta making a clone of the object.
|
||||
AdvancedPortal[] portals = Portal.Portals;
|
||||
for(AdvancedPortal portal : portals){
|
||||
if(portal.worldName.equals(loc.getWorld().getName())){
|
||||
if(loc.getWorld() != null && portal.worldName.equals(loc.getWorld().getName())){
|
||||
if(portal.trigger.equals(loc.getBlock().getType())
|
||||
|| portal.trigger.equals(eyeLoc.getBlock().getType())){
|
||||
if((portal.pos1.getX() + 1D) >= loc.getX() && (portal.pos1.getY() + 1D) >= loc.getY() && (portal.pos1.getZ() + 1D) >= loc.getZ()){
|
||||
|
@ -98,8 +100,8 @@ public class Listeners implements Listener {
|
|||
|
||||
|
||||
WarpEvent warpEvent = new WarpEvent(player, portal.portalName);
|
||||
plugin.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
plugin.getServer().getPluginManager().callEvent(warpEvent);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
boolean warped = Portal.activate(player, portal.portalName);
|
||||
if(PortalMessagesDisplay == 1 && warped){
|
||||
|
@ -114,16 +116,18 @@ public class Listeners implements Listener {
|
|||
/**plugin.nmsAccess.sendActionBarMessage("[{text:\"You have warped to \",color:green},{text:\"" + config.getConfig().getString(portal.portalName + ".destination").replaceAll("_", " ")
|
||||
+ "\",color:yellow},{\"text\":\".\",color:green}]", player);*/
|
||||
}
|
||||
|
||||
if(!warped){
|
||||
player.teleport(fromloc);
|
||||
event.setCancelled(true);
|
||||
|
||||
if(warped){
|
||||
//event.setFrom(player.getLocation());
|
||||
//event.setTo(player.getLocation());
|
||||
|
||||
//event.setCancelled(true);
|
||||
}
|
||||
else{
|
||||
player.teleport(fromloc, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(portal.trigger.equals(Material.PORTAL)){
|
||||
final Player finalplayer = event.getPlayer();
|
||||
|
@ -235,7 +239,6 @@ public class Listeners implements Listener {
|
|||
event.setCancelled(true);
|
||||
|
||||
// Returns the event so no more code is executed(stops unnecessary code being executed)
|
||||
return;
|
||||
}
|
||||
else if(event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
||||
Location blockloc = event.getClickedBlock().getLocation();
|
||||
|
@ -249,7 +252,6 @@ public class Listeners implements Listener {
|
|||
event.setCancelled(true);
|
||||
|
||||
// Returns the event so no more code is executed(stops unnecessary code being executed)
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import org.bukkit.entity.Player;
|
|||
|
||||
public class Selection {
|
||||
|
||||
public static Material blockType = Material.WOOL;
|
||||
public static Material blockType = Material.STAINED_GLASS;
|
||||
public static int timeout = 10;
|
||||
public static byte metadata = 14;
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
@ -25,9 +26,17 @@ public class WarpCommand implements CommandExecutor, TabCompleter {
|
|||
public boolean onCommand(CommandSender sender, Command cmd, String command, String[] args) {
|
||||
if(args.length > 0){
|
||||
if(Destination.warp(sender, args[0], false)){
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage("\u00A7a[\u00A7eAdvancedPortals\u00A7a] You have been warped to \u00A7e" + args[0] + "\u00A7a.");
|
||||
sender.sendMessage("");
|
||||
if(DestinationCommand.PortalMessagesDisplay == 1){
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage("\u00A7a[\u00A7eAdvancedPortals\u00A7a] You have been warped to \u00A7e" + args[0].replaceAll("_", " ") + "\u00A7a.");
|
||||
sender.sendMessage("");
|
||||
}
|
||||
else if(DestinationCommand.PortalMessagesDisplay == 2){
|
||||
ConfigAccessor config = new ConfigAccessor(plugin, "Destinations.yml");
|
||||
plugin.nmsAccess.sendActionBarMessage("{text:\"\u00A7aYou have warped to \u00A7e" + args[0].replaceAll("_", " ") + "\u00A7a.\"}", (Player) sender);
|
||||
/**plugin.nmsAccess.sendActionBarMessage("[{text:\"You have warped to \",color:green},{text:\"" + config.getConfig().getString(Portal.Portals[portalId].portalName + ".destination").replaceAll("_", " ")
|
||||
+ "\",color:yellow},{\"text\":\".\",color:green}]", player);*/
|
||||
}
|
||||
}
|
||||
else{
|
||||
sender.sendMessage("");
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
package com.sekwah.advancedportals.compat;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public interface NMS {
|
||||
|
||||
public void sendRawMessage(String rawMessage, Player player);
|
||||
|
||||
public void sendActionBarMessage(String rawMessage, Player player);
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package com.sekwah.advancedportals.compat.bukkit;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public interface NMS {
|
||||
|
||||
void sendRawMessage(String rawMessage, Player player);
|
||||
|
||||
void sendActionBarMessage(String rawMessage, Player player);
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package com.sekwah.advancedportals.compat;
|
||||
package com.sekwah.advancedportals.compat.bukkit;
|
||||
|
||||
import net.minecraft.server.v1_7_R1.ChatSerializer;
|
||||
import net.minecraft.server.v1_7_R1.IChatBaseComponent;
|
|
@ -1,4 +1,4 @@
|
|||
package com.sekwah.advancedportals.compat;
|
||||
package com.sekwah.advancedportals.compat.bukkit;
|
||||
|
||||
import net.minecraft.server.v1_7_R2.ChatSerializer;
|
||||
import net.minecraft.server.v1_7_R2.IChatBaseComponent;
|
|
@ -1,4 +1,4 @@
|
|||
package com.sekwah.advancedportals.compat;
|
||||
package com.sekwah.advancedportals.compat.bukkit;
|
||||
|
||||
import net.minecraft.server.v1_7_R3.ChatSerializer;
|
||||
import net.minecraft.server.v1_7_R3.IChatBaseComponent;
|
|
@ -1,4 +1,4 @@
|
|||
package com.sekwah.advancedportals.compat;
|
||||
package com.sekwah.advancedportals.compat.bukkit;
|
||||
|
||||
import net.minecraft.server.v1_7_R4.ChatSerializer;
|
||||
import net.minecraft.server.v1_7_R4.IChatBaseComponent;
|
|
@ -1,4 +1,4 @@
|
|||
package com.sekwah.advancedportals.compat;
|
||||
package com.sekwah.advancedportals.compat.bukkit;
|
||||
|
||||
import net.minecraft.server.v1_8_R1.ChatSerializer;
|
||||
import net.minecraft.server.v1_8_R1.IChatBaseComponent;
|
|
@ -1,4 +1,4 @@
|
|||
package com.sekwah.advancedportals.compat;
|
||||
package com.sekwah.advancedportals.compat.bukkit;
|
||||
|
||||
import net.minecraft.server.v1_8_R2.IChatBaseComponent;
|
||||
import net.minecraft.server.v1_8_R2.PacketPlayOutChat;
|
|
@ -0,0 +1,27 @@
|
|||
package com.sekwah.advancedportals.compat.bukkit;
|
||||
|
||||
import net.minecraft.server.v1_8_R3.IChatBaseComponent;
|
||||
import net.minecraft.server.v1_8_R3.PacketPlayOutChat;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class v1_8_R3 implements NMS {
|
||||
|
||||
@Override
|
||||
public void sendRawMessage(String rawMessage, Player player) {
|
||||
IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage);
|
||||
// "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar)
|
||||
PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 1);
|
||||
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void sendActionBarMessage(String rawMessage, Player player) {
|
||||
IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage);
|
||||
// "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar)
|
||||
PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 2);
|
||||
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ import org.bukkit.Location;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
|
@ -65,7 +66,7 @@ public class Destination {
|
|||
|
||||
config.getConfig().set(newName.toLowerCase() + ".pos.pitch", config.getConfig().getDouble(oldName + ".pos.pitch"));
|
||||
config.getConfig().set(newName.toLowerCase() + ".pos.yaw", config.getConfig().getDouble(oldName + ".pos.yaw"));
|
||||
|
||||
|
||||
remove(oldName);
|
||||
|
||||
config.saveConfig();
|
||||
|
@ -111,12 +112,12 @@ public class Destination {
|
|||
if (!c.isLoaded()) c.load();
|
||||
if(player.getVehicle() != null){
|
||||
riding.eject();
|
||||
riding.teleport(loc);
|
||||
player.teleport(loc);
|
||||
riding.teleport(loc, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||
player.teleport(loc, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||
riding.setPassenger(player);
|
||||
}
|
||||
else{
|
||||
player.teleport(loc);
|
||||
player.teleport(loc, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||
}
|
||||
WarpEffects.activateParticles(player);
|
||||
WarpEffects.activateSound(player);
|
||||
|
@ -147,9 +148,9 @@ public class Destination {
|
|||
/**
|
||||
* Same as other warp but changes sender to player for you.
|
||||
*
|
||||
* @param player
|
||||
* @param name
|
||||
* @return
|
||||
* @param player the player being warped
|
||||
* @param name name of the warp
|
||||
* @return returns if the player has warped
|
||||
*/
|
||||
public static boolean warp(Player player, String name) {
|
||||
return warp(player, name, true);
|
||||
|
@ -159,9 +160,9 @@ public class Destination {
|
|||
/**
|
||||
* Same as other warp but changes sender to player for you.
|
||||
*
|
||||
* @param sender
|
||||
* @param name
|
||||
* @return
|
||||
* @param sender the player being warped
|
||||
* @param name name of the warp
|
||||
* @return returns if the player has warped
|
||||
*/
|
||||
public static boolean warp(CommandSender sender, String name, boolean senderror) {
|
||||
Player player = (Player)sender;
|
||||
|
@ -172,9 +173,9 @@ public class Destination {
|
|||
/**
|
||||
* Same as other warp but changes sender to player for you.
|
||||
*
|
||||
* @param sender
|
||||
* @param name
|
||||
* @return
|
||||
* @param sender the player being warped
|
||||
* @param name name of the warp
|
||||
* @return returns if the player has warped
|
||||
*/
|
||||
public static boolean warp(CommandSender sender, String name) {
|
||||
Player player = (Player)sender;
|
||||
|
@ -186,7 +187,7 @@ public class Destination {
|
|||
|
||||
ConfigAccessor config = new ConfigAccessor(plugin, "Destinations.yml");
|
||||
|
||||
LinkedList<String> destiList = new LinkedList<String>();
|
||||
LinkedList<String> destiList = new LinkedList<>();
|
||||
|
||||
Set<String> destiSet = config.getConfig().getKeys(false);
|
||||
if(destiSet.size() > 0){
|
||||
|
|
|
@ -369,7 +369,7 @@ public class Portal {
|
|||
}
|
||||
}
|
||||
|
||||
// add code for if the portal doesnt have a destination but a teleport location
|
||||
// add code for if the portal doesnt have a destination but a exemptPlayer location
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
main: com.sekwah.advancedportals.AdvancedPortalsPlugin
|
||||
name: AdvancedPortals
|
||||
version: 0.0.6
|
||||
version: 0.0.8
|
||||
author: SEKWAH41
|
||||
description: An advanced portals plugin for bukkit.
|
||||
commands:
|
||||
|
|
Loading…
Reference in New Issue