Merge remote-tracking branch 'origin/master'

This commit is contained in:
Alastair Hawkes 2015-09-14 21:41:23 +01:00
commit ec9e11eb3a
18 changed files with 105 additions and 69 deletions

View File

@ -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">

View File

@ -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

View File

@ -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")) {

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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("");

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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){

View File

@ -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
}

View File

@ -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: