Compare commits
17 Commits
Author | SHA1 | Date | |
---|---|---|---|
92c3eadf8f | |||
92f452df00 | |||
6eb7649e0d | |||
5c2cbaae58 | |||
0c69dc8991 | |||
68bed24137 | |||
5c1f9036c2 | |||
8488c5abdb | |||
e3189e9ab2 | |||
8c334ff5f0 | |||
4dfce3d325 | |||
00462799b9 | |||
9e78e32db4 | |||
28bb6f2109 | |||
61b05bcce9 | |||
5f4a90aabb | |||
a481ccf017 |
19
HEADER
Normal file
19
HEADER
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Stargate - A portal plugin for Bukkit
|
||||||
|
Copyright (C) 2011 Shaun (sturmeh)
|
||||||
|
Copyright (C) 2011 Dinnerbone
|
||||||
|
Copyright (C) 2011-2013 Steven "Drakia" Scott <Contact@TheDgtl.net>
|
||||||
|
Copyright (C) 2015-2020 Michael Smith (PseudoKnight)
|
||||||
|
Copyright (C) 2021-2022 Kristian Knarvik (EpicKnarvik97)
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
24
README.md
24
README.md
@ -7,7 +7,7 @@ can share a network or be split into clusters; they can be hidden on a network o
|
|||||||
- **Vault economy support** -- can add costs for create, destroy and use.
|
- **Vault economy support** -- can add costs for create, destroy and use.
|
||||||
- **Ability to create custom gate configurations**. Four different default gate configurations are available.
|
- **Ability to create custom gate configurations**. Four different default gate configurations are available.
|
||||||
- **Message customization**
|
- **Message customization**
|
||||||
- **Multiple built-in languages** (de, en, es, fr, hu, it, nb-no, nl, nn-no, pt-br, ru)
|
- **Multiple built-in languages** (de, en, es, fr, hu, it, ja, nb-no, nl, nn-no, pt-br, ru, zh_cn)
|
||||||
- **Teleport across worlds or servers** (BungeeCord supported)
|
- **Teleport across worlds or servers** (BungeeCord supported)
|
||||||
- **Vehicle teleportation** -- teleport minecarts, boats, horses, pigs and striders
|
- **Vehicle teleportation** -- teleport minecarts, boats, horses, pigs and striders
|
||||||
- **Leashed teleportation** -- teleport any creature in a leash with the player
|
- **Leashed teleportation** -- teleport any creature in a leash with the player
|
||||||
@ -26,6 +26,11 @@ This was originally TheDgtl's Bukkit port of the Stargate plugin for hMod by Din
|
|||||||
of [PseudoKnight's fork](https://github.com/PseudoKnight/Stargate-Bukkit). This fork's main purpose is to create a clean
|
of [PseudoKnight's fork](https://github.com/PseudoKnight/Stargate-Bukkit). This fork's main purpose is to create a clean
|
||||||
version of Stargate compliant with Spigot 1.17, even if it means changing the entire project's previous structure.
|
version of Stargate compliant with Spigot 1.17, even if it means changing the entire project's previous structure.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Stargate is licensed under the GNU Lesser General Public License Version 3.0. This includes every source and resource
|
||||||
|
file. See the HEADER file for a more detailed license description.
|
||||||
|
|
||||||
## Migration
|
## Migration
|
||||||
|
|
||||||
This plugin should be compatible with configurations from the Stargate plugin all the way back. The nethergate.gate
|
This plugin should be compatible with configurations from the Stargate plugin all the way back. The nethergate.gate
|
||||||
@ -298,7 +303,7 @@ while the per-gate costs re defined in the .gate files. To define a certain cost
|
|||||||
# Configuration
|
# Configuration
|
||||||
|
|
||||||
```
|
```
|
||||||
language - The language to use (Included languages: en, de, es, fr, hu, it, nb-no, nl, nn-no, pt-br, ru)
|
language - The language to use (Included languages: en, de, es, fr, hu, it, ja, nb-no, nl, nn-no, pt-br, ru, zh_cn)
|
||||||
adminUpdateAlert - Whether to alert admins about an available update when joining the server
|
adminUpdateAlert - Whether to alert admins about an available update when joining the server
|
||||||
folders:
|
folders:
|
||||||
portalFolder - The folder your portal databases are saved in
|
portalFolder - The folder your portal databases are saved in
|
||||||
@ -343,7 +348,7 @@ advanced:
|
|||||||
|
|
||||||
# Message Customization
|
# Message Customization
|
||||||
|
|
||||||
It is possible to customize all the messages Stargate displays, including the [Stargate] prefix. You can find the
|
It is possible to customize all the messages Stargate displays, including the \[Stargate] prefix. You can find the
|
||||||
strings in plugins/Stargate/lang/chosenLanguage.txt.
|
strings in plugins/Stargate/lang/chosenLanguage.txt.
|
||||||
|
|
||||||
If a string is removed, or left blank, it will default to the default english string. There are some special cases
|
If a string is removed, or left blank, it will default to the default english string. There are some special cases
|
||||||
@ -400,6 +405,19 @@ portalInfoServer=Server: %server%
|
|||||||
|
|
||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
|
#### \[Version 0.9.3.7] EpicKnarvik97 fork
|
||||||
|
|
||||||
|
- Adds the Japanese language file provided by spigot user furplag
|
||||||
|
|
||||||
|
#### \[Version 0.9.3.6] EpicKnarvik97 fork
|
||||||
|
|
||||||
|
- Adds the simplified Chinese language file provided by spigot user YKDZ
|
||||||
|
|
||||||
|
#### \[Version 0.9.3.5] EpicKnarvik97 fork
|
||||||
|
|
||||||
|
- Fixes the wait for player delay being too low by default
|
||||||
|
- Performs some minor code optimizations and restructuring
|
||||||
|
|
||||||
#### \[Version 0.9.3.4] EpicKnarvik97 fork
|
#### \[Version 0.9.3.4] EpicKnarvik97 fork
|
||||||
|
|
||||||
- Includes passengers of passengers when teleporting entities
|
- Includes passengers of passengers when teleporting entities
|
||||||
|
4
pom.xml
4
pom.xml
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<groupId>net.knarcraft</groupId>
|
<groupId>net.knarcraft</groupId>
|
||||||
<artifactId>Stargate</artifactId>
|
<artifactId>Stargate</artifactId>
|
||||||
<version>0.9.3.4</version>
|
<version>0.9.4.0</version>
|
||||||
|
|
||||||
<licenses>
|
<licenses>
|
||||||
<license>
|
<license>
|
||||||
@ -34,7 +34,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.18.1-R0.1-SNAPSHOT</version>
|
<version>1.19-R0.1-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.milkbowl.vault</groupId>
|
<groupId>net.milkbowl.vault</groupId>
|
||||||
|
@ -39,24 +39,44 @@ import java.util.Queue;
|
|||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Stargate - A portal plugin for Bukkit
|
||||||
|
Copyright (C) 2011 Shaun (sturmeh)
|
||||||
|
Copyright (C) 2011 Dinnerbone
|
||||||
|
Copyright (C) 2011-2013 Steven "Drakia" Scott <Contact@TheDgtl.net>
|
||||||
|
Copyright (C) 2015-2020 Michael Smith (PseudoKnight)
|
||||||
|
Copyright (C) 2021-2022 Kristian Knarvik (EpicKnarvik97)
|
||||||
|
|
||||||
|
The following license notice applies to all source and resource files in the Stargate project:
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The main class of the Stargate plugin
|
* The main class of the Stargate plugin
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class Stargate extends JavaPlugin {
|
public class Stargate extends JavaPlugin {
|
||||||
|
|
||||||
//Used for changing gate open/closed material.
|
|
||||||
private static final Queue<BlockChangeRequest> blockChangeRequestQueue = new LinkedList<>();
|
private static final Queue<BlockChangeRequest> blockChangeRequestQueue = new LinkedList<>();
|
||||||
private static final Queue<ChunkUnloadRequest> chunkUnloadQueue = new PriorityQueue<>();
|
private static final Queue<ChunkUnloadRequest> chunkUnloadQueue = new PriorityQueue<>();
|
||||||
|
|
||||||
private static Logger logger;
|
private static Logger logger;
|
||||||
private static Stargate stargate;
|
private static Stargate stargate;
|
||||||
|
|
||||||
private static String pluginVersion;
|
private static String pluginVersion;
|
||||||
|
|
||||||
private static PluginManager pluginManager;
|
private static PluginManager pluginManager;
|
||||||
private static StargateConfig stargateConfig;
|
private static StargateConfig stargateConfig;
|
||||||
|
|
||||||
private static String updateAvailable = null;
|
private static String updateAvailable = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -430,4 +450,5 @@ public class Stargate extends JavaPlugin {
|
|||||||
public static StargateConfig getStargateConfig() {
|
public static StargateConfig getStargateConfig() {
|
||||||
return stargateConfig;
|
return stargateConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ import net.knarcraft.stargate.portal.Portal;
|
|||||||
import net.knarcraft.stargate.portal.PortalRegistry;
|
import net.knarcraft.stargate.portal.PortalRegistry;
|
||||||
import net.knarcraft.stargate.portal.PortalSignDrawer;
|
import net.knarcraft.stargate.portal.PortalSignDrawer;
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@ -416,7 +415,7 @@ public class CommandConfig implements CommandExecutor {
|
|||||||
Object defaultValue = option.getDefaultValue();
|
Object defaultValue = option.getDefaultValue();
|
||||||
String stringValue = String.valueOf(defaultValue);
|
String stringValue = String.valueOf(defaultValue);
|
||||||
if (option.getDataType() == OptionDataType.STRING_LIST) {
|
if (option.getDataType() == OptionDataType.STRING_LIST) {
|
||||||
stringValue = "[" + StringUtils.join((String[]) defaultValue, ",") + "]";
|
stringValue = "[" + String.join(",", (String[]) defaultValue) + "]";
|
||||||
}
|
}
|
||||||
return ChatColor.GOLD + option.getName() + ChatColor.WHITE + " - " + ChatColor.GREEN + option.getDescription() +
|
return ChatColor.GOLD + option.getName() + ChatColor.WHITE + " - " + ChatColor.GREEN + option.getDescription() +
|
||||||
ChatColor.DARK_GRAY + " (Default: " + ChatColor.GRAY + stringValue + ChatColor.DARK_GRAY + ")";
|
ChatColor.DARK_GRAY + " (Default: " + ChatColor.GRAY + stringValue + ChatColor.DARK_GRAY + ")";
|
||||||
|
@ -2,12 +2,13 @@ package net.knarcraft.stargate.command;
|
|||||||
|
|
||||||
import net.knarcraft.stargate.Stargate;
|
import net.knarcraft.stargate.Stargate;
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
import org.apache.commons.lang.ArrayUtils;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This command represents any command which starts with stargate
|
* This command represents any command which starts with stargate
|
||||||
*
|
*
|
||||||
@ -25,7 +26,7 @@ public class CommandStarGate implements CommandExecutor {
|
|||||||
} else if (args[0].equalsIgnoreCase("reload")) {
|
} else if (args[0].equalsIgnoreCase("reload")) {
|
||||||
return new CommandReload().onCommand(commandSender, command, s, args);
|
return new CommandReload().onCommand(commandSender, command, s, args);
|
||||||
} else if (args[0].equalsIgnoreCase("config")) {
|
} else if (args[0].equalsIgnoreCase("config")) {
|
||||||
String[] subArgs = (String[]) ArrayUtils.remove(args, 0);
|
String[] subArgs = Arrays.copyOfRange(args, 1, args.length);
|
||||||
return new CommandConfig().onCommand(commandSender, command, s, subArgs);
|
return new CommandConfig().onCommand(commandSender, command, s, subArgs);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -35,4 +36,5 @@ public class CommandStarGate implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -217,22 +217,10 @@ public class ConfigTabCompleter implements TabCompleter {
|
|||||||
*/
|
*/
|
||||||
private List<ChatColor> getChatColors() {
|
private List<ChatColor> getChatColors() {
|
||||||
List<ChatColor> chatColors = new ArrayList<>();
|
List<ChatColor> chatColors = new ArrayList<>();
|
||||||
chatColors.add(ChatColor.WHITE);
|
char[] colors = new char[]{'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
|
||||||
chatColors.add(ChatColor.BLUE);
|
for (char color : colors) {
|
||||||
chatColors.add(ChatColor.DARK_BLUE);
|
chatColors.add(ChatColor.getByChar(color));
|
||||||
chatColors.add(ChatColor.DARK_PURPLE);
|
}
|
||||||
chatColors.add(ChatColor.LIGHT_PURPLE);
|
|
||||||
chatColors.add(ChatColor.GOLD);
|
|
||||||
chatColors.add(ChatColor.GREEN);
|
|
||||||
chatColors.add(ChatColor.BLACK);
|
|
||||||
chatColors.add(ChatColor.DARK_GREEN);
|
|
||||||
chatColors.add(ChatColor.DARK_RED);
|
|
||||||
chatColors.add(ChatColor.RED);
|
|
||||||
chatColors.add(ChatColor.AQUA);
|
|
||||||
chatColors.add(ChatColor.DARK_AQUA);
|
|
||||||
chatColors.add(ChatColor.DARK_GRAY);
|
|
||||||
chatColors.add(ChatColor.GRAY);
|
|
||||||
chatColors.add(ChatColor.YELLOW);
|
|
||||||
chatColors.add(ChatColor.of("#ed76d9"));
|
chatColors.add(ChatColor.of("#ed76d9"));
|
||||||
chatColors.add(ChatColor.of("#ffecb7"));
|
chatColors.add(ChatColor.of("#ffecb7"));
|
||||||
return chatColors;
|
return chatColors;
|
||||||
@ -249,11 +237,13 @@ public class ConfigTabCompleter implements TabCompleter {
|
|||||||
languages.add("fr");
|
languages.add("fr");
|
||||||
languages.add("hu");
|
languages.add("hu");
|
||||||
languages.add("it");
|
languages.add("it");
|
||||||
|
languages.add("ja");
|
||||||
languages.add("nb-no");
|
languages.add("nb-no");
|
||||||
languages.add("nl");
|
languages.add("nl");
|
||||||
languages.add("nn-no");
|
languages.add("nn-no");
|
||||||
languages.add("pt-br");
|
languages.add("pt-br");
|
||||||
languages.add("ru");
|
languages.add("ru");
|
||||||
|
languages.add("zh_cn");
|
||||||
//TODO: Generate this list dynamically by listing the language files in the jar and adding the user's custom
|
//TODO: Generate this list dynamically by listing the language files in the jar and adding the user's custom
|
||||||
// language files
|
// language files
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.knarcraft.stargate.command;
|
package net.knarcraft.stargate.command;
|
||||||
|
|
||||||
import org.apache.commons.lang.ArrayUtils;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
@ -9,6 +8,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29,7 +29,7 @@ public class StarGateTabCompleter implements TabCompleter {
|
|||||||
}
|
}
|
||||||
return matchingCommands;
|
return matchingCommands;
|
||||||
} else if (args.length > 1 && args[0].equalsIgnoreCase("config")) {
|
} else if (args.length > 1 && args[0].equalsIgnoreCase("config")) {
|
||||||
String[] subArgs = (String[]) ArrayUtils.remove(args, 0);
|
String[] subArgs = Arrays.copyOfRange(args, 1, args.length);
|
||||||
return new ConfigTabCompleter().onTabComplete(commandSender, command, s, subArgs);
|
return new ConfigTabCompleter().onTabComplete(commandSender, command, s, subArgs);
|
||||||
} else {
|
} else {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
|
@ -117,7 +117,7 @@ public enum ConfigOption {
|
|||||||
*/
|
*/
|
||||||
WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY("advanced.waitForPlayerAfterTeleportDelay",
|
WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY("advanced.waitForPlayerAfterTeleportDelay",
|
||||||
"The amount of ticks to wait before adding a player as passenger of a vehicle. On slow servers, " +
|
"The amount of ticks to wait before adding a player as passenger of a vehicle. On slow servers, " +
|
||||||
"a value of 6 is required to avoid client glitches after teleporting on a vehicle.", 1),
|
"a value of 6 is required to avoid client glitches after teleporting on a vehicle.", 6),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether to enable economy support for taking payment from players creating/destroying/using stargates
|
* Whether to enable economy support for taking payment from players creating/destroying/using stargates
|
||||||
|
@ -520,4 +520,5 @@ public final class StargateConfig {
|
|||||||
public LanguageLoader getLanguageLoader() {
|
public LanguageLoader getLanguageLoader() {
|
||||||
return languageLoader;
|
return languageLoader;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ import java.util.Map;
|
|||||||
* The Stargate gate config keeps track of all global config values related to gates
|
* The Stargate gate config keeps track of all global config values related to gates
|
||||||
*/
|
*/
|
||||||
public final class StargateGateConfig {
|
public final class StargateGateConfig {
|
||||||
|
|
||||||
private static final int activeTime = 10;
|
private static final int activeTime = 10;
|
||||||
private static final int openTime = 10;
|
private static final int openTime = 10;
|
||||||
private final Map<ConfigOption, Object> configOptions;
|
private final Map<ConfigOption, Object> configOptions;
|
||||||
@ -142,6 +143,9 @@ public final class StargateGateConfig {
|
|||||||
* @return <p>The delay to use before adding a player as passenger of a teleported vehicle</p>
|
* @return <p>The delay to use before adding a player as passenger of a teleported vehicle</p>
|
||||||
*/
|
*/
|
||||||
public int waitForPlayerAfterTeleportDelay() {
|
public int waitForPlayerAfterTeleportDelay() {
|
||||||
|
if ((int) configOptions.get(ConfigOption.WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY) < 2) {
|
||||||
|
configOptions.put(ConfigOption.WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY, 6);
|
||||||
|
}
|
||||||
return (int) configOptions.get(ConfigOption.WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY);
|
return (int) configOptions.get(ConfigOption.WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,4 +324,5 @@ public final class StargateGateConfig {
|
|||||||
PortalSignDrawer.setHighlightColor(ChatColor.WHITE);
|
PortalSignDrawer.setHighlightColor(ChatColor.WHITE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,11 @@ public class RelativeBlockVector {
|
|||||||
* @return <p>A new relative block vector with the property altered</p>
|
* @return <p>A new relative block vector with the property altered</p>
|
||||||
*/
|
*/
|
||||||
public RelativeBlockVector addToVector(Property propertyToAddTo, int valueToAdd) {
|
public RelativeBlockVector addToVector(Property propertyToAddTo, int valueToAdd) {
|
||||||
switch (propertyToAddTo) {
|
return switch (propertyToAddTo) {
|
||||||
case RIGHT:
|
case RIGHT -> new RelativeBlockVector(this.right + valueToAdd, this.down, this.out);
|
||||||
return new RelativeBlockVector(this.right + valueToAdd, this.down, this.out);
|
case DOWN -> new RelativeBlockVector(this.right, this.down + valueToAdd, this.out);
|
||||||
case DOWN:
|
case OUT -> new RelativeBlockVector(this.right, this.down, this.out + valueToAdd);
|
||||||
return new RelativeBlockVector(this.right, this.down + valueToAdd, this.out);
|
};
|
||||||
case OUT:
|
|
||||||
return new RelativeBlockVector(this.right, this.down, this.out + valueToAdd);
|
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException("Invalid relative block vector property given");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -33,6 +33,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
|
|||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -131,6 +132,7 @@ public class PlayerEventListener implements Listener {
|
|||||||
horse.setOwner(player);
|
horse.setOwner(player);
|
||||||
}
|
}
|
||||||
//Teleport the player's vehicle
|
//Teleport the player's vehicle
|
||||||
|
player.setVelocity(new Vector());
|
||||||
new VehicleTeleporter(destination, (Vehicle) playerVehicle).teleportEntity(entrancePortal);
|
new VehicleTeleporter(destination, (Vehicle) playerVehicle).teleportEntity(entrancePortal);
|
||||||
} else {
|
} else {
|
||||||
//Just teleport the player like normal
|
//Just teleport the player like normal
|
||||||
@ -228,11 +230,14 @@ public class PlayerEventListener implements Listener {
|
|||||||
EquipmentSlot hand = event.getHand();
|
EquipmentSlot hand = event.getHand();
|
||||||
if (hand != null && (PermissionHelper.hasPermission(player, "stargate.admin.dye") ||
|
if (hand != null && (PermissionHelper.hasPermission(player, "stargate.admin.dye") ||
|
||||||
portal.isOwner(player))) {
|
portal.isOwner(player))) {
|
||||||
String itemName = player.getInventory().getItem(hand).getType().toString();
|
ItemStack item = player.getInventory().getItem(hand);
|
||||||
if (itemName.endsWith("DYE") || itemName.endsWith("INK_SAC")) {
|
if (item != null) {
|
||||||
event.setUseInteractedBlock(Event.Result.ALLOW);
|
String itemName = item.getType().toString();
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), portal::drawSign, 1);
|
if (itemName.endsWith("DYE") || itemName.endsWith("INK_SAC")) {
|
||||||
return;
|
event.setUseInteractedBlock(Event.Result.ALLOW);
|
||||||
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), portal::drawSign, 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -323,7 +328,7 @@ public class PlayerEventListener implements Listener {
|
|||||||
} else {
|
} else {
|
||||||
//Display information about the portal if it has no sign
|
//Display information about the portal if it has no sign
|
||||||
ItemStack heldItem = player.getInventory().getItem(hand);
|
ItemStack heldItem = player.getInventory().getItem(hand);
|
||||||
if (heldItem.getType().isAir() || !heldItem.getType().isBlock()) {
|
if (heldItem != null && (heldItem.getType().isAir() || !heldItem.getType().isBlock())) {
|
||||||
displayPortalInfo(block, player);
|
displayPortalInfo(block, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,4 +49,5 @@ public class PluginEventListener implements Listener {
|
|||||||
Stargate.logInfo("Vault plugin lost.");
|
Stargate.logInfo("Vault plugin lost.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -46,4 +46,5 @@ public class WorldEventListener implements Listener {
|
|||||||
PortalRegistry.clearPortals(world);
|
PortalRegistry.clearPortals(world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -345,4 +345,5 @@ public class Portal {
|
|||||||
return cleanNetwork.equalsIgnoreCase(other.cleanNetwork);
|
return cleanNetwork.equalsIgnoreCase(other.cleanNetwork);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -448,4 +448,5 @@ public class PortalHandler {
|
|||||||
}
|
}
|
||||||
return input.replaceAll("[|:#]", "").trim();
|
return input.replaceAll("[|:#]", "").trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,10 @@ public class PlayerTeleporter extends Teleporter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Calculate the exit velocity of the player
|
||||||
|
Vector newVelocityDirection = DirectionHelper.getDirectionVectorFromYaw(portal.getYaw());
|
||||||
|
Vector newVelocity = newVelocityDirection.multiply(velocity * Stargate.getGateConfig().getExitVelocity());
|
||||||
|
|
||||||
//Load chunks to make sure not to teleport to the void
|
//Load chunks to make sure not to teleport to the void
|
||||||
loadChunks();
|
loadChunks();
|
||||||
|
|
||||||
@ -56,7 +60,7 @@ public class PlayerTeleporter extends Teleporter {
|
|||||||
TeleportHelper.teleportLeashedCreatures(player, origin, portal);
|
TeleportHelper.teleportLeashedCreatures(player, origin, portal);
|
||||||
|
|
||||||
if (player.eject()) {
|
if (player.eject()) {
|
||||||
TeleportHelper.handleEntityPassengers(passengers, player, origin, portal, exit.getDirection());
|
TeleportHelper.handleEntityPassengers(passengers, player, origin, portal, exit.getDirection(), newVelocity);
|
||||||
}
|
}
|
||||||
|
|
||||||
//If no event is passed in, assume it's a teleport, and act as such
|
//If no event is passed in, assume it's a teleport, and act as such
|
||||||
@ -68,11 +72,7 @@ public class PlayerTeleporter extends Teleporter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Set the velocity of the teleported player after the teleportation is finished
|
//Set the velocity of the teleported player after the teleportation is finished
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), () -> {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), () -> player.setVelocity(newVelocity), 1);
|
||||||
Vector newVelocityDirection = DirectionHelper.getDirectionVectorFromYaw(portal.getYaw());
|
|
||||||
Vector newVelocity = newVelocityDirection.multiply(velocity * Stargate.getGateConfig().getExitVelocity());
|
|
||||||
player.setVelocity(newVelocity);
|
|
||||||
}, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ import org.bukkit.entity.AbstractHorse;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.scheduler.BukkitScheduler;
|
import org.bukkit.scheduler.BukkitScheduler;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -83,7 +84,8 @@ public abstract class Teleporter {
|
|||||||
loadChunks();
|
loadChunks();
|
||||||
|
|
||||||
if (teleportedEntity.eject()) {
|
if (teleportedEntity.eject()) {
|
||||||
TeleportHelper.handleEntityPassengers(passengers, teleportedEntity, origin, portal, exit.getDirection());
|
TeleportHelper.handleEntityPassengers(passengers, teleportedEntity, origin, portal, exit.getDirection(),
|
||||||
|
new Vector());
|
||||||
}
|
}
|
||||||
teleportedEntity.teleport(exit);
|
teleportedEntity.teleport(exit);
|
||||||
return true;
|
return true;
|
||||||
|
@ -12,6 +12,7 @@ import org.bukkit.entity.Boat;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Vehicle;
|
import org.bukkit.entity.Vehicle;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -57,7 +58,10 @@ public class VehicleTeleporter extends EntityTeleporter {
|
|||||||
Vector newVelocity = newVelocityDirection.multiply(velocity);
|
Vector newVelocity = newVelocityDirection.multiply(velocity);
|
||||||
|
|
||||||
//Call the StargateEntityPortalEvent to allow plugins to change destination
|
//Call the StargateEntityPortalEvent to allow plugins to change destination
|
||||||
triggerPortalEvent(origin, new StargateEntityPortalEvent(teleportingVehicle, origin, portal, exit));
|
exit = triggerPortalEvent(origin, new StargateEntityPortalEvent(teleportingVehicle, origin, portal, exit));
|
||||||
|
if (exit == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//Teleport the vehicle
|
//Teleport the vehicle
|
||||||
return teleportVehicle(exit, newVelocity, origin);
|
return teleportVehicle(exit, newVelocity, origin);
|
||||||
@ -129,11 +133,18 @@ public class VehicleTeleporter extends EntityTeleporter {
|
|||||||
*/
|
*/
|
||||||
private void teleportVehicle(List<Entity> passengers, Location exit, Vector newVelocity, Portal origin) {
|
private void teleportVehicle(List<Entity> passengers, Location exit, Vector newVelocity, Portal origin) {
|
||||||
if (teleportingVehicle.eject()) {
|
if (teleportingVehicle.eject()) {
|
||||||
TeleportHelper.handleEntityPassengers(passengers, teleportingVehicle, origin, portal, exit.getDirection());
|
TeleportHelper.handleEntityPassengers(passengers, teleportingVehicle, origin, portal, exit.getDirection(),
|
||||||
|
newVelocity);
|
||||||
}
|
}
|
||||||
teleportingVehicle.teleport(exit);
|
Stargate.debug("VehicleTeleporter::teleportVehicle", "Teleporting " + teleportingVehicle +
|
||||||
|
" to final location " + exit + " with direction " + exit.getDirection());
|
||||||
|
teleportingVehicle.teleport(exit, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||||
scheduler.scheduleSyncDelayedTask(Stargate.getInstance(),
|
scheduler.scheduleSyncDelayedTask(Stargate.getInstance(),
|
||||||
() -> teleportingVehicle.setVelocity(newVelocity), 1);
|
() -> {
|
||||||
|
Stargate.debug("VehicleTeleporter::teleportVehicle", "Setting velocity " + newVelocity +
|
||||||
|
" for vehicle " + teleportingVehicle);
|
||||||
|
teleportingVehicle.setVelocity(newVelocity);
|
||||||
|
}, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -162,7 +173,8 @@ public class VehicleTeleporter extends EntityTeleporter {
|
|||||||
}
|
}
|
||||||
//Remove the old vehicle
|
//Remove the old vehicle
|
||||||
if (teleportingVehicle.eject()) {
|
if (teleportingVehicle.eject()) {
|
||||||
TeleportHelper.handleEntityPassengers(passengers, newVehicle, origin, portal, exit.getDirection());
|
TeleportHelper.handleEntityPassengers(passengers, newVehicle, origin, portal, exit.getDirection(),
|
||||||
|
newVelocity);
|
||||||
}
|
}
|
||||||
teleportingVehicle.remove();
|
teleportingVehicle.remove();
|
||||||
scheduler.scheduleSyncDelayedTask(Stargate.getInstance(), () -> newVehicle.setVelocity(newVelocity), 1);
|
scheduler.scheduleSyncDelayedTask(Stargate.getInstance(), () -> newVehicle.setVelocity(newVelocity), 1);
|
||||||
|
@ -4,6 +4,7 @@ import net.knarcraft.stargate.Stargate;
|
|||||||
import net.knarcraft.stargate.portal.Portal;
|
import net.knarcraft.stargate.portal.Portal;
|
||||||
import net.knarcraft.stargate.portal.teleporter.EntityTeleporter;
|
import net.knarcraft.stargate.portal.teleporter.EntityTeleporter;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Creature;
|
import org.bukkit.entity.Creature;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -78,14 +79,28 @@ public final class TeleportHelper {
|
|||||||
* @param targetVehicle <p>The entity to add the passenger to</p>
|
* @param targetVehicle <p>The entity to add the passenger to</p>
|
||||||
* @param passenger <p>The passenger to teleport and add</p>
|
* @param passenger <p>The passenger to teleport and add</p>
|
||||||
* @param exitDirection <p>The direction of any passengers exiting the stargate</p>
|
* @param exitDirection <p>The direction of any passengers exiting the stargate</p>
|
||||||
|
* @param newVelocity <p>The new velocity of the teleported passenger</p>
|
||||||
*/
|
*/
|
||||||
public static void teleportAndAddPassenger(Entity targetVehicle, Entity passenger, Vector exitDirection) {
|
public static void teleportAndAddPassenger(Entity targetVehicle, Entity passenger, Vector exitDirection,
|
||||||
if (!passenger.teleport(targetVehicle.getLocation().clone().setDirection(exitDirection))) {
|
Vector newVelocity) {
|
||||||
Stargate.debug("handleVehiclePassengers", "Failed to teleport passenger" + passenger);
|
Location passengerExit = targetVehicle.getLocation().clone().setDirection(exitDirection);
|
||||||
|
if (!passenger.teleport(passengerExit)) {
|
||||||
|
Stargate.debug("TeleportHelper::handleVehiclePassengers", "Failed to teleport passenger" +
|
||||||
|
passenger);
|
||||||
|
} else {
|
||||||
|
Stargate.debug("TeleportHelper::handleVehiclePassengers", "Teleported " + passenger +
|
||||||
|
" to " + passengerExit);
|
||||||
}
|
}
|
||||||
if (!targetVehicle.addPassenger(passenger)) {
|
if (!targetVehicle.addPassenger(passenger)) {
|
||||||
Stargate.debug("handleVehiclePassengers", "Failed to add passenger" + passenger);
|
Stargate.debug("TeleportHelper::handleVehiclePassengers", "Failed to add passenger" +
|
||||||
|
passenger);
|
||||||
|
} else {
|
||||||
|
Stargate.debug("TeleportHelper::handleVehiclePassengers", "Added passenger " + passenger +
|
||||||
|
" to " + targetVehicle);
|
||||||
}
|
}
|
||||||
|
Stargate.debug("VehicleTeleporter::teleportVehicle", "Setting velocity " + newVelocity +
|
||||||
|
" for passenger " + passenger);
|
||||||
|
passenger.setVelocity(newVelocity);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -96,9 +111,10 @@ public final class TeleportHelper {
|
|||||||
* @param origin <p>The portal the entity teleported from</p>
|
* @param origin <p>The portal the entity teleported from</p>
|
||||||
* @param target <p>The portal the entity is teleporting to</p>
|
* @param target <p>The portal the entity is teleporting to</p>
|
||||||
* @param exitRotation <p>The rotation of any passengers exiting the stargate</p>
|
* @param exitRotation <p>The rotation of any passengers exiting the stargate</p>
|
||||||
|
* @param newVelocity <p>The new velocity of the teleported passengers</p>
|
||||||
*/
|
*/
|
||||||
public static void handleEntityPassengers(List<Entity> passengers, Entity entity, Portal origin, Portal target,
|
public static void handleEntityPassengers(List<Entity> passengers, Entity entity, Portal origin, Portal target,
|
||||||
Vector exitRotation) {
|
Vector exitRotation, Vector newVelocity) {
|
||||||
for (Entity passenger : passengers) {
|
for (Entity passenger : passengers) {
|
||||||
List<Entity> passengerPassengers = passenger.getPassengers();
|
List<Entity> passengerPassengers = passenger.getPassengers();
|
||||||
if (!passengerPassengers.isEmpty()) {
|
if (!passengerPassengers.isEmpty()) {
|
||||||
@ -107,14 +123,14 @@ public final class TeleportHelper {
|
|||||||
}
|
}
|
||||||
if (passenger.eject()) {
|
if (passenger.eject()) {
|
||||||
//Teleport any passengers of the passenger
|
//Teleport any passengers of the passenger
|
||||||
handleEntityPassengers(passengerPassengers, passenger, origin, target, exitRotation);
|
handleEntityPassengers(passengerPassengers, passenger, origin, target, exitRotation, newVelocity);
|
||||||
}
|
}
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), () -> {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), () -> {
|
||||||
if (passenger instanceof Player player) {
|
if (passenger instanceof Player player) {
|
||||||
//Teleport any creatures leashed by the player in a 15-block range
|
//Teleport any creatures leashed by the player in a 15-block range
|
||||||
teleportLeashedCreatures(player, origin, target);
|
teleportLeashedCreatures(player, origin, target);
|
||||||
}
|
}
|
||||||
TeleportHelper.teleportAndAddPassenger(entity, passenger, exitRotation);
|
teleportAndAddPassenger(entity, passenger, exitRotation, newVelocity);
|
||||||
}, passenger instanceof Player ? Stargate.getGateConfig().waitForPlayerAfterTeleportDelay() : 0);
|
}, passenger instanceof Player ? Stargate.getGateConfig().waitForPlayerAfterTeleportDelay() : 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# stargate Configuration File
|
# stargate Configuration File
|
||||||
# Main stargate config
|
# Main stargate config
|
||||||
|
|
||||||
# language - The language file to load for messages
|
# language - The language file to load for messages (de,en,es,fr,hu,it,ja,nb-no,nl,nn-no,pt-br,ru,zh_cn)
|
||||||
language: en
|
language: en
|
||||||
# adminUpdateAlert - Whether to alert admins about new plugin updates
|
# adminUpdateAlert - Whether to alert admins about new plugin updates
|
||||||
adminUpdateAlert: true
|
adminUpdateAlert: true
|
||||||
@ -57,9 +57,9 @@ gates:
|
|||||||
# enableCraftBookRemoveOnEjectFix - Whether to enable a fix that causes loss of NBT data, but allows vehicle teleportation to work when CraftBook's remove minecart/boat on eject setting is enabled
|
# enableCraftBookRemoveOnEjectFix - Whether to enable a fix that causes loss of NBT data, but allows vehicle teleportation to work when CraftBook's remove minecart/boat on eject setting is enabled
|
||||||
enableCraftBookRemoveOnEjectFix: false
|
enableCraftBookRemoveOnEjectFix: false
|
||||||
|
|
||||||
# I------------I-------------I #
|
#############################
|
||||||
# stargate economy options #
|
# stargate economy options #
|
||||||
# I------------I-------------I #
|
############################
|
||||||
economy:
|
economy:
|
||||||
# useEconomy - Whether to use an economy plugin
|
# useEconomy - Whether to use an economy plugin
|
||||||
useEconomy: false
|
useEconomy: false
|
||||||
@ -78,9 +78,9 @@ economy:
|
|||||||
# freeGatesColor - The color to use for marking free gates
|
# freeGatesColor - The color to use for marking free gates
|
||||||
freeGatesColor: DARK_GREEN
|
freeGatesColor: DARK_GREEN
|
||||||
|
|
||||||
# I-------I-------I #
|
#################
|
||||||
# Debug options #
|
# Debug options #
|
||||||
# I-------I-------I #
|
#################
|
||||||
debugging:
|
debugging:
|
||||||
# debug - Debug -- Only enable if you have issues, massive console output
|
# debug - Debug -- Only enable if you have issues, massive console output
|
||||||
debug: false
|
debug: false
|
||||||
|
44
src/main/resources/lang/ja.txt
Normal file
44
src/main/resources/lang/ja.txt
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
author=furplag
|
||||||
|
prefix=[Stargate]
|
||||||
|
teleportMsg=テレポート
|
||||||
|
destroyMsg=ゲートが破壊されました
|
||||||
|
invalidMsg=無効な行き先
|
||||||
|
blockMsg=ブロックされた行き先
|
||||||
|
destEmpty=行き先リストが空です
|
||||||
|
denyMsg=アクセスが拒否されました
|
||||||
|
reloaded= Stargate をリロードしました
|
||||||
|
|
||||||
|
ecoDeduct=%cost% の値引き
|
||||||
|
ecoRefund=%cost% の返金
|
||||||
|
ecoObtain= Stargate %portal% から %cost% を得ました
|
||||||
|
ecoInFunds=資金の不足
|
||||||
|
ecoLoadError= Vault が読み込まれましたが、Economy プラグインをフックできませんでした
|
||||||
|
vaultLoadError=Economy は有効になっていますが、Vault をロードできないため Economy は無効化されました
|
||||||
|
vaultLoaded= Vault v%version% が見つかりました
|
||||||
|
|
||||||
|
createMsg=ゲートが作成されました
|
||||||
|
createNetDeny=対象のネットワークにアクセスできません
|
||||||
|
createGateDeny=対象のゲートレイアウトにアクセスできません
|
||||||
|
createPersonal=パーソナルネットワーク上にゲートを作成する
|
||||||
|
createNameLength=ゲート名が短すぎるか長すぎます
|
||||||
|
createExists=すでに存在するゲート名です
|
||||||
|
createFull=対象のネットワークはいっぱいです
|
||||||
|
createWorldDeny=あなたはその世界にアクセスできません
|
||||||
|
createConflict=ゲートが既存のゲートと競合しています
|
||||||
|
|
||||||
|
signRightClick=右クリック
|
||||||
|
signToUse=ゲートを使用する
|
||||||
|
signRandom=ランダム
|
||||||
|
signDisconnected=切断
|
||||||
|
signInvalidGate=無効なゲート
|
||||||
|
|
||||||
|
bungeeDisabled=BungeeCord サポートは無効になっています
|
||||||
|
bungeeDeny=BungeeCord ゲートを作成する権限がありません
|
||||||
|
bungeeEmpty=BungeeCord ゲートには、行き先とネットワークの両方が必要です
|
||||||
|
bungeeSign=テレポート先:
|
||||||
|
|
||||||
|
portalInfoTitle=[STARGATE INFO]
|
||||||
|
portalInfoName=ゲート名: %name%
|
||||||
|
portalInfoDestination=行き先: %destination%
|
||||||
|
portalInfoNetwork=ネットワーク: %network%
|
||||||
|
portalInfoServer=サーバー: %server%
|
39
src/main/resources/lang/zh_cn.txt
Normal file
39
src/main/resources/lang/zh_cn.txt
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
author=YKDZ
|
||||||
|
signRightClick=右键
|
||||||
|
ecoLoadError=Vault 已加载, 但未检测到合适的经济插件
|
||||||
|
createConflict=星门与现有星门冲突
|
||||||
|
invalidMsg=无效的目的地
|
||||||
|
prefix=[星门]
|
||||||
|
ecoObtain=从星门 %portal% 收取了 %cost%
|
||||||
|
vaultLoaded=检测到 Vault v%version%
|
||||||
|
reloaded=星门插件已重载
|
||||||
|
bungeeDeny=你没有创建跨服星门的权限.
|
||||||
|
signToUse=以使用星门
|
||||||
|
signInvalidGate=未知星门
|
||||||
|
bungeeEmpty=跨服星门需要提供目的地和网络.
|
||||||
|
createMsg=星门已创建
|
||||||
|
bungeeDisabled=跨服功能已被禁用.
|
||||||
|
blockMsg=目的地被阻挡
|
||||||
|
ecoInFunds=余额不足
|
||||||
|
createNameLength=名称过短或过长.
|
||||||
|
vaultLoadError=未检测到Vault. 经济模块已禁用
|
||||||
|
denyMsg=访问被拒
|
||||||
|
ecoDeduct=花费 %cost%
|
||||||
|
signDisconnected=已取消链接
|
||||||
|
createNetDeny=你没有这个星门网络的许可
|
||||||
|
bungeeSign=传送到
|
||||||
|
portalInfoName=名称: %name%
|
||||||
|
destroyMsg=星门已被破坏
|
||||||
|
portalInfoTitle=[星门信息]
|
||||||
|
createExists=与已有星门重名
|
||||||
|
teleportMsg=已传送
|
||||||
|
createGateDeny=你没有使用这个星门结构的权限
|
||||||
|
signRandom=随机
|
||||||
|
portalInfoServer=服务器: %server%
|
||||||
|
createWorldDeny=你没有链接这个世界的权限
|
||||||
|
portalInfoDestination=目的地: %destination%
|
||||||
|
portalInfoNetwork=星门网络: %network%
|
||||||
|
destEmpty=目的地列表为空
|
||||||
|
createPersonal=在私人网络中创建星门
|
||||||
|
ecoRefund=退款 %cost%
|
||||||
|
createFull=此星门网络已满
|
@ -1,11 +1,11 @@
|
|||||||
name: Stargate
|
name: Stargate
|
||||||
main: net.knarcraft.stargate.Stargate
|
main: net.knarcraft.stargate.Stargate
|
||||||
version: 0.9.3.4
|
version: 0.9.4.0
|
||||||
description: Stargate mod for Bukkit Revived
|
description: Stargate mod for Bukkit Revived
|
||||||
author: EpicKnarvik97
|
author: EpicKnarvik97
|
||||||
authors: [ Drakia, PseudoKnight, EpicKnarvik97 ]
|
authors: [ Drakia, PseudoKnight, EpicKnarvik97 ]
|
||||||
website: https://git.knarcraft.net/EpicKnarvik97/Stargate
|
website: https://git.knarcraft.net/EpicKnarvik97/Stargate
|
||||||
api-version: 1.18
|
api-version: 1.19
|
||||||
softdepend: [ Vault ]
|
softdepend: [ Vault ]
|
||||||
commands:
|
commands:
|
||||||
stargate:
|
stargate:
|
||||||
|
Reference in New Issue
Block a user