Rtp Addons - 1.4 Release (portal destinations)

This commit is contained in:
SuperRonanCraft
2021-05-05 09:49:33 -04:00
parent 646441ab75
commit e7cf494107
8 changed files with 81 additions and 34 deletions

View File

@@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTPAddons</artifactId>
<packaging>jar</packaging>
<version>1.3</version>
<version>1.4</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>

View File

@@ -19,7 +19,8 @@ public class PortalsDatabase extends Database {
enum Columns implements DatabaseColumn {
LOCATION_1("location_1", "longtext"),
LOCATION_2("location_2", "longtext"),
NAME("name", "varchar(255)");
NAME("name", "varchar(255)"),
WORLD("world", "text");
private final String name;
private final String type;
@@ -47,7 +48,8 @@ public class PortalsDatabase extends Database {
private final String createTable = "CREATE TABLE IF NOT EXISTS " + table + " (" +
"`" + Columns.NAME.name + "` " + Columns.NAME.type + " PRIMARY KEY," +
"`" + 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.setLoc2(LocSerialization.getLocationFromString(rs.getString(Columns.LOCATION_2.name)));
info.setName(rs.getString(Columns.NAME.name));
info.setWorld(rs.getString(Columns.WORLD.name));
list.add(info);
}
return list;
@@ -114,16 +117,19 @@ public class PortalsDatabase extends Database {
ps = conn.prepareStatement("INSERT INTO " + table + "(" +
Columns.NAME.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 " +
Columns.LOCATION_1.name + " = + ?, " + Columns.LOCATION_2.name + " = ?");
Columns.LOCATION_1.name + " = ?, " + Columns.LOCATION_2.name + " = ?, " + Columns.WORLD.name + " = ?");
ps.setString(1, portal.getName());
String serialLocation_1 = LocSerialization.getStringFromLocation(portal.getLoc1());
String serialLocation_2 = LocSerialization.getStringFromLocation(portal.getLoc2());
ps.setString(2, serialLocation_1);
ps.setString(3, serialLocation_2);
ps.setString(4, serialLocation_1);
ps.setString(5, serialLocation_2);
ps.setString(4, portal.getWorld());
ps.setString(5, serialLocation_1);
ps.setString(6, serialLocation_2);
ps.setString(7, portal.getWorld());
ps.executeUpdate();
} catch (SQLException ex) {
plugin.getLogger().log(Level.SEVERE, Errors.sqlConnectionExecute(), ex);

View File

@@ -40,6 +40,7 @@ public class PortalsEvents implements Listener {
@EventHandler (priority = EventPriority.MONITOR)
void move(PlayerMoveEvent e) {
if (e.getTo() != null)
if (e.getFrom().getBlockX() != e.getTo().getBlockX()
|| e.getFrom().getBlockY() != e.getTo().getBlockY()
|| e.getFrom().getBlockZ() != e.getTo().getBlockZ()) {
@@ -57,7 +58,7 @@ public class PortalsEvents implements Listener {
&& 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);
portal.getWorld(), null, RTP_TYPE.ADDON_PORTAL, ignoreCooldown, ignoreDelay);
return;
}
}

View File

@@ -17,7 +17,11 @@ public class PortalsMessages implements AddonsMessages {
//Create
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) {

View File

@@ -2,10 +2,15 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.AddonPortals;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsRegionInfo;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
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
public void execute(CommandSender sendi, String label, String[] args, AddonPortals addonPortals) {
@@ -29,6 +34,9 @@ public class PortalsCommand_Create implements PortalsCommands {
return;
}
String name = args[2];
if (args.length > 3) {
portal.setWorld(args[3]);
}
//Duplicate Name
for (PortalsRegionInfo portals : addonPortals.getPortals().getRegisteredPortals()) {
if (portals.getName().equals(name)) {
@@ -36,9 +44,23 @@ public class PortalsCommand_Create implements PortalsCommands {
return;
}
}
if (addonPortals.getPortals().addRegisteredPortal(p, name))
addonPortals.msgs.getCreateConfirm(sendi, name);
if (addonPortals.getPortals().addRegisteredPortal(p, name)) {
if (portal.getWorld() == null)
addonPortals.msgs.getCreateConfirm(p, name);
else
addonPortals.msgs.getCreateConfirmWorld(p, name, portal.getWorld());
} else
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;
}
}

View File

@@ -3,10 +3,13 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.portals.region;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import javax.annotation.Nullable;
public class PortalsRegionInfo {
protected Location loc_1, loc_2;
protected String name;
protected String world;
public Location getLoc1() {
return loc_1;
@@ -28,7 +31,16 @@ public class PortalsRegionInfo {
this.name = name;
}
public void setWorld(@Nullable String world) {
this.world = world;
}
public String getName() {
return name;
}
@Nullable
public String getWorld() {
return world;
}
}

View File

@@ -2,7 +2,9 @@ Flashback:
Warning: '&7This random teleport was temporary! You were teleported back to your original location.'
Portals:
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!'
Name: '&7Please provide a name for this portal!'
Duplicate: '&7This name is already being used for another portal, please choose another!'
@@ -29,5 +31,5 @@ Usage:
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'

View File

@@ -1,5 +1,5 @@
main: me.SuperRonanCraft.BetterRTPAddons.Main
version: 1.3
version: 1.4
api-version: '1.13'
name: BetterRTPAddons
depend: [BetterRTP]