SteamWar/BauSystem2.0
Archiviert
12
0

Add AutoStart to multilingual

Dieser Commit ist enthalten in:
yoyosource 2021-05-13 16:33:43 +02:00
Ursprung e1f77b47b3
Commit 94c5b40b55
8 geänderte Dateien mit 48 neuen und 23 gelöschten Zeilen

Datei anzeigen

@ -87,6 +87,17 @@ REGION_TYPE_NORMAL = Normal
REGION_TYPE_BUILD = Baubereich
REGION_TYPE_ONLY_TB = Testblock
# AutoStart
AUTOSTART_COMMAND_HELP = §8/§etimer §8- §7Legt den AutostartTimer ins Inventar
AUTOSTART_ITEM_NAME = §eAutostartTimer
AUTOSTART_ITEM_LORE = §eRechtsklick Block §8- §7Starte den Timer
AUTOSTART_MESSAGE_NO-REGION = §cDu befindest dich derzeit in keiner Region
AUTOSTART_MESSAGE_RESET = §eDer AutostartTimer wurde zurückgesetzt
AUTOSTART_MESSAGE_START = §eAutostartTimer gestartet
AUTOSTART_MESSAGE_RESULT1 = §eZeit §7bis zur §eExplosion §7am Gegner§8:§e {0}
AUTOSTART_MESSAGE_RESULT2 = §eZeitdifferenz in ticks §7bis 60 Sekunden§8:§e {0}
AUTOSTART_MESSAGE_RESULT3 = §7Positiv, wenn zu wenig, negativ wenn zu viel
# GUI
GUI_EDITOR_ITEM-NAME=§eGui Editor
GUI_EXPORT_CODE=§eDein Gui-Code:

Datei anzeigen

@ -19,6 +19,7 @@
package de.steamwar.bausystem.features.autostart;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.SWUtils;
import de.steamwar.bausystem.linkage.LinkageType;
import de.steamwar.bausystem.linkage.Linked;
@ -38,12 +39,12 @@ public class AutoStartCommand extends SWCommand {
@Register(help = true)
public void genericHelp(Player p, String... args) {
p.sendMessage("§8/§etimer §8- §7Legt den AutostartTimer ins Inventar");
BauSystem.MESSAGE.send("AUTOSTART_COMMAND_HELP", p);
}
@Register
public void genericCommand(Player p) {
SWUtils.giveItemToPlayer(p, AutostartListener.WAND);
SWUtils.giveItemToPlayer(p, AutostartListener.getWandItem(p));
}
}

Datei anzeigen

@ -19,10 +19,11 @@
package de.steamwar.bausystem.features.autostart;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.LinkageType;
import de.steamwar.bausystem.linkage.Linked;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.inventory.SWItem;
import org.bukkit.Material;
import org.bukkit.entity.Player;
@ -40,7 +41,7 @@ public class AutoStartGuiItem extends BauGuiItem {
@Override
public ItemStack getItem(Player player) {
return new SWItem(Material.FIREWORK_STAR, "§eAutostartTimer", Arrays.asList("§eRechtsklick Block §8- §7Starte den Timer"), false, null).getItemStack();
return new SWItem(Material.FIREWORK_STAR, BauSystem.MESSAGE.parse("AUTOSTART_ITEM_NAME", player), Arrays.asList(BauSystem.MESSAGE.parse("AUTOSTART_ITEM_LORE", player)), false, null).getItemStack();
}
@Override

Datei anzeigen

@ -46,14 +46,16 @@ import java.util.Map;
@Linked(LinkageType.LISTENER)
public class AutostartListener implements Listener {
public static final ItemStack WAND = new SWItem(Material.BLAZE_ROD, "§eAutostartTimer", Arrays.asList("§eRechtsklick Block §8- §7Starte den Timer"), false, null).getItemStack();
public static ItemStack getWandItem(Player player) {
return new SWItem(Material.FIREWORK_STAR, BauSystem.MESSAGE.parse("AUTOSTART_ITEM_NAME", player), Arrays.asList(BauSystem.MESSAGE.parse("AUTOSTART_ITEM_LORE", player)), false, null).getItemStack();
}
@Getter
private Map<Region, Long> regionStartTime = new HashMap<>();
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
if (!AutostartListener.WAND.isSimilar(event.getItem())) {
if (!AutostartListener.getWandItem(event.getPlayer()).isSimilar(event.getItem())) {
return;
}
if (event.getClickedBlock() == null) {
@ -62,17 +64,17 @@ public class AutostartListener implements Listener {
Player player = event.getPlayer();
Region region = Region.getRegion(event.getClickedBlock().getLocation());
if (region.isGlobal()) {
player.sendMessage(BauSystem.PREFIX + "§cDu befindest dich derzeit in keiner Region");
BauSystem.MESSAGE.send("AUTOSTART_MESSAGE_NO-REGION", player);
return;
}
if (!region.hasType(RegionType.TESTBLOCK)) {
player.sendMessage(BauSystem.PREFIX + "§cDu befindest dich derzeit in keiner Region");
BauSystem.MESSAGE.send("AUTOSTART_MESSAGE_NO-REGION", player);
return;
}
if (regionStartTime.containsKey(region)) {
player.sendMessage(BauSystem.PREFIX + "§eDer AutostartTimer wurde zurückgesetzt");
BauSystem.MESSAGE.send("AUTOSTART_MESSAGE_RESET", player);
} else {
player.sendMessage(BauSystem.PREFIX + "§eAutostartTimer gestartet");
BauSystem.MESSAGE.send("AUTOSTART_MESSAGE_START", player);
}
regionStartTime.put(region, TPSUtils.currentTick.get());
}
@ -88,9 +90,9 @@ public class AutostartListener implements Listener {
if (!region.hasType(RegionType.TESTBLOCK)) return;
if (!region.inRegion(block.getLocation(), RegionType.TESTBLOCK, RegionExtensionType.EXTENSION)) return;
long tickDiff = TPSUtils.currentTick.get() - regionStartTime.remove(region);
RegionUtils.message(region, BauSystem.PREFIX + "§eZeit §7bis zur §eExplosion §7am Gegner§8:§e " + new SimpleDateFormat("mm:ss SSSS").format(new Date(tickDiff * 50)));
RegionUtils.message(region, BauSystem.PREFIX + "§eZeitdifferenz in ticks §7bis 60 Sekunden§8:§e " + (1200 - tickDiff));
RegionUtils.message(region, BauSystem.PREFIX + "§7Positiv, wenn zu wenig, negativ wenn zu viel");
RegionUtils.message(region, "AUTOSTART_MESSAGE_RESULT1", new SimpleDateFormat("mm:ss SSSS").format(new Date(tickDiff * 50)));
RegionUtils.message(region, "AUTOSTART_MESSAGE_RESULT2", (1200 - tickDiff));
RegionUtils.message(region, "AUTOSTART_MESSAGE_RESULT3");
});
}

Datei anzeigen

@ -14,7 +14,6 @@ import de.steamwar.bausystem.region.utils.RegionType;
import de.steamwar.command.SWCommand;
import de.steamwar.sql.Schematic;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent;
@ -56,7 +55,7 @@ public class RegionCommand extends SWCommand {
if(checkGlobalRegion(region, p)) return;
if (region.undo()) {
RegionUtils.message(region, BauSystem.PREFIX + "§7Letzte Aktion rückgangig gemacht");
RegionUtils.messageOLD(region, BauSystem.PREFIX + "§7Letzte Aktion rückgangig gemacht");
} else {
p.sendMessage(BauSystem.PREFIX + "§cNichts zum rückgängig machen");
}
@ -73,7 +72,7 @@ public class RegionCommand extends SWCommand {
}
if (region.redo()) {
RegionUtils.message(region, BauSystem.PREFIX + "§7Letzte Aktion wiederhohlt");
RegionUtils.messageOLD(region, BauSystem.PREFIX + "§7Letzte Aktion wiederhohlt");
} else {
p.sendMessage(BauSystem.PREFIX + "§cNichts zum wiederhohlen");
}
@ -97,7 +96,7 @@ public class RegionCommand extends SWCommand {
try {
region.reset(null, RegionType.NORMAL, RegionExtensionType.NORMAL, true);
RegionUtils.message(region, BauSystem.PREFIX + "§7Region zurückgesetzt");
RegionUtils.messageOLD(region, BauSystem.PREFIX + "§7Region zurückgesetzt");
} catch (IOException e) {
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen der Region");
Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e);
@ -117,7 +116,7 @@ public class RegionCommand extends SWCommand {
}
try {
region.reset(schem, RegionType.NORMAL, RegionExtensionType.NORMAL, true);
RegionUtils.message(region, BauSystem.PREFIX + "§7Region zurückgesetzt");
RegionUtils.messageOLD(region, BauSystem.PREFIX + "§7Region zurückgesetzt");
} catch (IOException e) {
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen der Region");
Bukkit.getLogger().log(Level.WARNING, "Failed reset", e);

Datei anzeigen

@ -36,7 +36,7 @@ public class ResetCommand extends SWCommand {
if (region == null) return;
try {
region.reset(null, RegionType.NORMAL);
RegionUtils.message(region, BauSystem.PREFIX + "§7Region zurückgesetzt");
RegionUtils.messageOLD(region, BauSystem.PREFIX + "§7Region zurückgesetzt");
} catch (IOException e) {
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen der Region");
Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e);
@ -55,7 +55,7 @@ public class ResetCommand extends SWCommand {
}
try {
region.reset(schem, RegionType.NORMAL);
RegionUtils.message(region, BauSystem.PREFIX + "§7Region zurückgesetzt");
RegionUtils.messageOLD(region, BauSystem.PREFIX + "§7Region zurückgesetzt");
} catch (IOException e) {
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen der Region");
Bukkit.getLogger().log(Level.WARNING, "Failed reset", e);

Datei anzeigen

@ -47,7 +47,7 @@ public class TestblockCommand extends SWCommand {
if (region == null) return;
try {
region.reset(RegionType.TESTBLOCK, regionExtensionType);
RegionUtils.message(region, BauSystem.PREFIX + "§7Testblock zurückgesetzt");
RegionUtils.messageOLD(region, BauSystem.PREFIX + "§7Testblock zurückgesetzt");
} catch (IOException e) {
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen des Testblocks");
Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e);
@ -76,7 +76,7 @@ public class TestblockCommand extends SWCommand {
}
try {
region.reset(schem, RegionType.TESTBLOCK, regionExtensionType);
RegionUtils.message(region, BauSystem.PREFIX + "§7Testblock zurückgesetzt");
RegionUtils.messageOLD(region, BauSystem.PREFIX + "§7Testblock zurückgesetzt");
} catch (IOException e) {
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen des Testblocks");
Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e);

Datei anzeigen

@ -2,6 +2,7 @@ package de.steamwar.bausystem.region;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.extent.clipboard.Clipboard;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.region.loader.RegionLoader;
import de.steamwar.bausystem.region.utils.RegionExtensionType;
import de.steamwar.bausystem.region.utils.RegionType;
@ -27,7 +28,7 @@ public class RegionUtils {
.forEach(player -> player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(s)));
}
public static void message(Region region, String s) {
public static void messageOLD(Region region, String s) {
Bukkit.getOnlinePlayers()
.stream()
.filter(player -> region.inRegion(player.getLocation(), RegionType.NORMAL, RegionExtensionType.NORMAL))
@ -35,6 +36,16 @@ public class RegionUtils {
.forEach(player -> player.sendMessage(s));
}
public static void message(Region region, String message, Object... objects) {
Bukkit.getOnlinePlayers()
.stream()
.filter(player -> region.inRegion(player.getLocation(), RegionType.NORMAL, RegionExtensionType.NORMAL))
.filter(player -> !region.isGlobal() || Region.getRegion(player.getLocation()).isGlobal())
.forEach(player -> {
BauSystem.MESSAGE.send(message, player, objects);
});
}
public static void message(Region region, Function<Player, String> function) {
Bukkit.getOnlinePlayers()
.stream()