fix tab-complete, fix kit animation

This commit is contained in:
jascotty2 2019-10-18 21:46:40 -05:00
parent 3e3188d460
commit bc2093445d
11 changed files with 49 additions and 103 deletions

View File

@ -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))

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.";
}
}

View File

@ -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();
}
}