mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2026-04-22 16:17:23 +00:00
Rtp Addons - 1.4 Release (portal destinations)
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
<groupId>me.SuperRonanCraft</groupId>
|
<groupId>me.SuperRonanCraft</groupId>
|
||||||
<artifactId>BetterRTPAddons</artifactId>
|
<artifactId>BetterRTPAddons</artifactId>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<version>1.3</version>
|
<version>1.4</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>1.8</maven.compiler.source>
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ public class PortalsDatabase extends Database {
|
|||||||
enum Columns implements DatabaseColumn {
|
enum Columns implements DatabaseColumn {
|
||||||
LOCATION_1("location_1", "longtext"),
|
LOCATION_1("location_1", "longtext"),
|
||||||
LOCATION_2("location_2", "longtext"),
|
LOCATION_2("location_2", "longtext"),
|
||||||
NAME("name", "varchar(255)");
|
NAME("name", "varchar(255)"),
|
||||||
|
WORLD("world", "text");
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
private final String type;
|
private final String type;
|
||||||
@@ -47,7 +48,8 @@ public class PortalsDatabase extends Database {
|
|||||||
private final String createTable = "CREATE TABLE IF NOT EXISTS " + table + " (" +
|
private final String createTable = "CREATE TABLE IF NOT EXISTS " + table + " (" +
|
||||||
"`" + Columns.NAME.name + "` " + Columns.NAME.type + " PRIMARY KEY," +
|
"`" + Columns.NAME.name + "` " + Columns.NAME.type + " PRIMARY KEY," +
|
||||||
"`" + Columns.LOCATION_1.name + "` " + Columns.LOCATION_2.type + "," +
|
"`" + Columns.LOCATION_1.name + "` " + Columns.LOCATION_2.type + "," +
|
||||||
"`" + Columns.LOCATION_2.name + "` " + Columns.LOCATION_2.type +
|
"`" + Columns.LOCATION_2.name + "` " + Columns.LOCATION_2.type + "," +
|
||||||
|
"`" + Columns.WORLD.name + "` " + Columns.WORLD.type +
|
||||||
");";
|
");";
|
||||||
|
|
||||||
|
|
||||||
@@ -75,6 +77,7 @@ public class PortalsDatabase extends Database {
|
|||||||
info.setLoc1(LocSerialization.getLocationFromString(rs.getString(Columns.LOCATION_1.name)));
|
info.setLoc1(LocSerialization.getLocationFromString(rs.getString(Columns.LOCATION_1.name)));
|
||||||
info.setLoc2(LocSerialization.getLocationFromString(rs.getString(Columns.LOCATION_2.name)));
|
info.setLoc2(LocSerialization.getLocationFromString(rs.getString(Columns.LOCATION_2.name)));
|
||||||
info.setName(rs.getString(Columns.NAME.name));
|
info.setName(rs.getString(Columns.NAME.name));
|
||||||
|
info.setWorld(rs.getString(Columns.WORLD.name));
|
||||||
list.add(info);
|
list.add(info);
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
@@ -114,16 +117,19 @@ public class PortalsDatabase extends Database {
|
|||||||
ps = conn.prepareStatement("INSERT INTO " + table + "(" +
|
ps = conn.prepareStatement("INSERT INTO " + table + "(" +
|
||||||
Columns.NAME.name + ", " +
|
Columns.NAME.name + ", " +
|
||||||
Columns.LOCATION_1.name + ", " +
|
Columns.LOCATION_1.name + ", " +
|
||||||
Columns.LOCATION_2.name + ") VALUES (?, ?, ?) "
|
Columns.LOCATION_2.name + ", " +
|
||||||
|
Columns.WORLD.name + ") VALUES (?, ?, ?, ?) "
|
||||||
+ "ON CONFLICT(" + Columns.NAME.name + ") DO UPDATE SET " +
|
+ "ON CONFLICT(" + Columns.NAME.name + ") DO UPDATE SET " +
|
||||||
Columns.LOCATION_1.name + " = + ?, " + Columns.LOCATION_2.name + " = ?");
|
Columns.LOCATION_1.name + " = ?, " + Columns.LOCATION_2.name + " = ?, " + Columns.WORLD.name + " = ?");
|
||||||
ps.setString(1, portal.getName());
|
ps.setString(1, portal.getName());
|
||||||
String serialLocation_1 = LocSerialization.getStringFromLocation(portal.getLoc1());
|
String serialLocation_1 = LocSerialization.getStringFromLocation(portal.getLoc1());
|
||||||
String serialLocation_2 = LocSerialization.getStringFromLocation(portal.getLoc2());
|
String serialLocation_2 = LocSerialization.getStringFromLocation(portal.getLoc2());
|
||||||
ps.setString(2, serialLocation_1);
|
ps.setString(2, serialLocation_1);
|
||||||
ps.setString(3, serialLocation_2);
|
ps.setString(3, serialLocation_2);
|
||||||
ps.setString(4, serialLocation_1);
|
ps.setString(4, portal.getWorld());
|
||||||
ps.setString(5, serialLocation_2);
|
ps.setString(5, serialLocation_1);
|
||||||
|
ps.setString(6, serialLocation_2);
|
||||||
|
ps.setString(7, portal.getWorld());
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
plugin.getLogger().log(Level.SEVERE, Errors.sqlConnectionExecute(), ex);
|
plugin.getLogger().log(Level.SEVERE, Errors.sqlConnectionExecute(), ex);
|
||||||
|
|||||||
@@ -40,28 +40,29 @@ public class PortalsEvents implements Listener {
|
|||||||
|
|
||||||
@EventHandler (priority = EventPriority.MONITOR)
|
@EventHandler (priority = EventPriority.MONITOR)
|
||||||
void move(PlayerMoveEvent e) {
|
void move(PlayerMoveEvent e) {
|
||||||
if (e.getFrom().getBlockX() != e.getTo().getBlockX()
|
if (e.getTo() != null)
|
||||||
|| e.getFrom().getBlockY() != e.getTo().getBlockY()
|
if (e.getFrom().getBlockX() != e.getTo().getBlockX()
|
||||||
|| e.getFrom().getBlockZ() != e.getTo().getBlockZ()) {
|
|| e.getFrom().getBlockY() != e.getTo().getBlockY()
|
||||||
if (playerPortaling.containsKey(e.getPlayer()))
|
|| e.getFrom().getBlockZ() != e.getTo().getBlockZ()) {
|
||||||
return;
|
if (playerPortaling.containsKey(e.getPlayer()))
|
||||||
for (PortalsRegionInfo portal : addonPortals.getPortals().getRegisteredPortals()) {
|
|
||||||
Location loc1 = portal.getLoc1(), loc2 = portal.getLoc2(), ploc = e.getTo();
|
|
||||||
assert ploc != null;
|
|
||||||
|
|
||||||
if (ploc.getBlockX() <= Math.max(loc1.getBlockX(), loc2.getBlockX())
|
|
||||||
&& ploc.getBlockX() >= Math.min(loc1.getBlockX(), loc2.getBlockX()))
|
|
||||||
if (ploc.getBlockZ() <= Math.max(loc1.getBlockZ(), loc2.getBlockZ())
|
|
||||||
&& ploc.getBlockZ() >= Math.min(loc1.getBlockZ(), loc2.getBlockZ()))
|
|
||||||
if (ploc.getBlockY() <= Math.max(loc1.getBlockY(), loc2.getBlockY())
|
|
||||||
&& ploc.getBlockY() >= Math.min(loc1.getBlockY(), loc2.getBlockY())) {
|
|
||||||
playerPortaling.put(e.getPlayer(), portal);
|
|
||||||
BetterRTP.getInstance().getCmd().tp(e.getPlayer(), e.getPlayer(),
|
|
||||||
e.getPlayer().getWorld().getName(), null, RTP_TYPE.ADDON_PORTAL, ignoreCooldown, ignoreDelay);
|
|
||||||
return;
|
return;
|
||||||
|
for (PortalsRegionInfo portal : addonPortals.getPortals().getRegisteredPortals()) {
|
||||||
|
Location loc1 = portal.getLoc1(), loc2 = portal.getLoc2(), ploc = e.getTo();
|
||||||
|
assert ploc != null;
|
||||||
|
|
||||||
|
if (ploc.getBlockX() <= Math.max(loc1.getBlockX(), loc2.getBlockX())
|
||||||
|
&& ploc.getBlockX() >= Math.min(loc1.getBlockX(), loc2.getBlockX()))
|
||||||
|
if (ploc.getBlockZ() <= Math.max(loc1.getBlockZ(), loc2.getBlockZ())
|
||||||
|
&& ploc.getBlockZ() >= Math.min(loc1.getBlockZ(), loc2.getBlockZ()))
|
||||||
|
if (ploc.getBlockY() <= Math.max(loc1.getBlockY(), loc2.getBlockY())
|
||||||
|
&& ploc.getBlockY() >= Math.min(loc1.getBlockY(), loc2.getBlockY())) {
|
||||||
|
playerPortaling.put(e.getPlayer(), portal);
|
||||||
|
BetterRTP.getInstance().getCmd().tp(e.getPlayer(), e.getPlayer(),
|
||||||
|
portal.getWorld(), null, RTP_TYPE.ADDON_PORTAL, ignoreCooldown, ignoreDelay);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|||||||
@@ -17,7 +17,11 @@ public class PortalsMessages implements AddonsMessages {
|
|||||||
//Create
|
//Create
|
||||||
|
|
||||||
public void getCreateConfirm(CommandSender sendi, String name) {
|
public void getCreateConfirm(CommandSender sendi, String name) {
|
||||||
sms(sendi, getLang().getString(preM + "Created.Confirm").replace("%name%", name));
|
sms(sendi, getLang().getString(preM + "Created.Confirmation.Default").replace("%name%", name));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getCreateConfirmWorld(CommandSender sendi, String name, String world) {
|
||||||
|
sms(sendi, getLang().getString(preM + "Created.Confirmation.Destination").replace("%name%", name).replace("%world%", world));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getCreateInvalid(CommandSender sendi) {
|
public void getCreateInvalid(CommandSender sendi) {
|
||||||
|
|||||||
@@ -2,10 +2,15 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds;
|
|||||||
|
|
||||||
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.AddonPortals;
|
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.AddonPortals;
|
||||||
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsRegionInfo;
|
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsRegionInfo;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class PortalsCommand_Create implements PortalsCommands {
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PortalsCommand_Create implements PortalsCommands, PortalsCommandsTabable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sendi, String label, String[] args, AddonPortals addonPortals) {
|
public void execute(CommandSender sendi, String label, String[] args, AddonPortals addonPortals) {
|
||||||
@@ -29,6 +34,9 @@ public class PortalsCommand_Create implements PortalsCommands {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String name = args[2];
|
String name = args[2];
|
||||||
|
if (args.length > 3) {
|
||||||
|
portal.setWorld(args[3]);
|
||||||
|
}
|
||||||
//Duplicate Name
|
//Duplicate Name
|
||||||
for (PortalsRegionInfo portals : addonPortals.getPortals().getRegisteredPortals()) {
|
for (PortalsRegionInfo portals : addonPortals.getPortals().getRegisteredPortals()) {
|
||||||
if (portals.getName().equals(name)) {
|
if (portals.getName().equals(name)) {
|
||||||
@@ -36,9 +44,23 @@ public class PortalsCommand_Create implements PortalsCommands {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (addonPortals.getPortals().addRegisteredPortal(p, name))
|
if (addonPortals.getPortals().addRegisteredPortal(p, name)) {
|
||||||
addonPortals.msgs.getCreateConfirm(sendi, name);
|
if (portal.getWorld() == null)
|
||||||
else
|
addonPortals.msgs.getCreateConfirm(p, name);
|
||||||
|
else
|
||||||
|
addonPortals.msgs.getCreateConfirmWorld(p, name, portal.getWorld());
|
||||||
|
} else
|
||||||
sendi.sendMessage("Something went wrong when creating a portal!");
|
sendi.sendMessage("Something went wrong when creating a portal!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> tabComplete(CommandSender sendi, String[] args, AddonPortals addonPortals) {
|
||||||
|
List<String> list = new ArrayList<>();
|
||||||
|
if (args.length == 4) {
|
||||||
|
for (World world : Bukkit.getWorlds())
|
||||||
|
if (world.getName().toLowerCase().startsWith(args[3].toLowerCase()))
|
||||||
|
list.add(world.getName());
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,13 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.portals.region;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class PortalsRegionInfo {
|
public class PortalsRegionInfo {
|
||||||
|
|
||||||
protected Location loc_1, loc_2;
|
protected Location loc_1, loc_2;
|
||||||
protected String name;
|
protected String name;
|
||||||
|
protected String world;
|
||||||
|
|
||||||
public Location getLoc1() {
|
public Location getLoc1() {
|
||||||
return loc_1;
|
return loc_1;
|
||||||
@@ -28,7 +31,16 @@ public class PortalsRegionInfo {
|
|||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setWorld(@Nullable String world) {
|
||||||
|
this.world = world;
|
||||||
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public String getWorld() {
|
||||||
|
return world;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ Flashback:
|
|||||||
Warning: '&7This random teleport was temporary! You were teleported back to your original location.'
|
Warning: '&7This random teleport was temporary! You were teleported back to your original location.'
|
||||||
Portals:
|
Portals:
|
||||||
Created:
|
Created:
|
||||||
Confirm: '&7Portal &a%name% &7has been created!'
|
Confirmation:
|
||||||
|
Default: '&7Portal &a%name% &7has been created!'
|
||||||
|
Destination: '&7Portal &a%name% &7has been created, it''s headed for the world "%world%"'
|
||||||
Invalid: '&7Portal location was not setup, please create a region!'
|
Invalid: '&7Portal location was not setup, please create a region!'
|
||||||
Name: '&7Please provide a name for this portal!'
|
Name: '&7Please provide a name for this portal!'
|
||||||
Duplicate: '&7This name is already being used for another portal, please choose another!'
|
Duplicate: '&7This name is already being used for another portal, please choose another!'
|
||||||
@@ -29,5 +31,5 @@ Usage:
|
|||||||
|
|
||||||
|
|
||||||
Help:
|
Help:
|
||||||
Portals: ' &7- &e/%command% portals <loc1, loc2, create> &7- Setup an rtp portal'
|
Portals: ' &7- &e/%command% portals <loc1, loc2, create> [args...] &7- Setup an rtp portal'
|
||||||
MagicStick: ' &7- &e/%command% magicstick give [player] &7- Give a magic stick to a player'
|
MagicStick: ' &7- &e/%command% magicstick give [player] &7- Give a magic stick to a player'
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
main: me.SuperRonanCraft.BetterRTPAddons.Main
|
main: me.SuperRonanCraft.BetterRTPAddons.Main
|
||||||
version: 1.3
|
version: 1.4
|
||||||
api-version: '1.13'
|
api-version: '1.13'
|
||||||
name: BetterRTPAddons
|
name: BetterRTPAddons
|
||||||
depend: [BetterRTP]
|
depend: [BetterRTP]
|
||||||
|
|||||||
Reference in New Issue
Block a user