portals command fix + addons command updated

This commit is contained in:
SuperRonanCraft 2021-06-18 00:52:42 -04:00
parent 3bacb95f09
commit db14e688b9
27 changed files with 307 additions and 32 deletions

View File

@ -7,13 +7,19 @@
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTPAddons</artifactId>
<packaging>jar</packaging>
<version>1.4</version>
<version>1.5</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>

View File

@ -1,5 +1,6 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
public interface Addon {
@ -13,6 +14,8 @@ public interface Addon {
//Unload the addon if enabled
void unload();
RTPCommand getCmd();
//Ability to grab a file
default Files.FILETYPE getFile(Files.FILETYPE filetype) {
return Main.getInstance().getFiles().getType(filetype);

View File

@ -0,0 +1,32 @@
package me.SuperRonanCraft.BetterRTPAddons;
import org.bukkit.command.CommandSender;
public class AddonMessages implements AddonsMessages {
private static final String preM = "Addons.";
public String getBaseHelp() {
return getLang().getString("Help.Base.Help");
}
public String getBaseList() {
return getLang().getString("Help.Base.List");
}
public String getListPrefix() {
return getLang().getString(preM + "List.Prefix");
}
public String getListDisabled() {
return getLang().getString(preM + "List.Disabled");
}
public String getListEnabled() {
return getLang().getString(preM + "List.Enabled");
}
public String getHelp() {
return getLang().getString("Help.Addons");
}
}

View File

@ -1,21 +1,65 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommandsTabable;
import me.SuperRonanCraft.BetterRTPAddons.cmds.AddonsCommand_Help;
import me.SuperRonanCraft.BetterRTPAddons.cmds.AddonsCommand_List;
import me.SuperRonanCraft.BetterRTPAddons.cmds.AddonsCommand_Version;
import me.SuperRonanCraft.BetterRTPAddons.cmds.AddonsCommands;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class AddonsCommand implements RTPCommand, RTPCommandHelpable {
public enum AddonCmds {
LIST(new AddonsCommand_List()),
HELP(new AddonsCommand_Help()),
VERSION(new AddonsCommand_Version());
public AddonsCommands cmd;
AddonCmds(AddonsCommands cmd) {
this.cmd = cmd;
}
}
public class AddonsCommand implements RTPCommand {
@Override
public void execute(CommandSender sendi, String label, String[] args) {
for (AddonsHandler.Addons addon : Main.getInstance().getAddonsHandler().addons) {
sendi.sendMessage(addon.name());
if (args.length == 2) {
for (AddonCmds cmds : AddonCmds.values()) {
if (cmds.name().equalsIgnoreCase(args[1])) {
cmds.cmd.execute(sendi, label, args);
return;
}
}
BetterRTP.getInstance().getText().getInvalid(sendi, label);
} else {
List<String> list = new ArrayList<>();
list.add(BetterRTP.getInstance().getText().getHelpPrefix());
for (AddonsHandler.Addons addon : Main.getInstance().getAddonsHandler().addons) {
RTPCommand cmd = addon.getCmd();
if (cmd instanceof RTPCommandHelpable)
list.add(((RTPCommandHelpable) cmd).getHelp().replace("%command%", label));
}
list.add(((RTPCommandHelpable) AddonCmds.HELP.cmd).getHelp().replace("%command%", label));
Main.getInstance().msgs.sms(sendi, list);
}
}
@Override
public List<String> tabComplete(CommandSender sendi, String[] args) {
return null;
List<String> list = new ArrayList<>();
if (args.length == 2)
for (AddonCmds cmds : AddonCmds.values()) {
if (cmds.name().toLowerCase().startsWith(args[1].toLowerCase()))
list.add(cmds.name().toLowerCase());
}
return list;
}
@Override
@ -27,4 +71,9 @@ public class AddonsCommand implements RTPCommand {
public String getName() {
return "addons";
}
@Override
public String getHelp() {
return Main.getInstance().msgs.getHelp();
}
}

View File

@ -1,21 +1,20 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTPAddons.addons.commands.AddonCommands;
import me.SuperRonanCraft.BetterRTPAddons.addons.extraEffects.AddonExtraEffects;
import me.SuperRonanCraft.BetterRTPAddons.addons.flashback.AddonFlashback;
import me.SuperRonanCraft.BetterRTPAddons.addons.interfaces.AddonInterface;
import me.SuperRonanCraft.BetterRTPAddons.addons.logger.AddonLogger;
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.AddonMagicStick;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.AddonPortals;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
public class AddonsHandler {
List<Addons> addons = new ArrayList<>();
public List<Addons> addons = new ArrayList<>();
AddonsCommand cmd = new AddonsCommand();
public void load() {
@ -37,7 +36,7 @@ public class AddonsHandler {
addons.clear();
}
enum Addons {
public enum Addons {
LOGGER(new AddonLogger()), //Does this thing work?
FLASH_BACK(new AddonFlashback()), //Never get lost adventuring
PORTALS(new AddonPortals()), //Fancy walk-in portals
@ -53,7 +52,7 @@ public class AddonsHandler {
this.addon = addon;
}
boolean isEnabled() {
public boolean isEnabled() {
return addon.isEnabled();
}
@ -65,6 +64,10 @@ public class AddonsHandler {
void disable() {
addon.unload();
}
RTPCommand getCmd() {
return addon.getCmd();
}
}
}

View File

@ -9,6 +9,7 @@ public class Main extends JavaPlugin {
private static Main instance;
private final AddonsHandler addonsHandler = new AddonsHandler();
private final Files files = new Files();
public final AddonMessages msgs = new AddonMessages();
@Override
public void onEnable() {

View File

@ -1,5 +1,6 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.commands;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@ -22,4 +23,9 @@ public class AddonCommands implements Addon {
public void unload() {
loader.unload();
}
@Override
public RTPCommand getCmd() {
return null;
}
}

View File

@ -1,5 +1,6 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.extraEffects;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
import org.bukkit.event.Listener;
@ -34,6 +35,11 @@ public class AddonExtraEffects implements Addon {
this.effects.clear();
}
@Override
public RTPCommand getCmd() {
return null;
}
enum Effects {
SKYHIGH(new ExtraEffectsEffect_Skyhigh());

View File

@ -1,5 +1,6 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.flashback;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
@ -70,6 +71,11 @@ public class AddonFlashback implements Addon, Listener {
HandlerList.unregisterAll(this);
}
@Override
public RTPCommand getCmd() {
return null;
}
@EventHandler
void onTeleport(RTP_TeleportPostEvent e) { //Create a timer to teleport player back
if (e.getType() != RTP_TYPE.ADDON_PORTAL &&

View File

@ -1,5 +1,6 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.interfaces;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@ -21,4 +22,9 @@ public class AddonInterface implements Addon {
public void unload() {
}
@Override
public RTPCommand getCmd() {
return null;
}
}

View File

@ -1,10 +1,12 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.logger;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdReload;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.AddonsCommand;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.Bukkit;
@ -65,6 +67,11 @@ public class AddonLogger implements Addon, Listener {
Main.getInstance().getLogger().removeHandler(consoleHandler_main);
}
@Override
public RTPCommand getCmd() {
return null;
}
@EventHandler
public void onCmd(RTP_CommandEvent e) {
String _str = e.getSendi().getName() + " executed `/rtp " + e.getCmd().getName() + "` at " + getDate();

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.magicStick;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand;
@ -28,4 +29,9 @@ public class AddonMagicStick implements Addon {
public void unload() {
events.unload();
}
@Override
public RTPCommand getCmd() {
return cmd;
}
}

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommand;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@ -34,6 +35,11 @@ public class AddonPortals implements Addon {
events.unregiter();
}
@Override
public RTPCommand getCmd() {
return cmd;
}
public PortalsCache getPortals() {
return portalsCache;
}

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
import me.SuperRonanCraft.BetterRTPAddons.AddonsMessages;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
public class PortalsMessages implements AddonsMessages {
@ -38,18 +39,24 @@ public class PortalsMessages implements AddonsMessages {
//Location
public void getLocation_1(CommandSender sendi) {
sms(sendi, getLang().getString(preM + "Location.1"));
public void getLocation_1(CommandSender sendi, Location loc) {
sms(sendi, getLang().getString(preM + "Location.1")
.replace("%location%", "x:" + loc.getBlockX() + ", y:" + loc.getBlockY() + ", z:" + loc.getBlockZ()));
}
public void getLocation_2(CommandSender sendi) {
sms(sendi, getLang().getString(preM + "Location.2"));
public void getLocation_2(CommandSender sendi, Location loc) {
sms(sendi, getLang().getString(preM + "Location.2")
.replace("%location%", "x:" + loc.getBlockX() + ", y:" + loc.getBlockY() + ", z:" + loc.getBlockZ()));
}
public void getLocation_Look(CommandSender sendi) {
sms(sendi, getLang().getString(preM + "Location.Look"));
}
public void getLocation_Ready(CommandSender sendi) {
sms(sendi, getLang().getString(preM + "Location.Ready").replace("%command%", "rtp"));
}
//Remove
public void getRemoveConfirm(CommandSender sendi, String name) {

View File

@ -18,6 +18,11 @@ public class PortalsCommand_Create implements PortalsCommands, PortalsCommandsTa
sendi.sendMessage("Console cannot perform this command!");
return;
}
//Valid Name
if (args.length < 3 || args[2].length() < 1) {
addonPortals.msgs.getCreateName(sendi);
return;
}
Player p = (Player) sendi;
PortalsRegionInfo portal = addonPortals.getPortals().getPortal(p);
//Valid region
@ -28,11 +33,6 @@ public class PortalsCommand_Create implements PortalsCommands, PortalsCommandsTa
addonPortals.msgs.getCreateInvalid(sendi);
return;
}
//Valid Name
if (args.length < 3 || args[2].length() < 1) {
addonPortals.msgs.getCreateName(sendi);
return;
}
String name = args[2];
if (args.length > 3) {
portal.setWorld(args[3]);

View File

@ -17,8 +17,8 @@ public class PortalsCommand_Loc1 implements PortalsCommands, LocationFinder {
Block block = getTargetBlock(p, 10);
if (block != null) {
Location loc = block.getLocation();
addonPortals.msgs.getLocation_1(sendi, loc);
addonPortals.getPortals().cachePortal(p, loc, false);
addonPortals.msgs.getLocation_1(sendi);
} else {
addonPortals.msgs.getLocation_Look(sendi);
}

View File

@ -14,8 +14,8 @@ public class PortalsCommand_Loc2 implements PortalsCommands, LocationFinder {
Block block = getTargetBlock(p, 10);
if (block != null) {
Location loc = block.getLocation();
addonPortals.msgs.getLocation_2(sendi, loc);
addonPortals.getPortals().cachePortal(p, loc, true);
addonPortals.msgs.getLocation_2(sendi);
} else {
addonPortals.msgs.getLocation_Look(sendi);
}

View File

@ -70,11 +70,16 @@ public class PortalsCache {
portalsBeingCreated.put(p, portal);
}
Location old_loc1 = portal.loc_1;
Location old_loc2 = portal.loc_1;
Location old_loc2 = portal.loc_2;
if (loc2)
portal.loc_2 = loc;
else
portal.loc_1 = loc;
if (portal.loc_1 != null && portal.loc_2 != null)
if (old_loc1 == null || old_loc2 == null)
addonPortals.msgs.getLocation_Ready(p);
if (Bukkit.getPluginManager().isPluginEnabled("ProtocolLib")) {
ProtocolManager pm = ProtocolLibrary.getProtocolManager();
@ -104,6 +109,11 @@ public class PortalsCache {
packet.setLocation(new BlockPosition(loc.toVector()));
packet.sendPacket(p);
//}
} else {
if (loc2)
p.sendBlockChange(portal.loc_2, Material.GLOWSTONE.createBlockData());
else
p.sendBlockChange(portal.loc_1, Material.GLOWSTONE.createBlockData());
}
}

View File

@ -0,0 +1,32 @@
package me.SuperRonanCraft.BetterRTPAddons.cmds;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTPAddons.AddonMessages;
import me.SuperRonanCraft.BetterRTPAddons.AddonsCommand;
import me.SuperRonanCraft.BetterRTPAddons.AddonsHandler;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
import java.util.List;
public class AddonsCommand_Help implements AddonsCommands, RTPCommandHelpable {
@Override
public void execute(CommandSender sendi, String label, String[] args) {
List<String> list = new ArrayList<>();
list.add(BetterRTP.getInstance().getText().getHelpPrefix());
for (AddonsCommand.AddonCmds cmds : AddonsCommand.AddonCmds.values()) {
if (cmds.cmd instanceof RTPCommandHelpable)
list.add(((RTPCommandHelpable) cmds.cmd).getHelp().replace("%command%", label));
}
Main.getInstance().msgs.sms(sendi, list);
}
@Override
public String getHelp() {
return Main.getInstance().msgs.getBaseHelp();
}
}

View File

@ -0,0 +1,32 @@
package me.SuperRonanCraft.BetterRTPAddons.cmds;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTPAddons.AddonMessages;
import me.SuperRonanCraft.BetterRTPAddons.AddonsHandler;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
import java.util.List;
public class AddonsCommand_List implements AddonsCommands, RTPCommandHelpable {
@Override
public void execute(CommandSender sendi, String label, String[] args) {
AddonMessages msgs = Main.getInstance().msgs;
List<String> list = new ArrayList<>();
list.add(msgs.getListPrefix());
for (AddonsHandler.Addons addon : AddonsHandler.Addons.values()) {
String str = msgs.getListDisabled();
if (addon.isEnabled())
str = msgs.getListEnabled();
list.add(str.replace("%addon%", addon.name()));
}
msgs.sms(sendi, list);
}
@Override
public String getHelp() {
return Main.getInstance().msgs.getBaseList();
}
}

View File

@ -0,0 +1,25 @@
package me.SuperRonanCraft.BetterRTPAddons.cmds;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTPAddons.AddonMessages;
import me.SuperRonanCraft.BetterRTPAddons.AddonsHandler;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
import java.util.List;
public class AddonsCommand_Version implements AddonsCommands, RTPCommandHelpable {
@Override
public void execute(CommandSender sendi, String label, String[] args) {
sendi.sendMessage(BetterRTP.getInstance().getText()
.colorPre("&aVersion #&e" + Main.getInstance().getDescription().getVersion()));
}
@Override
public String getHelp() {
return Main.getInstance().msgs.getBaseList();
}
}

View File

@ -0,0 +1,9 @@
package me.SuperRonanCraft.BetterRTPAddons.cmds;
import org.bukkit.command.CommandSender;
public interface AddonsCommands {
void execute(CommandSender sendi, String label, String[] args);
}

View File

@ -0,0 +1,9 @@
package me.SuperRonanCraft.BetterRTPAddons.cmds;
import org.bukkit.command.CommandSender;
public interface AddonsCommandsTabable {
void execute(CommandSender sendi, String label, String[] args);
}

View File

@ -9,8 +9,9 @@ Portals:
Name: '&7Please provide a name for this portal!'
Duplicate: '&7This name is already being used for another portal, please choose another!'
Location:
1: '&7Location &a1 &7has been set'
2: '&7Location &a2 &7has been set'
1: '&7Location &a1 &7has been set to %location%'
2: '&7Location &a2 &7has been set to %location%'
Ready: '&7Region has been created, please execute `/%command% portals create <portal_name> [world]` to create a new portal!'
Look: '&7Please look towards a block and try again!'
Remove:
Confirm: '&cPortal &7%name% &chas been removed!'
@ -19,17 +20,24 @@ Portals:
Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Portals List &e&m-----'
Portal: ' &7- &6%name% &8| &7%location%'
None: '&7There are no portals! &8Create one with `/rtp portals create`'
Usage:
Base: '&cUsage: &7/%command% portals <remove, create, loc1, loc2, list>'
Remove: '&cUsage: &7/%command% portals remove <portal_name>'
MagicStick:
Give: '&dMagic Stick&7 has been given to &a%player%'
Given: '&7A &dMagic Stick&7 has been given to you'
Player: '&cWhoops! &7Seems like their is no player by the name of &a%player% &7online!'
Usage:
Portals:
Base: '&cUsage: &7/%command% portals <remove, create, loc1, loc2>'
Remove: '&cUsage: &7/%command% portals remove <portal_name>'
Addons:
List:
Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Addons Info &e&m-----'
Enabled: ' &7- &e%addon% &7- &aEnabled'
Disabled: ' &7- &e%addon% &7- &cDisabled'
Help:
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'
Addons: ' &7- &e/%command% addons &7- View a list of addons commands'
Base:
Help: ' &7- &e/%command% addons help &7- View a list of available commands'
List: ' &7- &e/%command% addons list &7- View a list of all enabled addons'

View File

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

View File

@ -34,6 +34,12 @@
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>

View File

@ -1,5 +1,5 @@
main: me.SuperRonanCraft.BetterRTP.BetterRTP
version: '3.1.0-5'
version: ${project.version}
name: BetterRTP
author: SuperRonanCraft
softdepend: