fix tab-complete, fix kit animation
This commit is contained in:
parent
3e3188d460
commit
bc2093445d
|
@ -22,7 +22,6 @@ import com.songoda.ultimatekits.commands.CommandReload;
|
|||
import com.songoda.ultimatekits.commands.CommandRemove;
|
||||
import com.songoda.ultimatekits.commands.CommandSet;
|
||||
import com.songoda.ultimatekits.commands.CommandSettings;
|
||||
import com.songoda.ultimatekits.commands.CommandUltimateKits;
|
||||
import com.songoda.ultimatekits.conversion.Convert;
|
||||
import com.songoda.ultimatekits.database.DataManager;
|
||||
import com.songoda.ultimatekits.database.migrations._1_InitialMigration;
|
||||
|
@ -122,7 +121,7 @@ public class UltimateKits extends SongodaPlugin {
|
|||
this.commandManager = new CommandManager(this);
|
||||
this.commandManager.addCommand(new CommandKit(guiManager));
|
||||
this.commandManager.addCommand(new CommandPreviewKit(guiManager));
|
||||
this.commandManager.addCommand(new CommandUltimateKits())
|
||||
this.commandManager.addMainCommand("KitAdmin")
|
||||
.addSubCommand(new CommandReload())
|
||||
.addSubCommand(new CommandSettings(guiManager))
|
||||
.addSubCommand(new CommandCreatekit(guiManager))
|
||||
|
|
|
@ -13,6 +13,7 @@ import org.bukkit.entity.Player;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class CommandEdit extends AbstractCommand {
|
||||
|
||||
|
@ -53,13 +54,14 @@ public class CommandEdit extends AbstractCommand {
|
|||
protected List<String> onTab(CommandSender sender, String... args) {
|
||||
if (!(sender instanceof Player)) return null;
|
||||
|
||||
List<String> tab = new ArrayList<>();
|
||||
if (args.length == 1) {
|
||||
for (Kit kit : UltimateKits.getInstance().getKitManager().getKits())
|
||||
tab.add(kit.getName());
|
||||
return tab;
|
||||
final String search = args[0].toLowerCase();
|
||||
return UltimateKits.getInstance().getKitManager().getKits().stream()
|
||||
.map(kit -> kit.getName())
|
||||
.filter(kit -> kit.toLowerCase().startsWith(search))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return tab;
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -13,6 +13,7 @@ import org.bukkit.entity.Player;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class CommandKey extends AbstractCommand {
|
||||
|
||||
|
@ -85,13 +86,14 @@ public class CommandKey extends AbstractCommand {
|
|||
tab.add(kit.getName());
|
||||
return tab;
|
||||
} else if (args.length == 2) {
|
||||
for (Key key : UltimateKits.getInstance().getKeyManager().getKeys())
|
||||
tab.add(key.getName());
|
||||
return tab;
|
||||
final String search = args[0].toLowerCase();
|
||||
return UltimateKits.getInstance().getKitManager().getKits().stream()
|
||||
.map(kit -> kit.getName())
|
||||
.filter(kit -> kit.toLowerCase().startsWith(search))
|
||||
.collect(Collectors.toList());
|
||||
} else if (args.length == 3) {
|
||||
tab.add("all");
|
||||
for (Player player : Bukkit.getOnlinePlayers())
|
||||
tab.add(player.getName());
|
||||
tab.addAll(PlayerUtils.getVisiblePlayerNames(sender, args[2]));
|
||||
return tab;
|
||||
} else if (args.length == 4) return Arrays.asList("amount");
|
||||
return tab;
|
||||
|
|
|
@ -10,8 +10,8 @@ import org.bukkit.Bukkit;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class CommandKit extends AbstractCommand {
|
||||
|
||||
|
@ -79,7 +79,11 @@ public class CommandKit extends AbstractCommand {
|
|||
|
||||
@Override
|
||||
protected List<String> onTab(CommandSender sender, String... args) {
|
||||
return new ArrayList<>();
|
||||
final String search = args[0].toLowerCase();
|
||||
return UltimateKits.getInstance().getKitManager().getKits().stream()
|
||||
.map(kit -> kit.getName())
|
||||
.filter(kit -> kit.toLowerCase().startsWith(search))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -7,8 +7,8 @@ import com.songoda.ultimatekits.kit.Kit;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class CommandPreviewKit extends AbstractCommand {
|
||||
|
||||
|
@ -38,18 +38,14 @@ public class CommandPreviewKit extends AbstractCommand {
|
|||
|
||||
@Override
|
||||
protected List<String> onTab(CommandSender sender, String... args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return null;
|
||||
if ((sender instanceof Player) && args.length == 1) {
|
||||
final String search = args[0].toLowerCase();
|
||||
return UltimateKits.getInstance().getKitManager().getKits().stream()
|
||||
.map(kit -> kit.getName())
|
||||
.filter(kit -> kit.toLowerCase().startsWith(search))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
if (args.length == 2) {
|
||||
List<String> tab = new ArrayList<>();
|
||||
for (Kit kit : UltimateKits.getInstance().getKitManager().getKits()) {
|
||||
tab.add(kit.getName());
|
||||
}
|
||||
return tab;
|
||||
}
|
||||
return new ArrayList<>();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -4,7 +4,6 @@ import com.songoda.core.commands.AbstractCommand;
|
|||
import com.songoda.ultimatekits.UltimateKits;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandReload extends AbstractCommand {
|
||||
|
@ -23,7 +22,7 @@ public class CommandReload extends AbstractCommand {
|
|||
|
||||
@Override
|
||||
protected List<String> onTab(CommandSender sender, String... args) {
|
||||
return new ArrayList<>();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -8,7 +8,6 @@ import org.bukkit.block.Block;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandRemove extends AbstractCommand {
|
||||
|
@ -37,7 +36,7 @@ public class CommandRemove extends AbstractCommand {
|
|||
|
||||
@Override
|
||||
protected List<String> onTab(CommandSender sender, String... args) {
|
||||
return new ArrayList<>();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -8,8 +8,8 @@ import org.bukkit.block.Block;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class CommandSet extends AbstractCommand {
|
||||
|
||||
|
@ -46,14 +46,14 @@ public class CommandSet extends AbstractCommand {
|
|||
return null;
|
||||
}
|
||||
|
||||
if (args.length == 2) {
|
||||
List<String> tab = new ArrayList<>();
|
||||
for (Kit kit : UltimateKits.getInstance().getKitManager().getKits()) {
|
||||
tab.add(kit.getName());
|
||||
}
|
||||
return tab;
|
||||
if (args.length == 1) {
|
||||
final String search = args[0].toLowerCase();
|
||||
return UltimateKits.getInstance().getKitManager().getKits().stream()
|
||||
.map(kit -> kit.getName())
|
||||
.filter(kit -> kit.toLowerCase().startsWith(search))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return new ArrayList<>();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -7,7 +7,6 @@ import com.songoda.ultimatekits.UltimateKits;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandSettings extends AbstractCommand {
|
||||
|
@ -28,7 +27,7 @@ public class CommandSettings extends AbstractCommand {
|
|||
|
||||
@Override
|
||||
protected List<String> onTab(CommandSender sender, String... args) {
|
||||
return new ArrayList<>();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
package com.songoda.ultimatekits.commands;
|
||||
|
||||
import com.songoda.core.commands.AbstractCommand;
|
||||
import com.songoda.ultimatekits.UltimateKits;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.ChatColor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandUltimateKits extends AbstractCommand {
|
||||
|
||||
final UltimateKits instance = UltimateKits.getInstance();
|
||||
|
||||
public CommandUltimateKits() {
|
||||
super(false, "KitAdmin");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AbstractCommand.ReturnType runCommand(CommandSender sender, String... args) {
|
||||
sender.sendMessage("");
|
||||
instance.getLocale().newMessage("&7Version " + instance.getDescription().getVersion()
|
||||
+ " Created with <3 by &5&l&oSongoda").sendPrefixedMessage(sender);
|
||||
|
||||
for (AbstractCommand command : instance.getCommandManager().getAllCommands()) {
|
||||
if (command.getPermissionNode() == null || sender.hasPermission(command.getPermissionNode())) {
|
||||
sender.sendMessage(ChatColor.DARK_GRAY + " - " + ChatColor.GREEN + command.getSyntax() + ChatColor.GRAY + " - " + command.getDescription());
|
||||
}
|
||||
}
|
||||
sender.sendMessage("");
|
||||
|
||||
return ReturnType.SUCCESS;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> onTab(CommandSender sender, String... args) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPermissionNode() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSyntax() {
|
||||
return "/KitAdmin";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Displays this page.";
|
||||
}
|
||||
}
|
|
@ -31,9 +31,10 @@ public class AnimatedKitGui extends Gui {
|
|||
private boolean finish = false;
|
||||
private boolean done = false;
|
||||
private int tick = 0, updateTick = 0;
|
||||
private int ticksPerUpdate = 4;
|
||||
private final int updatesPerSlow = 5;
|
||||
private final int ticksPerUpdateSlow = 15;
|
||||
private int ticksPerUpdate = 3; // current animation speed
|
||||
private final int updatesPerSlow = 10; // how many animation ticks before the animation slows
|
||||
private final int slowPerSlow = 3; // ticks per update to slow animation by for ticksPerUpdate
|
||||
private final int ticksPerUpdateSlow = 9; // slowest speed for animation
|
||||
private int task;
|
||||
|
||||
public AnimatedKitGui(UltimateKits plugin, Player player, Kit kit, ItemStack give) {
|
||||
|
@ -60,9 +61,8 @@ public class AnimatedKitGui extends Gui {
|
|||
setItem(4, GuiUtils.getBorderItem(CompatibleMaterial.TRIPWIRE_HOOK));
|
||||
setItem(22, GuiUtils.getBorderItem(CompatibleMaterial.TRIPWIRE_HOOK));
|
||||
tick();
|
||||
setOnOpen(event -> {
|
||||
task = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> tick(), 1L, 5L);
|
||||
});
|
||||
task = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> tick(), 1L, 5L);
|
||||
setOnClose(event -> Bukkit.getScheduler().cancelTask(task));
|
||||
}
|
||||
|
||||
void tick() {
|
||||
|
@ -72,7 +72,8 @@ public class AnimatedKitGui extends Gui {
|
|||
tick = 0;
|
||||
if (++updateTick >= updatesPerSlow) {
|
||||
updateTick = 0;
|
||||
if (++ticksPerUpdate >= ticksPerUpdateSlow) {
|
||||
ticksPerUpdate = Math.min(ticksPerUpdateSlow, ticksPerUpdate + slowPerSlow);
|
||||
if (ticksPerUpdate >= ticksPerUpdateSlow) {
|
||||
finish = true;
|
||||
}
|
||||
}
|
||||
|
@ -91,7 +92,7 @@ public class AnimatedKitGui extends Gui {
|
|||
items.removeLast();
|
||||
Iterator<KitItem> itemIter = items.iterator();
|
||||
for (int i = 0; i < 9; i++) {
|
||||
setItem(0, i, itemIter.next().getItem());
|
||||
setItem(1, i, itemIter.next().getItem());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -123,7 +124,6 @@ public class AnimatedKitGui extends Gui {
|
|||
|
||||
}
|
||||
private void finish() {
|
||||
Bukkit.getScheduler().cancelTask(task);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue