Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e29e91fc51 | ||
|
|
54bf949763 | ||
|
|
99a326ce2e | ||
|
|
3cce4477cb |
2
pom.xml
2
pom.xml
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
<groupId>de.teleportsuite</groupId>
|
<groupId>de.teleportsuite</groupId>
|
||||||
<artifactId>TeleportSuite</artifactId>
|
<artifactId>TeleportSuite</artifactId>
|
||||||
<version>1.0.3</version>
|
<version>1.0.5</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ public class TeleportSuite extends JavaPlugin {
|
|||||||
private SavePointManager savePointManager;
|
private SavePointManager savePointManager;
|
||||||
private BungeeMessenger bungeeMessenger;
|
private BungeeMessenger bungeeMessenger;
|
||||||
private ConfigManager configManager;
|
private ConfigManager configManager;
|
||||||
|
private TeleportSuiteTabCompleter tabCompleter;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
@@ -57,6 +58,7 @@ public class TeleportSuite extends JavaPlugin {
|
|||||||
getLogger().warning("BungeeCord deaktiviert (bungee.enabled=false). Cross-Server-Teleport nicht verfuegbar.");
|
getLogger().warning("BungeeCord deaktiviert (bungee.enabled=false). Cross-Server-Teleport nicht verfuegbar.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tabCompleter = new TeleportSuiteTabCompleter(this);
|
||||||
getServer().getPluginManager().registerEvents(new PlayerJoinListener(this), this);
|
getServer().getPluginManager().registerEvents(new PlayerJoinListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new PlayerDeathListener(this), this);
|
getServer().getPluginManager().registerEvents(new PlayerDeathListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new PlayerMoveListener(this), this);
|
getServer().getPluginManager().registerEvents(new PlayerMoveListener(this), this);
|
||||||
@@ -74,33 +76,43 @@ public class TeleportSuite extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerCommands() {
|
private void registerCommands() {
|
||||||
getCommand("tp").setExecutor(new TpCommand(this));
|
registerCommand("tp", new TpCommand(this));
|
||||||
getCommand("tphere").setExecutor(new TpHereCommand(this));
|
registerCommand("tphere", new TpHereCommand(this));
|
||||||
getCommand("tpa").setExecutor(new TpaCommand(this));
|
registerCommand("tpa", new TpaCommand(this));
|
||||||
getCommand("tpaccept").setExecutor(new TpAcceptCommand(this));
|
registerCommand("tpaccept", new TpAcceptCommand(this));
|
||||||
getCommand("tpdeny").setExecutor(new TpDenyCommand(this));
|
registerCommand("tpdeny", new TpDenyCommand(this));
|
||||||
getCommand("tppos").setExecutor(new TpPosCommand(this));
|
registerCommand("tppos", new TpPosCommand(this));
|
||||||
getCommand("tpall").setExecutor(new TpAllCommand(this));
|
registerCommand("tpall", new TpAllCommand(this));
|
||||||
getCommand("tpworld").setExecutor(new TpWorldCommand(this));
|
registerCommand("tpworld", new TpWorldCommand(this));
|
||||||
getCommand("back").setExecutor(new BackCommand(this));
|
registerCommand("back", new BackCommand(this));
|
||||||
getCommand("deathback").setExecutor(new DeathBackCommand(this));
|
registerCommand("deathback", new DeathBackCommand(this));
|
||||||
getCommand("sethome").setExecutor(new SetHomeCommand(this));
|
registerCommand("sethome", new SetHomeCommand(this));
|
||||||
getCommand("home").setExecutor(new HomeCommand(this));
|
registerCommand("home", new HomeCommand(this));
|
||||||
getCommand("delhome").setExecutor(new DelHomeCommand(this));
|
registerCommand("delhome", new DelHomeCommand(this));
|
||||||
getCommand("homes").setExecutor(new HomesCommand(this));
|
registerCommand("homes", new HomesCommand(this));
|
||||||
getCommand("setwarp").setExecutor(new SetWarpCommand(this));
|
registerCommand("setwarp", new SetWarpCommand(this));
|
||||||
getCommand("warp").setExecutor(new WarpCommand(this));
|
registerCommand("warp", new WarpCommand(this));
|
||||||
getCommand("delwarp").setExecutor(new DelWarpCommand(this));
|
registerCommand("delwarp", new DelWarpCommand(this));
|
||||||
getCommand("warps").setExecutor(new WarpsCommand(this));
|
registerCommand("warps", new WarpsCommand(this));
|
||||||
getCommand("setportal").setExecutor(new SetPortalCommand(this));
|
registerCommand("setportal", new SetPortalCommand(this));
|
||||||
getCommand("delportal").setExecutor(new DelPortalCommand(this));
|
registerCommand("delportal", new DelPortalCommand(this));
|
||||||
getCommand("portals").setExecutor(new PortalsCommand(this));
|
registerCommand("portals", new PortalsCommand(this));
|
||||||
getCommand("setspawn").setExecutor(new SetSpawnCommand(this));
|
registerCommand("setspawn", new SetSpawnCommand(this));
|
||||||
getCommand("spawn").setExecutor(new SpawnCommand(this));
|
registerCommand("spawn", new SpawnCommand(this));
|
||||||
getCommand("setfirstspawn").setExecutor(new SetFirstSpawnCommand(this));
|
registerCommand("setfirstspawn", new SetFirstSpawnCommand(this));
|
||||||
getCommand("setsavepoint").setExecutor(new SetSavePointCommand(this));
|
registerCommand("setsavepoint", new SetSavePointCommand(this));
|
||||||
getCommand("savepoint").setExecutor(new SavePointCommand(this));
|
registerCommand("savepoint", new SavePointCommand(this));
|
||||||
getCommand("entitytransport").setExecutor(new EntityTransportCommand(this));
|
registerCommand("entitytransport", new EntityTransportCommand(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerCommand(String name, org.bukkit.command.CommandExecutor executor) {
|
||||||
|
org.bukkit.command.PluginCommand command = getCommand(name);
|
||||||
|
if (command == null) {
|
||||||
|
getLogger().warning("Befehl '" + name + "' ist in plugin.yml nicht registriert.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
command.setExecutor(executor);
|
||||||
|
command.setTabCompleter(tabCompleter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TeleportSuite getInstance() { return instance; }
|
public static TeleportSuite getInstance() { return instance; }
|
||||||
@@ -113,4 +125,5 @@ public class TeleportSuite extends JavaPlugin {
|
|||||||
public SavePointManager getSavePointManager() { return savePointManager; }
|
public SavePointManager getSavePointManager() { return savePointManager; }
|
||||||
public BungeeMessenger getBungeeMessenger() { return bungeeMessenger; }
|
public BungeeMessenger getBungeeMessenger() { return bungeeMessenger; }
|
||||||
public ConfigManager getConfigManager() { return configManager; }
|
public ConfigManager getConfigManager() { return configManager; }
|
||||||
|
public TeleportSuiteTabCompleter getTabCompleter() { return tabCompleter; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ public class DelHomeCommand implements CommandExecutor {
|
|||||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
if (!(sender instanceof Player)) { sender.sendMessage("§cNur für Spieler!"); return true; }
|
if (!(sender instanceof Player)) { sender.sendMessage("§cNur für Spieler!"); return true; }
|
||||||
Player p = (Player) sender;
|
Player p = (Player) sender;
|
||||||
if (!p.hasPermission("teleportsuite.sethome")) { p.sendMessage(plugin.getConfigManager().getMessage("no-permission")); return true; }
|
if (!p.hasPermission("teleportsuite.delhome")) { p.sendMessage(plugin.getConfigManager().getMessage("no-permission")); return true; }
|
||||||
if (args.length < 1) { p.sendMessage("§cVerwendung: /delhome <name>"); return true; }
|
if (args.length < 1) { p.sendMessage("§cVerwendung: /delhome <name>"); return true; }
|
||||||
plugin.getHomeManager().deleteHome(p, args[0]);
|
plugin.getHomeManager().deleteHome(p, args[0]);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -10,7 +10,10 @@ public class HomeCommand implements CommandExecutor {
|
|||||||
if (!(sender instanceof Player)) { sender.sendMessage("§cNur für Spieler!"); return true; }
|
if (!(sender instanceof Player)) { sender.sendMessage("§cNur für Spieler!"); return true; }
|
||||||
Player p = (Player) sender;
|
Player p = (Player) sender;
|
||||||
if (!p.hasPermission("teleportsuite.home")) { p.sendMessage(plugin.getConfigManager().getMessage("no-permission")); return true; }
|
if (!p.hasPermission("teleportsuite.home")) { p.sendMessage(plugin.getConfigManager().getMessage("no-permission")); return true; }
|
||||||
String name = args.length > 0 ? args[0] : "home";
|
String name = args.length > 0 ? args[0] : p.getWorld().getName();
|
||||||
|
if (args.length == 0 && plugin.getDatabaseManager().getHome(p.getUniqueId(), name) == null) {
|
||||||
|
name = "home";
|
||||||
|
}
|
||||||
plugin.getHomeManager().teleportHome(p, name);
|
plugin.getHomeManager().teleportHome(p, name);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ public class SetHomeCommand implements CommandExecutor {
|
|||||||
if (!(sender instanceof Player)) { sender.sendMessage("§cNur für Spieler!"); return true; }
|
if (!(sender instanceof Player)) { sender.sendMessage("§cNur für Spieler!"); return true; }
|
||||||
Player p = (Player) sender;
|
Player p = (Player) sender;
|
||||||
if (!p.hasPermission("teleportsuite.sethome")) { p.sendMessage(plugin.getConfigManager().getMessage("no-permission")); return true; }
|
if (!p.hasPermission("teleportsuite.sethome")) { p.sendMessage(plugin.getConfigManager().getMessage("no-permission")); return true; }
|
||||||
String name = args.length > 0 ? args[0] : "home";
|
String name = args.length > 0 ? args[0] : p.getWorld().getName();
|
||||||
plugin.getHomeManager().setHome(p, name);
|
plugin.getHomeManager().setHome(p, name);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
package de.teleportsuite.commands;
|
||||||
|
|
||||||
|
import de.teleportsuite.TeleportSuite;
|
||||||
|
import de.teleportsuite.models.Home;
|
||||||
|
import de.teleportsuite.models.Warp;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.TabCompleter;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class TeleportSuiteTabCompleter implements TabCompleter {
|
||||||
|
|
||||||
|
private final TeleportSuite plugin;
|
||||||
|
|
||||||
|
public TeleportSuiteTabCompleter(TeleportSuite plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||||
|
String name = command.getName().toLowerCase();
|
||||||
|
List<String> suggestions = new ArrayList<>();
|
||||||
|
|
||||||
|
switch (name) {
|
||||||
|
case "tp":
|
||||||
|
case "tphere":
|
||||||
|
case "tpa":
|
||||||
|
case "tpall":
|
||||||
|
if (args.length == 1) {
|
||||||
|
suggestOnlinePlayers(args[0], suggestions);
|
||||||
|
} else if ("tp".equals(name) && args.length == 2 && sender.hasPermission("teleportsuite.admin")) {
|
||||||
|
suggestOnlinePlayers(args[1], suggestions);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "home":
|
||||||
|
case "delhome":
|
||||||
|
case "sethome":
|
||||||
|
if (sender instanceof Player) {
|
||||||
|
Player player = (Player) sender;
|
||||||
|
if (args.length == 1) {
|
||||||
|
suggestHomeNames(player, args[0], suggestions);
|
||||||
|
if ("sethome".equals(name)) {
|
||||||
|
String worldName = player.getWorld().getName();
|
||||||
|
StringUtil.copyPartialMatches(args[0], Collections.singletonList(worldName), suggestions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "warp":
|
||||||
|
case "delwarp":
|
||||||
|
case "setwarp":
|
||||||
|
if (args.length == 1) {
|
||||||
|
suggestWarpNames(args[0], suggestions);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "delportal":
|
||||||
|
case "setportal":
|
||||||
|
if (args.length == 1) {
|
||||||
|
suggestPortalNames(args[0], suggestions);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "tpworld":
|
||||||
|
if (args.length == 1) {
|
||||||
|
suggestWorlds(args[0], suggestions);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Collections.sort(suggestions, String.CASE_INSENSITIVE_ORDER);
|
||||||
|
return suggestions;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void suggestOnlinePlayers(String token, List<String> suggestions) {
|
||||||
|
List<String> names = new ArrayList<>();
|
||||||
|
Bukkit.getOnlinePlayers().forEach(player -> names.add(player.getName()));
|
||||||
|
StringUtil.copyPartialMatches(token, names, suggestions);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void suggestHomeNames(Player player, String token, List<String> suggestions) {
|
||||||
|
List<String> names = new ArrayList<>();
|
||||||
|
for (Home home : plugin.getHomeManager().getHomes(player.getUniqueId())) {
|
||||||
|
names.add(home.getName());
|
||||||
|
}
|
||||||
|
StringUtil.copyPartialMatches(token, names, suggestions);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void suggestWarpNames(String token, List<String> suggestions) {
|
||||||
|
List<String> names = new ArrayList<>();
|
||||||
|
for (Warp warp : plugin.getWarpManager().getAllWarps()) {
|
||||||
|
names.add(warp.getName());
|
||||||
|
}
|
||||||
|
StringUtil.copyPartialMatches(token, names, suggestions);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void suggestPortalNames(String token, List<String> suggestions) {
|
||||||
|
List<String> names = new ArrayList<>();
|
||||||
|
plugin.getPortalManager().getPortals().forEach(portal -> names.add(portal.getName()));
|
||||||
|
StringUtil.copyPartialMatches(token, names, suggestions);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void suggestWorlds(String token, List<String> suggestions) {
|
||||||
|
List<String> names = new ArrayList<>();
|
||||||
|
for (World world : Bukkit.getWorlds()) {
|
||||||
|
names.add(world.getName());
|
||||||
|
}
|
||||||
|
StringUtil.copyPartialMatches(token, names, suggestions);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
name: TeleportSuite-Bungee
|
name: TeleportSuite-Bungee
|
||||||
main: de.teleportsuite.bungee.TeleportSuiteBungee
|
main: de.teleportsuite.bungee.TeleportSuiteBungee
|
||||||
version: 1.0
|
version: 1.0.5
|
||||||
author: TeleportSuite
|
author: TeleportSuite
|
||||||
description: BungeeCord-Companion fuer TeleportSuite
|
description: BungeeCord-Companion fuer TeleportSuite
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: TeleportSuite
|
name: TeleportSuite
|
||||||
version: 1.0.3
|
version: 1.0.5
|
||||||
main: de.teleportsuite.TeleportSuite
|
main: de.teleportsuite.TeleportSuite
|
||||||
api-version: 1.20
|
api-version: 1.20
|
||||||
description: BungeeCord-fähiges Teleport-Komplettpaket
|
description: BungeeCord-fähiges Teleport-Komplettpaket
|
||||||
|
|||||||
Reference in New Issue
Block a user