list = new ArrayList<>();
18 | list.add(msgs.getListPrefix());
19 | for (AddonsHandler.Addons addon : AddonsHandler.Addons.values()) {
20 | String str = msgs.getListDisabled();
21 | if (addon.isEnabled())
22 | str = msgs.getListEnabled();
23 | list.add(str.replace("%addon%", addon.name()));
24 | }
25 | msgs.sms(sendi, list);
26 | }
27 |
28 | @Override
29 | public String getHelp() {
30 | return Main.getInstance().msgs.getBaseList();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_Version.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.cmds;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
5 | import me.SuperRonanCraft.BetterRTP.references.messages.Message;
6 | import me.SuperRonanCraft.BetterRTPAddons.AddonMessages;
7 | import me.SuperRonanCraft.BetterRTPAddons.AddonsHandler;
8 | import me.SuperRonanCraft.BetterRTPAddons.Main;
9 | import me.SuperRonanCraft.BetterRTPAddons.util.Message_ADDONS;
10 | import org.bukkit.command.CommandSender;
11 |
12 | import java.util.ArrayList;
13 | import java.util.List;
14 |
15 | public class AddonsCommand_Version implements AddonsCommands {
16 |
17 | @Override
18 | public void execute(CommandSender sendi, String label, String[] args) {
19 | Message_ADDONS.sms(sendi, "&aVersion #&e" + Main.getInstance().getDescription().getVersion());
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommands.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.cmds;
2 |
3 | import org.bukkit.command.CommandSender;
4 |
5 | public interface AddonsCommands {
6 |
7 | void execute(CommandSender sendi, String label, String[] args);
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommandsTabable.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.cmds;
2 |
3 | import org.bukkit.command.CommandSender;
4 |
5 | public interface AddonsCommandsTabable {
6 |
7 | void execute(CommandSender sendi, String label, String[] args);
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/DatabaseColumn.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.database;
2 |
3 | public abstract interface DatabaseColumn {
4 |
5 | String getName();
6 |
7 | String getType();
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Error.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.database;
2 |
3 | import me.SuperRonanCraft.BetterRTPAddons.Main;
4 |
5 | import java.util.logging.Level;
6 |
7 | public class Error {
8 |
9 | public static void execute(Main plugin, Exception ex){
10 | plugin.getLogger().log(Level.SEVERE, "Couldn't execute MySQL statement: ", ex);
11 | }
12 |
13 | public static void close(Main plugin, Exception ex){
14 | plugin.getLogger().log(Level.SEVERE, "Failed to close MySQL connection: ", ex);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/database/Errors.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.database;
2 |
3 | public class Errors {
4 | public static String sqlConnectionExecute(){
5 | return "Couldn't execute MySQL statement: ";
6 | }
7 | public static String sqlConnectionClose(){
8 | return "Failed to close MySQL connection: ";
9 | }
10 | public static String noSQLConnection(){
11 | return "Unable to retreive MYSQL connection: ";
12 | }
13 | public static String noTableFound(){
14 | return "Database Error: No Table Found";
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/packets/WrapperPlayServerBlockChange.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.packets;
2 |
3 | import org.bukkit.Location;
4 | import org.bukkit.World;
5 |
6 | import com.comphenix.protocol.PacketType;
7 | import com.comphenix.protocol.events.PacketContainer;
8 | import com.comphenix.protocol.wrappers.BlockPosition;
9 | import com.comphenix.protocol.wrappers.WrappedBlockData;
10 |
11 | public class WrapperPlayServerBlockChange extends AbstractPacket {
12 | public static final PacketType TYPE = PacketType.Play.Server.BLOCK_CHANGE;
13 |
14 | public WrapperPlayServerBlockChange() {
15 | super(new PacketContainer(TYPE), TYPE);
16 | handle.getModifier().writeDefaults();
17 | }
18 |
19 | public WrapperPlayServerBlockChange(PacketContainer packet) {
20 | super(packet, TYPE);
21 | }
22 |
23 | /**
24 | * Retrieve Location.
25 | *
26 | * Notes: block Coordinates
27 | *
28 | * @return The current Location
29 | */
30 | public BlockPosition getLocation() {
31 | return handle.getBlockPositionModifier().read(0);
32 | }
33 |
34 | /**
35 | * Set Location.
36 | *
37 | * @param value - new value.
38 | */
39 | public void setLocation(BlockPosition value) {
40 | handle.getBlockPositionModifier().write(0, value);
41 | }
42 |
43 | /**
44 | * Retrieve the Bukkit Location.
45 | *
46 | * @param world World for the location
47 | * @return Bukkit Location
48 | */
49 | public Location getBukkitLocation(World world) {
50 | return getLocation().toVector().toLocation(world);
51 | }
52 |
53 | /**
54 | * Retrieve Block Data.
55 | *
56 | * @return The current Block Data
57 | */
58 | public WrappedBlockData getBlockData() {
59 | return handle.getBlockData().read(0);
60 | }
61 |
62 | /**
63 | * Set Block Data.
64 | *
65 | * @param value - new value.
66 | */
67 | public void setBlockData(WrappedBlockData value) {
68 | handle.getBlockData().write(0, value);
69 | }
70 | }
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/util/LocSerialization.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.util;
2 |
3 | import org.bukkit.Bukkit;
4 | import org.bukkit.Location;
5 | import org.bukkit.World;
6 |
7 | public class LocSerialization {
8 |
9 | public static String getStringFromLocation(Location loc) {
10 | if (loc == null || loc.getWorld() == null) {
11 | return "";
12 | }
13 | return loc.getWorld().getName() + ":" + loc.getX() + ":" + loc.getY() + ":" + loc.getZ() + ":" + loc.getYaw() + ":" + loc.getPitch() ;
14 | }
15 |
16 | public static Location getLocationFromString(String s) {
17 | if (s == null || s.trim() == "") {
18 | return null;
19 | }
20 | final String[] parts = s.split(":");
21 | if (parts.length == 6) {
22 | World w = Bukkit.getServer().getWorld(parts[0]);
23 | double x = Double.parseDouble(parts[1]);
24 | double y = Double.parseDouble(parts[2]);
25 | double z = Double.parseDouble(parts[3]);
26 | float yaw = Float.parseFloat(parts[4]);
27 | float pitch = Float.parseFloat(parts[5]);
28 | return new Location(w, x, y, z, yaw, pitch);
29 | }
30 | return null;
31 | }
32 |
33 | public static String getLiteStringFromLocation(Location loc) {
34 | if (loc == null) {
35 | return "";
36 | }
37 | return loc.getWorld().getName() + ":" + loc.getBlockX() + ":" + loc.getBlockY() + ":" + loc.getBlockZ() ;
38 | }
39 |
40 | public static Location getLiteLocationFromString(String s) {
41 | if (s == null || s.trim() == "") {
42 | return null;
43 | }
44 | final String[] parts = s.split(":");
45 | if (parts.length == 4) {
46 | World w = Bukkit.getServer().getWorld(parts[0]);
47 | double x = Double.parseDouble(parts[1]);
48 | double y = Double.parseDouble(parts[2]);
49 | double z = Double.parseDouble(parts[3]);
50 | return new Location(w, x, y, z);
51 | }
52 | return null;
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/util/Message_ADDONS.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.util;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.references.file.FileData;
5 | import me.SuperRonanCraft.BetterRTP.references.messages.Message;
6 | import org.bukkit.command.CommandSender;
7 |
8 | import java.util.List;
9 |
10 | public class Message_ADDONS implements Message {
11 |
12 | public static Message_ADDONS msg = new Message_ADDONS();
13 |
14 | public static FileData getLang() {
15 | return BetterRTP.getInstance().getFiles().getLang();
16 | }
17 |
18 | @Override
19 | public FileData lang() {
20 | return getLang();
21 | }
22 |
23 | public static void sms(CommandSender sendi, String msg) {
24 | Message.sms(Message_ADDONS.msg, sendi, msg);
25 | }
26 |
27 | public static void sms(CommandSender sendi, String msg, Object placeholderInfo) {
28 | Message.sms(Message_ADDONS.msg, sendi, msg, placeholderInfo);
29 | }
30 |
31 | public static void sms(CommandSender sendi, String msg, List placeholderInfo) {
32 | Message.sms(Message_ADDONS.msg, sendi, msg, placeholderInfo);
33 | }
34 |
35 | public static void sms(CommandSender sendi, List msg, List placeholderInfo) {
36 | Message.sms(sendi, msg, placeholderInfo);
37 | }
38 |
39 | public static String getPrefix() {
40 | return Message.getPrefix(Message_ADDONS.msg);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/util/ReloadListener.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTPAddons.util;
2 |
3 | import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdReload;
4 | import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent;
5 | import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent_After;
6 | import me.SuperRonanCraft.BetterRTPAddons.Main;
7 | import org.bukkit.Bukkit;
8 | import org.bukkit.event.EventHandler;
9 | import org.bukkit.event.Listener;
10 |
11 | public class ReloadListener implements Listener {
12 |
13 | @EventHandler
14 | void reload(RTP_CommandEvent_After e) {
15 | if (e.getCmd() instanceof CmdReload)
16 | Main.getInstance().load();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/resources/config.yml:
--------------------------------------------------------------------------------
1 | Language-File: 'en.yml'
2 |
3 | ##Addon Flashback
4 | Flashback:
5 | Enabled: false
6 | Timer:
7 | Delay: 600 #In Seconds
8 | Warnings: #Warning messages to send to a player when X amount of time is left
9 | - 600: "&cYou have 10 minutes here, collect and explore and much as you can!"
10 | - 60: "&eYou have 60 seconds left! Grab all your materials quick!"
11 | - 1: "&eHang on! It's going to get bumpy!"
12 |
13 | ##Addon Logger
14 | Logger:
15 | Enabled: true
16 | LogToConsole: true
17 | Format: 'yyyy-MM-dd HH:mm:ss'
18 |
19 | ##Addon Portals
20 | Portals:
21 | Enabled: true
22 | IgnoreDelay: true
23 | IgnoreCooldown: true
24 |
25 | ##Addon ExtraEffects
26 | ExtraEffects:
27 | Enabled: true
28 | YOffset:
29 | Enabled: true
30 | Offset: 50
31 |
32 | ##Addon MagicStick
33 | MagicStick:
34 | Enabled: false
35 | GiveFirstJoin:
36 | Enabled: true
37 | Amount: 1
38 | Item:
39 | Name: '&d&lMagic RTP Stick &8(Right-Click)'
40 | Material: 'Stick'
41 | Lore:
42 | - ''
43 | - '&7Right click this stick and unlock'
44 | - '&7a brand new adventure!'
45 | Take: true
46 |
47 | #Addon Commands
48 | Commands:
49 | Enabled: false
50 | Events:
51 | Teleport:
52 | Enabled: true
53 | Commands:
54 | - 'broadcast &cThe player %player_name% just teleported!'
55 | Cancelled:
56 | Enabled: false
57 | Commands:
58 | - 'broadcast &e%player_name% moved while trying to rtp, chump!'
59 |
60 | #Addon Parties
61 | Parties:
62 | Enabled: true
63 |
64 | #Addon RTPMenu (Enable `/rtp` world select menu)
65 | RTPMenu:
66 | Enabled: false
67 | AutoRefresh: 0 #0 means menu will not refresh! (in ticks)
68 | Title: "Choose World"
69 | AutoCenter: true #If true, will ignore `Slot`, does not work if world list >= 9
70 | Lines: 3
71 | WorldList:
72 | - world:
73 | Name: '&7World'
74 | Item: 'map'
75 | Slot: 3
76 | Lore:
77 | - ''
78 | - '&8Click to rtp in world!'
79 | - ''
80 | - '&7Cooldown&8: &d%betterrtp_cooldown%'
81 | - world_nether:
82 | Name: '&cNether'
83 | Item: 'netherrack'
84 | Slot: 5
85 | Lore:
86 | - ''
87 | - '&8Click to rtp in world!'
88 | - ''
89 | - '&7Cooldown&8: &d%betterrtp_cooldown%'
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/resources/ideas.yml:
--------------------------------------------------------------------------------
1 | - Pre-rtp effects
2 | - Mute/Disable chat feature
3 | - More post-rtp effects
4 | - gui with configured/dynamic parameters
5 | - save previous rtps in database and show in gui
6 | - gui all the things!
--------------------------------------------------------------------------------
/BetterRTPAddons/src/main/resources/plugin.yml:
--------------------------------------------------------------------------------
1 | main: me.SuperRonanCraft.BetterRTPAddons.Main
2 | version: ${project.version}
3 | api-version: '1.13'
4 | folia-supported: true
5 | name: BetterRTPAddons
6 | depend: [BetterRTP]
7 | softdepend: [ProtocolLib]
8 |
9 | permissions:
10 | betterrtp.addon.portals:
11 | description: Ability to use the portals addon commands
12 |
13 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | Just... don't be rude.
2 |
--------------------------------------------------------------------------------
/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | **Plugin Version**:
2 |
3 |
4 |
5 |
6 | **Issue Type**:
7 |
8 |
9 | **Context**:
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 SuperRonanCraft
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/NodeServer/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | BetterRTP - API
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/NodeServer/index.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RonanPlugins/BetterRTP/a5400d18e513e05d2907872a7b1bb298423c24f5/NodeServer/index.js
--------------------------------------------------------------------------------
/NodeServer/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nodeserver",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC"
12 | }
13 |
--------------------------------------------------------------------------------
/NodeServer/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | me.ronancraft
8 | NodeServer
9 | 1.0-SNAPSHOT
10 |
11 |
12 | 17
13 | 17
14 |
15 |
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | Welcome to BetterRTP's repository!
3 |
4 |
5 | ## Where's the Lang files?/Want to Contribute translating?
6 | All language files are located [here](src/main/resources/lang)
7 | feel free to fork one of the language files and help translate!
8 |
9 | ## Libraries
10 | BetterRTP uses and is compiled with the following libraries:
11 |
12 | - [ParticleLib](https://github.com/ByteZ1337/ParticleLib) (included) - Particles library by ByteZ1337. Find all supported particles [here](https://github.com/ByteZ1337/ParticleLib/blob/master/src/main/java/xyz/xenondevs/particle/ParticleEffect.java)
13 | - [PaperLib](https://github.com/PaperMC/PaperLib) (included) - Library for interfacing with PaperMC specific APIs, used for async chunk loading.
14 | - [FoliaLib](https://github.com/TechnicallyCoded/FoliaLib) (included) - Library for interfacing with Folia specific APIs, used for cross-platform timers.
15 |
16 | ## Build instructions on Ubuntu
17 |
18 | mvn clean install
19 |
20 | The file will be in the Target file.
21 |
22 | ## Where's the Wiki?
23 | The wiki is available [here](../../wiki)!
24 |
25 |
26 | Chat with us on Discord
27 |
28 | Have a Suggestion? Make an issue!
29 |
30 |
31 | Thank you for viewing the Wiki for BetterRTP!
32 | Did this wiki help you out? Please give it a Star so I know it's getting use!
33 |
34 | Check out my other plugins!
35 |
36 |
--------------------------------------------------------------------------------
/RTPEachWorld/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | me.SuperRonanCraft
8 | BetterRTP-EachWorld
9 | jar
10 | 3.4.2-1
11 |
12 |
13 | 1.8
14 | 1.8
15 | UTF-8
16 |
17 |
18 |
19 |
20 |
21 | src/main/resources
22 | true
23 |
24 |
25 | ${project.artifactId}-${project.version}
26 |
27 |
28 |
29 | org.apache.maven.plugins
30 | maven-jar-plugin
31 | 3.2.0
32 |
33 | ../../Java/plugins
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | org.spigotmc
42 | spigot-api
43 | 1.8.8-R0.1-SNAPSHOT
44 | provided
45 |
46 |
47 | me.SuperRonanCraft
48 | BetterRTP
49 | 3.4.2-1
50 | provided
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/RTPEachWorld/src/me/superronancraft/rtpeachworld/Main.java:
--------------------------------------------------------------------------------
1 | package me.superronancraft.rtpeachworld;
2 |
3 | public class Main {
4 | }
5 |
--------------------------------------------------------------------------------
/RTPEachWorld/src/me/superronancraft/rtpeachworld/PlayerData.java:
--------------------------------------------------------------------------------
1 | package me.superronancraft.rtpeachworld;
2 |
3 | import org.bukkit.World;
4 | import org.bukkit.entity.Player;
5 |
6 | import java.util.HashMap;
7 |
8 | public class PlayerData {
9 |
10 | //HashMap>
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/lib/FactionsBridge-1.3.8.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RonanPlugins/BetterRTP/a5400d18e513e05d2907872a7b1bb298423c24f5/lib/FactionsBridge-1.3.8.jar
--------------------------------------------------------------------------------
/lib/Residence5.1.4.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RonanPlugins/BetterRTP/a5400d18e513e05d2907872a7b1bb298423c24f5/lib/Residence5.1.4.1.jar
--------------------------------------------------------------------------------
/settings.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 | ronanplugins-private
8 | ${env.MAVEN_REPO_USERNAME}
9 | ${env.MAVEN_REPO_PASSWORD}
10 |
11 |
12 |
13 |
14 |
15 | mirror-repo
16 | http://nexus.hc.to/content/repositories/pub_releases
17 | http://nexus.hc.to/content/repositories/pub_releases
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/PlayerInfo.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player;
2 |
3 | import java.util.HashMap;
4 |
5 | import org.bukkit.World;
6 | import org.bukkit.entity.Player;
7 | import org.bukkit.inventory.Inventory;
8 |
9 | import lombok.Getter;
10 | import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
11 |
12 | public class PlayerInfo {
13 |
14 | private final HashMap invs = new HashMap<>();
15 | //private final HashMap invType = new HashMap<>();
16 | @Getter private final HashMap invWorld = new HashMap<>();
17 | @Getter private final HashMap invNextInv = new HashMap<>();
18 | //private final HashMap cooldown = new HashMap<>();
19 | @Getter private final HashMap rtping = new HashMap<>();
20 | //private final HashMap> previousLocations = new HashMap<>();
21 | //private final HashMap rtpType = new HashMap<>();
22 |
23 | /*private void setInv(Player p, Inventory inv) {
24 | invs.put(p, inv);
25 | }*/
26 |
27 | /*private void setInvType(Player p, RTP_INV_SETTINGS type) {
28 | invType.put(p, type);
29 | }*/
30 |
31 | public void setInvWorld(Player p, World type) {
32 | invWorld.put(p, type);
33 | }
34 |
35 | public void setNextInv(Player p, RTP_INV_SETTINGS type) {
36 | invNextInv.put(p, type);
37 | }
38 |
39 | //--Logic--
40 |
41 | public Boolean playerExists(Player p) {
42 | return invs.containsKey(p);
43 | }
44 |
45 | private void unloadAll() {
46 | invs.clear();
47 | //invType.clear();
48 | invWorld.clear();
49 | invNextInv.clear();
50 | //cooldown.clear();
51 | rtping.clear();
52 | //previousLocations.clear();
53 | }
54 |
55 | private void unload(Player p) {
56 | clearInvs(p);
57 | //cooldown.remove(p);
58 | rtping.remove(p);
59 | //previousLocations.remove(p);
60 | }
61 |
62 | public void clearInvs(Player p) {
63 | invs.remove(p);
64 | //invType.remove(p);
65 | invWorld.remove(p);
66 | invNextInv.remove(p);
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommand.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands;
2 |
3 | import java.util.List;
4 |
5 | import org.bukkit.command.CommandSender;
6 | import org.jetbrains.annotations.NotNull;
7 |
8 | import me.SuperRonanCraft.BetterRTP.references.PermissionCheck;
9 |
10 | public interface RTPCommand {
11 |
12 | void execute(CommandSender sendi, String label, String[] args);
13 |
14 | List tabComplete(CommandSender sendi, String[] args);
15 |
16 | @NotNull PermissionCheck permission();
17 |
18 | String getName();
19 |
20 | default boolean isDebugOnly() {
21 | return false;
22 | }
23 |
24 | default boolean enabled() {
25 | return true;
26 | };
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommandHelpable.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands;
2 |
3 | public interface RTPCommandHelpable {
4 |
5 | String getHelp();
6 | }
7 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommandType.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands;
2 |
3 | import me.SuperRonanCraft.BetterRTP.player.commands.types.*;
4 |
5 | public enum RTPCommandType {
6 | BIOME(new CmdBiome()),
7 | EDIT(new CmdEdit()),
8 | HELP(new CmdHelp()),
9 | INFO(new CmdInfo()),
10 | LOCATION(new CmdLocation()),
11 | PLAYER(new CmdPlayer()),
12 | PLAYERSUDO(new CmdPlayerSudo()),
13 | QUEUE(new CmdQueue(), true),
14 | RELOAD(new CmdReload()),
15 | //SETTINGS(new CmdSettings(), true),
16 | TEST(new CmdTest(), true),
17 | VERSION(new CmdVersion()),
18 | WORLD(new CmdWorld()),
19 | DEV(new CmdDeveloper(), true),
20 | LOGGER(new CmdLogger(), true),
21 | ;
22 |
23 | private final RTPCommand cmd;
24 | private boolean debugOnly = false;
25 |
26 | RTPCommandType(RTPCommand cmd) {
27 | this.cmd = cmd;
28 | }
29 |
30 | RTPCommandType(RTPCommand cmd, boolean debugOnly) {
31 | this.cmd = cmd;
32 | this.debugOnly = debugOnly;
33 | }
34 |
35 | public boolean isDebugOnly() {
36 | return debugOnly;
37 | }
38 |
39 | public RTPCommand getCmd() {
40 | return cmd;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTP_SETUP_TYPE.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands;
2 |
3 | public enum RTP_SETUP_TYPE {
4 | DEFAULT,
5 | CUSTOM_WORLD,
6 | LOCATION,
7 | PERMISSIONGROUP
8 | }
9 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdBiome.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
4 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
5 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
6 | import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
7 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
8 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesUsage;
9 | import org.bukkit.command.CommandSender;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.ArrayList;
13 | import java.util.List;
14 |
15 | public class CmdBiome implements RTPCommand, RTPCommandHelpable {
16 |
17 | public String getName() {
18 | return "biome";
19 | }
20 |
21 | //rtp biome
22 | public void execute(CommandSender sendi, String label, String[] args) {
23 | if (args.length >= 2)
24 | CmdTeleport.teleport(sendi, label, null, HelperRTP_Info.getBiomes(args, 1, sendi));
25 | else
26 | usage(sendi, label);
27 | }
28 |
29 | public List tabComplete(CommandSender sendi, String[] args) {
30 | List list = new ArrayList<>();
31 | if (args.length >= 2)
32 | HelperRTP_Info.addBiomes(list, args);
33 | return list;
34 | }
35 |
36 | @NotNull public PermissionNode permission() {
37 | return PermissionNode.BIOME;
38 | }
39 |
40 | public void usage(CommandSender sendi, String label) {
41 | MessagesUsage.BIOME.send(sendi, label);
42 | }
43 |
44 | @Override
45 | public String getHelp() {
46 | return MessagesHelp.BIOME.get();
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdDeveloper.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
4 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
5 | import me.SuperRonanCraft.BetterRTP.references.rtpinfo.RandomLocation;
6 | import org.bukkit.command.CommandSender;
7 | import org.jetbrains.annotations.NotNull;
8 |
9 | import java.util.List;
10 |
11 | public class CmdDeveloper implements RTPCommand {
12 |
13 | public String getName() {
14 | return "dev";
15 | }
16 |
17 | public void execute(CommandSender sendi, String label, String[] args) {
18 | RandomLocation.runChunkTest();
19 | }
20 |
21 | @Override public List tabComplete(CommandSender sendi, String[] args) {
22 | return null;
23 | }
24 |
25 | @NotNull public PermissionNode permission() {
26 | return PermissionNode.DEVELOPER;
27 | //sendi.getName().equalsIgnoreCase("SuperRonanCraft") || sendi.getName().equalsIgnoreCase("RonanCrafts");
28 | }
29 |
30 | public void usage(CommandSender sendi, String label) {
31 | sendi.sendMessage("This is for Developement use only!");
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
5 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
6 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
7 | import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
8 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
9 | import org.bukkit.command.CommandSender;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.ArrayList;
13 | import java.util.Collections;
14 | import java.util.List;
15 |
16 | public class CmdHelp implements RTPCommand, RTPCommandHelpable {
17 |
18 | public String getName() {
19 | return "help";
20 | }
21 |
22 | public void execute(CommandSender sendi, String label, String[] args) {
23 | List list = new ArrayList<>();
24 | list.add(MessagesHelp.PREFIX.get());
25 | list.add(MessagesHelp.MAIN.get());
26 | for (RTPCommand cmd : BetterRTP.getInstance().getCmd().commands)
27 | if (cmd.permission().check(sendi))
28 | if (cmd instanceof RTPCommandHelpable) {
29 | String help = ((RTPCommandHelpable) cmd).getHelp();
30 | list.add(help);
31 | }
32 | Message_RTP.sms(sendi, list, Collections.singletonList(label));
33 | }
34 |
35 | public List tabComplete(CommandSender sendi, String[] args) {
36 | return null;
37 | }
38 |
39 |
40 | @NotNull public PermissionNode permission() {
41 | return PermissionNode.USE;
42 | }
43 |
44 | @Override
45 | public String getHelp() {
46 | return MessagesHelp.HELP.get();
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdReload.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
5 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
6 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
7 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
8 | import org.bukkit.command.CommandSender;
9 | import org.jetbrains.annotations.NotNull;
10 |
11 | import java.util.List;
12 |
13 | public class CmdReload implements RTPCommand, RTPCommandHelpable {
14 |
15 | public String getName() {
16 | return "reload";
17 | }
18 |
19 | public void execute(CommandSender sendi, String label, String[] args) {
20 | BetterRTP.getInstance().reload(sendi);
21 | }
22 |
23 | public List tabComplete(CommandSender sendi, String[] args) {
24 | return null;
25 | }
26 |
27 | @NotNull public PermissionNode permission() {
28 | return PermissionNode.RELOAD;
29 | }
30 |
31 | @Override
32 | public String getHelp() {
33 | return MessagesHelp.RELOAD.get();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdSettings.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
5 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
6 | import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
7 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
8 | import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
9 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
10 | import org.bukkit.command.CommandSender;
11 | import org.bukkit.entity.Player;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | import java.util.List;
15 |
16 | public class CmdSettings implements RTPCommand, RTPCommandHelpable {
17 |
18 | public String getName() {
19 | return "settings";
20 | }
21 |
22 | public void execute(CommandSender sendi, String label, String[] args) {
23 | if (sendi instanceof Player)
24 | BetterRTP.getInstance().getInvs().getInv(RTP_INV_SETTINGS.MAIN).show((Player) sendi);
25 | else
26 | Message_RTP.sms(sendi, "Must be a player to use this command! Try '/" + label + " help'");
27 | }
28 |
29 | public List tabComplete(CommandSender sendi, String[] args) {
30 | return null;
31 | }
32 |
33 | @NotNull public PermissionNode permission() {
34 | return PermissionNode.SETTINGS;
35 | }
36 |
37 | @Override
38 | public String getHelp() {
39 | return MessagesHelp.SETTINGS.get();
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTeleport.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
4 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
5 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
6 | import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
7 | import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
8 | import org.bukkit.World;
9 | import org.bukkit.command.CommandSender;
10 | import org.bukkit.entity.Player;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.List;
14 |
15 | public class CmdTeleport implements RTPCommand {
16 |
17 | //Label is the %command% placeholder in messages
18 | public static void teleport(CommandSender sendi, String label, World world, List biomes) {
19 | if (sendi instanceof Player)
20 | HelperRTP.tp((Player) sendi, sendi, world, biomes, RTP_TYPE.COMMAND);
21 | else
22 | Message_RTP.sms(sendi, "Must be a player to use this command! Try '/" + label + " help'");
23 | }
24 |
25 | @Override
26 | public void execute(CommandSender sendi, String label, String[] args) {
27 | teleport(sendi, label, null, null);
28 | }
29 |
30 | @Override
31 | public List tabComplete(CommandSender sendi, String[] args) {
32 | return null;
33 | }
34 |
35 | @NotNull @Override
36 | public PermissionNode permission() {
37 | return PermissionNode.USE;
38 | }
39 |
40 | @Override
41 | public String getName() {
42 | return null;
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTest.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
5 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
6 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation;
7 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
8 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
9 | import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
10 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
11 | import org.bukkit.command.CommandSender;
12 | import org.bukkit.entity.Player;
13 | import org.jetbrains.annotations.NotNull;
14 |
15 | import java.util.List;
16 |
17 | //Meant to just test particles and effects without actually rtp'ing around the world
18 | public class CmdTest implements RTPCommand, RTPCommandHelpable {
19 |
20 | public String getName() {
21 | return "test";
22 | }
23 |
24 | @Override
25 | public void execute(CommandSender sendi, String label, String[] args) {
26 | if (sendi instanceof Player) {
27 | Player p = (Player) sendi;
28 | BetterRTP.getInstance().getRTP().getTeleport().afterTeleport(p, p.getLocation(),
29 | HelperRTP.getPlayerWorld(new RTPSetupInformation(p.getWorld(), p, p, false)), 0, p.getLocation(), RTP_TYPE.TEST);
30 | } else
31 | sendi.sendMessage("Console is not able to execute this command! Try '/rtp help'");
32 | }
33 |
34 | @Override
35 | public List tabComplete(CommandSender sendi, String[] args) {
36 | return null;
37 | }
38 |
39 | @NotNull @Override
40 | public PermissionNode permission() {
41 | return PermissionNode.ADMIN;
42 | }
43 |
44 | @Override
45 | public String getHelp() {
46 | return MessagesHelp.TEST.get();
47 | }
48 |
49 | @Override
50 | public boolean isDebugOnly() {
51 | return true;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdVersion.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.commands.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
5 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
6 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
7 | import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
8 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
9 | import org.bukkit.command.CommandSender;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.List;
13 |
14 | public class CmdVersion implements RTPCommand, RTPCommandHelpable {
15 |
16 | public String getName() {
17 | return "version";
18 | }
19 |
20 | public void execute(CommandSender sendi, String label, String[] args) {
21 | Message_RTP.sms(sendi, "&aVersion #&e" + BetterRTP.getInstance().getDescription().getVersion());
22 | }
23 |
24 | public List tabComplete(CommandSender sendi, String[] args) {
25 | return null;
26 | }
27 |
28 | @NotNull public PermissionNode permission() {
29 | return PermissionNode.VERSION;
30 | }
31 |
32 | @Override
33 | public String getHelp() {
34 | return MessagesHelp.VERSION.get();
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Click.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.events;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.invs.RTPInventories;
4 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
5 | import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
6 | import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
7 | import org.bukkit.Material;
8 | import org.bukkit.entity.Player;
9 | import org.bukkit.event.inventory.InventoryClickEvent;
10 |
11 | public class Click {
12 |
13 | static void click(InventoryClickEvent e) {
14 | if (!validClick(e))
15 | return;
16 | e.setCancelled(true);
17 | handler(e);
18 | }
19 |
20 | static private void handler(InventoryClickEvent e) {
21 | try {
22 | Player p = (Player) e.getWhoClicked();
23 | PlayerData data = HelperPlayer.getData(p);
24 | RTPInventories menu = BetterRTP.getInstance().getInvs();
25 | menu.getInv(data.getMenu().getInvType()).clickEvent(e);
26 | } catch (NullPointerException ex) {
27 | //ex.printStackTrace();
28 | }
29 | }
30 |
31 | static private boolean validClick(InventoryClickEvent e) {
32 | //Not a player, or Not our inventory
33 | if (!(e.getWhoClicked() instanceof Player) || e.isCancelled())
34 | return false;
35 | // Item is clicked
36 | else if (e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR))
37 | return false;
38 | else if (e.getWhoClicked() instanceof Player) {
39 | // Clicks the inventory
40 | PlayerData data = HelperPlayer.getData((Player) e.getWhoClicked());
41 | if (!e.getInventory().equals(data.getMenu().getInv()))
42 | return false;
43 | // Clicks their own inventory
44 | else if (!e.getClickedInventory().equals(data.getMenu().getInv())) {
45 | e.setCancelled(true);
46 | return false;
47 | }
48 | }
49 | return true;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Custom.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.events;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
4 | import me.SuperRonanCraft.BetterRTP.references.depends.DepEssentials;
5 |
6 | public class Custom {
7 |
8 | static void postRTP(RTP_TeleportPostEvent e) {
9 | DepEssentials.setBackLocation(e.getPlayer(), e.getOldLocation());
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Damage.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.events;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
4 | import org.bukkit.entity.Entity;
5 | import org.bukkit.entity.Player;
6 | import org.bukkit.event.entity.EntityDamageEvent;
7 |
8 | public class Damage {
9 | static boolean canCancel(EntityDamageEvent.DamageCause damageCause) {
10 | return true; // TODO: Allow for filtering damage causes
11 | }
12 |
13 | static boolean isInInvincibleMode(Player player) {
14 | return HelperPlayer.getData(player).getInvincibleEndTime() > System.currentTimeMillis();
15 | }
16 |
17 | static void onEntityDamage(EntityDamageEvent event) {
18 | Entity entity = event.getEntity();
19 | if (!(entity instanceof Player)) return;
20 | Player player = (Player) entity;
21 |
22 | if (!canCancel(event.getCause())) return;
23 | if (!isInInvincibleMode(player)) return;
24 |
25 | event.setCancelled(true);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Death.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.events;
2 |
3 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation;
4 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
5 | import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
6 | import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
7 | import org.bukkit.entity.Player;
8 | import org.bukkit.event.player.PlayerRespawnEvent;
9 |
10 | public class Death {
11 |
12 | static void respawnEvent(PlayerRespawnEvent e) {
13 | Player p = e.getPlayer();
14 | WorldPlayer worldPlayer = HelperRTP.getPlayerWorld(new RTPSetupInformation(
15 | p.getWorld(),
16 | p, p, false
17 | ));
18 | if (worldPlayer.getRTPOnDeath()) {
19 | HelperRTP.tp(p, p, p.getWorld(), null, RTP_TYPE.FORCED, true, true);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/EventListener.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.events;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
5 | import org.bukkit.event.EventHandler;
6 | import org.bukkit.event.Listener;
7 | import org.bukkit.event.block.SignChangeEvent;
8 | import org.bukkit.event.entity.EntityDamageEvent;
9 | import org.bukkit.event.inventory.InventoryClickEvent;
10 | import org.bukkit.event.player.*;
11 | import org.bukkit.event.world.WorldLoadEvent;
12 | import org.bukkit.plugin.PluginManager;
13 |
14 | public class EventListener implements Listener {
15 | private final Interact interact = new Interact();
16 | private final WorldLoad worldLoad = new WorldLoad();
17 |
18 | public void registerEvents(BetterRTP pl) {
19 | PluginManager pm = pl.getServer().getPluginManager();
20 | pm.registerEvents(this, pl);
21 | }
22 |
23 | public void load() {
24 | interact.load();
25 | }
26 |
27 | @EventHandler
28 | private void onLeave(PlayerQuitEvent e) {
29 | Leave.event(e);
30 | }
31 |
32 | @EventHandler
33 | private void onJoin(PlayerJoinEvent e) {
34 | Join.event(e);
35 | }
36 |
37 | @EventHandler
38 | private void onInteract(PlayerInteractEvent e) {
39 | interact.event(e);
40 | }
41 |
42 | @EventHandler
43 | private void interact(SignChangeEvent e) {
44 | interact.createSign(e);
45 | }
46 |
47 | @EventHandler
48 | private void click(InventoryClickEvent e) {
49 | Click.click(e);
50 | }
51 |
52 | @EventHandler
53 | private void teleport(PlayerTeleportEvent e) {
54 | Teleport.tpEvent(e);
55 | }
56 |
57 | @EventHandler
58 | private void rtpPost(RTP_TeleportPostEvent e) {
59 | Custom.postRTP(e);
60 | }
61 |
62 | @EventHandler
63 | private void worldLoad(WorldLoadEvent e) {
64 | worldLoad.load(e);
65 | }
66 |
67 | @EventHandler
68 | private void onRespawn(PlayerRespawnEvent e) {
69 | Death.respawnEvent(e);
70 | }
71 |
72 | @EventHandler
73 | private void onDamage(EntityDamageEvent e) {
74 | Damage.onEntityDamage(e);
75 | }
76 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Join.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.events;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
5 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
6 | import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
7 | import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
8 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore;
9 | import me.SuperRonanCraft.BetterRTP.references.web.Updater;
10 | import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
11 | import me.SuperRonanCraft.BetterRTP.versions.AsyncHandler;
12 | import org.bukkit.Bukkit;
13 | import org.bukkit.entity.Player;
14 | import org.bukkit.event.player.PlayerJoinEvent;
15 |
16 | import java.util.Arrays;
17 |
18 | public class Join {
19 |
20 | static void event(PlayerJoinEvent e) {
21 | Player p = e.getPlayer();
22 | updater(p);
23 | AsyncHandler.async(() -> {
24 | getPl().getCooldowns().loadPlayer(p);
25 | });
26 | rtpOnFirstJoin(p);
27 | }
28 |
29 | //Updater
30 | private static void updater(Player p) {
31 | if (!getPl().getFiles().getType(FileOther.FILETYPE.CONFIG).getBoolean("Settings.DisableUpdater") && PermissionNode.UPDATER.check(p)) {
32 | if (!getPl().getDescription().getVersion().equals(Updater.updatedVersion)) {
33 | String currentVersion = getPl().getDescription().getVersion();
34 | String newVersion = Updater.updatedVersion;
35 |
36 | MessagesCore.UPDATE.send(p, Arrays.asList(currentVersion, newVersion));
37 | }
38 | }
39 | }
40 |
41 |
42 | //RTP on first join
43 | private static void rtpOnFirstJoin(Player p) {
44 | if (getPl().getSettings().isRtpOnFirstJoin_Enabled() && !p.hasPlayedBefore())
45 | HelperRTP.tp(p, Bukkit.getConsoleSender(),
46 | Bukkit.getWorld(getPl().getSettings().getRtpOnFirstJoin_World()),
47 | null, RTP_TYPE.JOIN, true, true);
48 | //Fixed via @kazigk on Github
49 | }
50 |
51 | private static BetterRTP getPl() {
52 | return BetterRTP.getInstance();
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Leave.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.events;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
4 | import org.bukkit.entity.Player;
5 | import org.bukkit.event.player.PlayerQuitEvent;
6 |
7 | class Leave {
8 |
9 | static void event(PlayerQuitEvent e) {
10 | Player p = e.getPlayer();
11 | HelperPlayer.unload(p);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Teleport.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.events;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
4 | import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
5 | import org.bukkit.entity.Player;
6 | import org.bukkit.event.player.PlayerTeleportEvent;
7 |
8 | public class Teleport {
9 |
10 | static void tpEvent(PlayerTeleportEvent e) {
11 | Player p = e.getPlayer();
12 | PlayerData data = HelperPlayer.getData(p);
13 | //Add data to database
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/WorldLoad.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.events;
2 |
3 | import com.tcoded.folialib.wrapper.task.WrappedTask;
4 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
5 | import me.SuperRonanCraft.BetterRTP.versions.AsyncHandler;
6 | import org.bukkit.event.world.WorldLoadEvent;
7 |
8 | public class WorldLoad {
9 |
10 | WrappedTask loader;
11 |
12 | void load(WorldLoadEvent e) {
13 | //BetterRTP.getInstance().getLogger().info("NEW WORLD!");
14 | if (loader != null)
15 | loader.cancel();
16 | loader = AsyncHandler.syncLater(() -> {
17 | BetterRTP.debug("New world `" + e.getWorld().getName() + "` detected! Reloaded Databases!");
18 | BetterRTP.getInstance().getDatabaseHandler().load();
19 | }, 20L * 5);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPluginValidation.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.rtp;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins.REGIONPLUGINS;
4 | import org.bukkit.Location;
5 |
6 | public class RTPPluginValidation {
7 |
8 | /**
9 | * @param loc Location to check
10 | * @return True if valid location
11 | */
12 | public static boolean checkLocation(Location loc) {
13 | for (REGIONPLUGINS validators : REGIONPLUGINS.values())
14 | if (!validators.getValidator().check(loc))
15 | return false;
16 | return true;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_ERROR_REQUEST_REASON.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.rtp;
2 |
3 | import lombok.Getter;
4 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore;
5 |
6 | public enum RTP_ERROR_REQUEST_REASON {
7 | IS_RTPING(MessagesCore.ALREADY),
8 | NO_PERMISSION(MessagesCore.NOPERMISSION_WORLD),
9 | WORLD_DISABLED(MessagesCore.DISABLED_WORLD),
10 | COOLDOWN(MessagesCore.COOLDOWN),
11 | PRICE_ECONOMY(MessagesCore.FAILED_PRICE),
12 | PRICE_HUNGER(MessagesCore.FAILED_HUNGER);
13 |
14 | @Getter private final MessagesCore msg;
15 |
16 | RTP_ERROR_REQUEST_REASON(MessagesCore msg) {
17 | this.msg = msg;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_PlayerInfo.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.rtp;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 |
6 | public class RTP_PlayerInfo {
7 |
8 | @Getter @Setter boolean
9 | applyDelay,
10 | applyCooldown,
11 | checkCooldown,
12 | takeMoney,
13 | takeHunger;
14 |
15 | public RTP_PlayerInfo() {
16 | this(true, true, true, true, true);
17 | }
18 |
19 | public RTP_PlayerInfo(boolean applyDelay, boolean applyCooldown) {
20 | this(applyDelay, applyCooldown, true);
21 | }
22 |
23 | public RTP_PlayerInfo(boolean applyDelay, boolean applyCooldown, boolean checkCooldown) {
24 | this(applyDelay, applyCooldown, checkCooldown, true, true);
25 | }
26 |
27 | public RTP_PlayerInfo(boolean applyDelay,
28 | boolean applyCooldown,
29 | boolean checkCooldown,
30 | boolean takeMoney,
31 | boolean takeHunger) {
32 | this.applyDelay = applyDelay;
33 | this.applyCooldown = applyCooldown;
34 | this.checkCooldown = checkCooldown;
35 | this.takeMoney = takeMoney;
36 | this.takeHunger = takeHunger;
37 | }
38 |
39 | public enum RTP_PLAYERINFO_FLAG {
40 | NODELAY, NOCOOLDOWN, IGNORECOOLDOWN, IGNOREMONEY, IGNOREHUNGER;
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_SHAPE.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.rtp;
2 |
3 | public enum RTP_SHAPE {
4 | SQUARE, //Square shaped location finder
5 | CIRCLE //Circled area location finder
6 | }
7 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_TYPE.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.rtp;
2 |
3 | public enum RTP_TYPE {
4 | COMMAND, //Player executed command
5 | FORCED, //Player was forced to rtp (/rtp player )
6 | RESPAWN, //Player respawned and world has RTPOnDeath enabled
7 | JOIN, //Player joined and was rtp'd automatically
8 | TEST, //Player was just testing out effects
9 | ADDON, //Player RTP'd from the external addons plugin
10 | ADDON_PORTAL, //Player RTP'd from the external addons (Portals)
11 | ADDON_MAGICSTICK, //Player RTP'd from the external addons (MagicStick)
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/effects/RTPEffects.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.player.rtp.effects;
2 |
3 | import lombok.Getter;
4 |
5 | public class RTPEffects {
6 |
7 | @Getter final RTPEffect_Particles particles = new RTPEffect_Particles();
8 | @Getter final RTPEffect_Potions potions = new RTPEffect_Potions();
9 | @Getter final RTPEffect_Sounds sounds = new RTPEffect_Sounds();
10 | @Getter final RTPEffect_Titles titles = new RTPEffect_Titles();
11 |
12 | //public HashMap>> playerLoads = new HashMap<>();
13 |
14 | public void load() {
15 | particles.load();
16 | potions.load();
17 | sounds.load();
18 | titles.load();
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionCheck.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references;
2 |
3 | import lombok.Getter;
4 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
5 | import org.bukkit.command.CommandSender;
6 | import org.jetbrains.annotations.NotNull;
7 |
8 | public interface PermissionCheck {
9 |
10 | static String getPrefix() {
11 | return "betterrtp.";
12 | }
13 |
14 | default boolean check(CommandSender sendi) {
15 | if (isDev())
16 | return sendi.getName().equalsIgnoreCase("SuperRonanCraft") || sendi.getName().equalsIgnoreCase("RonanCrafts");
17 | return BetterRTP.getInstance().getPerms().checkPerm(getNode(), sendi);
18 | }
19 |
20 | static boolean check(CommandSender sendi, String check) {
21 | return BetterRTP.getInstance().getPerms().checkPerm(check, sendi);
22 | }
23 |
24 | static boolean getAWorld(CommandSender sendi, String world) {
25 | return getAWorldText(sendi, world).passed;
26 | }
27 |
28 | static PermissionResult getAWorldText(CommandSender sendi, @NotNull String world) {
29 | String perm = getPrefix() + "world.*";
30 | if (check(sendi, perm)) {
31 | return new PermissionResult(perm, true);
32 | } else {
33 | perm = getPrefix() + "world." + world;
34 | if (check(sendi, perm))
35 | return new PermissionResult(perm, true);
36 | }
37 | return new PermissionResult(perm, false);
38 | }
39 |
40 | static boolean getLocation(CommandSender sendi, String location) {
41 | return check(sendi, getPrefix() + "location." + location);
42 | }
43 |
44 | static boolean getPermissionGroup(CommandSender sendi, String group) {
45 | return check(sendi, getPrefix() + "group." + group);
46 | }
47 |
48 | boolean isDev();
49 |
50 | String getNode();
51 |
52 | class PermissionResult {
53 | @Getter private final boolean passed;
54 | @Getter private final String string;
55 | PermissionResult(String string, boolean passed) {
56 | this.passed = passed;
57 | this.string = string;
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionNode.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references;
2 |
3 | import lombok.Getter;
4 |
5 | public enum PermissionNode implements PermissionCheck {
6 |
7 | ADMIN("admin"),
8 | USE("use"),
9 | BYPASS_ECONOMY("bypass.economy"),
10 | BYPASS_HUNGER("bypass.hunger"),
11 | BYPASS_COOLDOWN("bypass.cooldown"),
12 | BYPASS_DELAY("bypass.delay"),
13 | BYPASS_LOCATION("bypass.location"), //Ability to bypass `UseLocationsInSameWorld` if enabled in location.yml
14 | RELOAD("reload"),
15 | SETTINGS("settings"),
16 | INFO("info"),
17 | UPDATER("updater"),
18 | RTP_OTHER("player"),
19 | BIOME("biome"),
20 | WORLD("world"),
21 | SIGN_CREATE("sign"),
22 | VERSION("version"),
23 | EDIT("edit"),
24 | LOCATION("location"),
25 | DEVELOPER("DEVELOPER_PERM"),
26 | ;
27 |
28 | @Getter private final String node;
29 |
30 | PermissionNode(String node) {
31 | this.node = PermissionCheck.getPrefix() + node;
32 | }
33 |
34 | @Override public boolean isDev() {
35 | return this == DEVELOPER;
36 | }
37 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/WarningHandler.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 |
5 | import java.util.HashMap;
6 |
7 | public class WarningHandler {
8 |
9 | HashMap lastWarning = new HashMap<>();
10 |
11 | public static void warn(WARNING type, String str) {
12 | warn(type, str, true);
13 | }
14 |
15 | public static void warn(WARNING type, String str, boolean auto_ignore) {
16 | WarningHandler handler = BetterRTP.getInstance().getWarningHandler();
17 | if (auto_ignore) { //Ignored automatically every 30 minutes
18 | Long lastTime = handler.lastWarning.getOrDefault(type, 0L);
19 | if (lastTime <= System.currentTimeMillis()) {
20 | BetterRTP.getInstance().getLogger().info(str);
21 | lastTime += System.currentTimeMillis() + (1000 * 1800);
22 | }
23 | handler.lastWarning.put(type, lastTime);
24 | } else
25 | BetterRTP.getInstance().getLogger().warning(str);
26 | }
27 |
28 | public enum WARNING {
29 | USELOCATION_ENABLED_NO_LOCATION_AVAILABLE,
30 | NO_WORLD_TYPE_DECLARED
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTPEvent.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import org.bukkit.event.Event;
4 | import org.bukkit.event.HandlerList;
5 |
6 | public class RTPEvent extends Event {
7 |
8 | private static final HandlerList handler = new HandlerList();
9 |
10 | @Override
11 | public HandlerList getHandlers() {
12 | return handler;
13 | }
14 |
15 | public static HandlerList getHandlerList() {
16 | return handler;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_CancelledEvent.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import org.bukkit.entity.Player;
4 | import org.bukkit.event.HandlerList;
5 |
6 | public class RTP_CancelledEvent extends RTPEvent { //Called when a delayed rtp is cancelled cause player moved
7 |
8 | Player p;
9 | private static final HandlerList handler = new HandlerList();
10 |
11 | public RTP_CancelledEvent(Player p) {
12 | this.p = p;
13 | }
14 |
15 | public Player getPlayer() {
16 | return p;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_CommandEvent.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
4 | import org.bukkit.command.CommandSender;
5 | import org.bukkit.event.Cancellable;
6 | import org.bukkit.event.HandlerList;
7 |
8 | public class RTP_CommandEvent extends RTPEvent implements Cancellable {
9 |
10 | boolean cancelled;
11 | CommandSender sendi;
12 | RTPCommand cmd;
13 | private static final HandlerList handler = new HandlerList();
14 |
15 | //Called before a command is executed
16 | public RTP_CommandEvent(CommandSender sendi, RTPCommand cmd) {
17 | this.sendi = sendi;
18 | this.cmd = cmd;
19 | }
20 |
21 | public CommandSender getSendi() {
22 | return sendi;
23 | }
24 |
25 | public RTPCommand getCmd() {
26 | return cmd;
27 | }
28 |
29 | @Override
30 | public boolean isCancelled() {
31 | return cancelled;
32 | }
33 |
34 | @Override
35 | public void setCancelled(boolean b) {
36 | cancelled = b;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_CommandEvent_After.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import org.bukkit.command.CommandSender;
4 |
5 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
6 |
7 | public class RTP_CommandEvent_After extends RTP_CommandEvent {
8 |
9 | //Executed after a command was executed
10 | public RTP_CommandEvent_After(CommandSender sendi, RTPCommand cmd) {
11 | super(sendi, cmd);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FailedEvent.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import org.bukkit.entity.Player;
4 |
5 | import lombok.Getter;
6 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTPPlayer;
7 | import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
8 |
9 | //Called when an rtp is finding a valid location
10 | @Getter public class RTP_FailedEvent extends RTPEvent {
11 |
12 | Player p;
13 | RTPWorld world;
14 | int attempts;
15 |
16 | public RTP_FailedEvent(RTPPlayer rtpPlayer) {
17 | this.p = rtpPlayer.getPlayer();
18 | this.world = rtpPlayer.getWorldPlayer();
19 | this.attempts = rtpPlayer.getAttempts();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FindLocationEvent.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTPPlayer;
4 | import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
5 | import org.bukkit.Location;
6 | import org.bukkit.entity.Player;
7 | import org.bukkit.event.Cancellable;
8 | import org.jetbrains.annotations.Nullable;
9 |
10 | //Called when an rtp is finding a valid location
11 | public class RTP_FindLocationEvent extends RTPEvent implements Cancellable {
12 |
13 | Player p;
14 | RTPWorld world;
15 | Location loc; //Used to force a location into find event
16 | int attempts;
17 | boolean cancelled;
18 |
19 | public RTP_FindLocationEvent(RTPPlayer rtpPlayer) {
20 | this.p = rtpPlayer.getPlayer();
21 | this.world = rtpPlayer.getWorldPlayer();
22 | this.attempts = rtpPlayer.getAttempts();
23 | }
24 |
25 | //A location can be pushed in if a developer wants to inject a custom location
26 | //Safe block code will still be run!
27 | public void setLocation(Location loc) {
28 | this.loc = loc;
29 | }
30 |
31 | @Nullable
32 | public Location getLocation() {
33 | return loc;
34 | }
35 |
36 | public RTPWorld getWorld() {
37 | return world;
38 | }
39 |
40 | public Player getPlayer() {
41 | return p;
42 | }
43 |
44 | @Override
45 | public boolean isCancelled() {
46 | return cancelled;
47 | }
48 |
49 | @Override
50 | public void setCancelled(boolean b) {
51 | cancelled = b;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_SettingUpEvent.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import org.bukkit.entity.Player;
4 | import org.bukkit.event.Cancellable;
5 |
6 | public class RTP_SettingUpEvent extends RTPEvent implements Cancellable {
7 |
8 | Player p;
9 | boolean cancelled = false;
10 |
11 | public RTP_SettingUpEvent(Player p) {
12 | this.p = p;
13 | }
14 |
15 | public Player getPlayer() {
16 | return p;
17 | }
18 |
19 | @Override
20 | public boolean isCancelled() {
21 | return cancelled;
22 | }
23 |
24 | @Override
25 | public void setCancelled(boolean b) {
26 | cancelled = b;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_TeleportEvent.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WORLD_TYPE;
4 | import org.bukkit.Location;
5 | import org.bukkit.entity.Player;
6 |
7 | public class RTP_TeleportEvent extends RTPEvent {
8 |
9 | Player p;
10 | Location loc;
11 | WORLD_TYPE worldType;
12 |
13 | public RTP_TeleportEvent(Player p, Location loc, WORLD_TYPE worldType) {
14 | this.p = p;
15 | this.loc = loc;
16 | this.worldType = worldType;
17 | }
18 |
19 | public Player getPlayer() {
20 | return p;
21 | }
22 |
23 | public Location getLocation() {
24 | return loc;
25 | }
26 |
27 | public void changeLocation(Location loc) {
28 | this.loc = loc;
29 | }
30 |
31 | public WORLD_TYPE getWorldType() {
32 | return worldType;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_TeleportPostEvent.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
4 | import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
5 | import org.bukkit.Location;
6 | import org.bukkit.entity.Player;
7 |
8 | public class RTP_TeleportPostEvent extends RTPEvent {
9 |
10 | Player p;
11 | Location loc;
12 | Location oldLoc;
13 | RTP_TYPE type;
14 | WorldPlayer wPlayer;
15 |
16 | public RTP_TeleportPostEvent(Player p, Location loc, Location oldLoc, WorldPlayer wPlayer, RTP_TYPE type) {
17 | this.p = p;
18 | this.loc = loc;
19 | this.oldLoc = oldLoc;
20 | this.type = type;
21 | this.wPlayer = wPlayer;
22 | }
23 |
24 | public Player getPlayer() {
25 | return p;
26 | }
27 |
28 | public Location getLocation() {
29 | return loc;
30 | }
31 |
32 | public Location getOldLocation() {
33 | return oldLoc;
34 | }
35 |
36 | public RTP_TYPE getType() {
37 | return type;
38 | }
39 |
40 | public WorldPlayer getWorldPlayer() {
41 | return wPlayer;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_TeleportPreEvent.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.customEvents;
2 |
3 | import lombok.Getter;
4 | import org.bukkit.entity.Player;
5 | import org.bukkit.event.Cancellable;
6 |
7 | public class RTP_TeleportPreEvent extends RTPEvent implements Cancellable { //Called upon every rtp call, does not mean player will be teleported
8 |
9 | @Getter Player p;
10 | boolean cancelled;
11 |
12 | public RTP_TeleportPreEvent(Player p) {
13 | this.p = p;
14 | }
15 |
16 | @Override
17 | public boolean isCancelled() {
18 | return cancelled;
19 | }
20 |
21 | @Override
22 | public void setCancelled(boolean b) {
23 | cancelled = b;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseChunkData.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.database;
2 |
3 | import me.SuperRonanCraft.BetterRTP.versions.AsyncHandler;
4 | import org.bukkit.Chunk;
5 | import org.bukkit.block.Biome;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 | public class DatabaseChunkData extends SQLite {
11 |
12 | public DatabaseChunkData() {
13 | super(DATABASE_TYPE.CHUNK_DATA);
14 | }
15 |
16 | @Override
17 | public List getTables() {
18 | List list = new ArrayList<>();
19 | list.add("ChunkData");
20 | return list;
21 | }
22 |
23 | public enum COLUMNS {
24 | ID("id", "integer PRIMARY KEY AUTOINCREMENT"),
25 | //Chunk Data
26 | WORLD("world", "varchar(32)"),
27 | X("x", "long"),
28 | Z("z", "long"),
29 | BIOME("biome", "string"),
30 | MAX_Y("max_y", "integer"),
31 | ;
32 |
33 | public final String name;
34 | public final String type;
35 |
36 | COLUMNS(String name, String type) {
37 | this.name = name;
38 | this.type = type;
39 | }
40 | }
41 |
42 |
43 | public void addChunk(Chunk chunk, int maxy, Biome biome) {
44 | AsyncHandler.async(() -> {
45 | String pre = "INSERT OR REPLACE INTO ";
46 | String sql = pre + tables.get(0) + " ("
47 | + COLUMNS.WORLD.name + ", "
48 | + COLUMNS.X.name + ", "
49 | + COLUMNS.Z.name + ", "
50 | + COLUMNS.BIOME.name + ", "
51 | + COLUMNS.MAX_Y.name + " "
52 | + ") VALUES(?, ?, ?, ?, ?)";
53 | List params = new ArrayList() {{
54 | add(chunk.getWorld().getName());
55 | add(chunk.getX());
56 | add(chunk.getZ());
57 | add(biome.name());
58 | add(maxy);
59 | }};
60 | sqlUpdate(sql, params);
61 | });
62 | }
63 |
64 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseHandler.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.database;
2 |
3 | import lombok.Getter;
4 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
5 | import me.SuperRonanCraft.BetterRTP.versions.AsyncHandler;
6 |
7 | public class DatabaseHandler {
8 |
9 | @Getter private final DatabasePlayers databasePlayers = new DatabasePlayers();
10 | @Getter private final DatabaseCooldowns databaseCooldowns = new DatabaseCooldowns();
11 | @Getter private final DatabaseQueue databaseQueue = new DatabaseQueue();
12 | @Getter private final DatabaseChunkData databaseChunks = new DatabaseChunkData();
13 |
14 | public void load() {
15 | AsyncHandler.async(() -> {
16 | databasePlayers.load();
17 | databaseCooldowns.load();
18 | databaseQueue.load();
19 | databaseChunks.load();
20 | });
21 | }
22 |
23 | public static DatabasePlayers getPlayers() {
24 | return BetterRTP.getInstance().getDatabaseHandler().getDatabasePlayers();
25 | }
26 |
27 | public static DatabaseCooldowns getCooldowns() {
28 | return BetterRTP.getInstance().getDatabaseHandler().getDatabaseCooldowns();
29 | }
30 |
31 | public static DatabaseQueue getQueue() {
32 | return BetterRTP.getInstance().getDatabaseHandler().getDatabaseQueue();
33 | }
34 |
35 | //public static DatabaseChunkData getChunks() {
36 | // return BetterRTP.getInstance().getDatabaseHandler().getDatabaseChunks();
37 | //}
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/Error.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.database;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 |
5 | import java.util.logging.Level;
6 |
7 | public class Error {
8 | public static void execute(BetterRTP plugin, Exception ex){
9 | plugin.getLogger().log(Level.SEVERE, "Couldn't execute MySQL statement: ", ex);
10 | }
11 | public static void close(BetterRTP plugin, Exception ex){
12 | plugin.getLogger().log(Level.SEVERE, "Failed to close MySQL connection: ", ex);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/Errors.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.database;
2 |
3 | public class Errors {
4 | public static String sqlConnectionExecute(){
5 | return "Couldn't execute MySQL statement: ";
6 | }
7 | public static String sqlConnectionClose(){
8 | return "Failed to close MySQL connection: ";
9 | }
10 | public static String noSQLConnection(){
11 | return "Unable to retreive MYSQL connection: ";
12 | }
13 | public static String noTableFound(){
14 | return "Database Error: No Table Found";
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepEssentials.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends;
2 |
3 | import com.earth2me.essentials.Essentials;
4 | import com.earth2me.essentials.User;
5 | import org.bukkit.Bukkit;
6 | import org.bukkit.Location;
7 | import org.bukkit.entity.Player;
8 |
9 | public class DepEssentials {
10 |
11 | public static void setBackLocation(Player player, Location location) {
12 | try {
13 | Essentials ess = (Essentials) Bukkit.getServer().getPluginManager().getPlugin("Essentials");
14 | if (ess == null)
15 | return;
16 | User user = ess.getUser(player.getUniqueId());
17 | if (user == null)
18 | return;
19 | user.setLastLocation(location);
20 | } catch (ClassCastException e) {
21 | //Something wrong happened, idk why this would break...
22 | }
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepPerms.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import net.milkbowl.vault.permission.Permission;
5 | import org.bukkit.command.CommandSender;
6 | import org.bukkit.plugin.RegisteredServiceProvider;
7 |
8 | public class DepPerms {
9 | public Permission p = null;
10 |
11 | public boolean hasPerm(String perm, CommandSender sendi) {
12 | //sendi.sendMessage(perm);
13 | if (p != null)
14 | return p.has(sendi, perm);
15 | return sendi.hasPermission(perm);
16 | }
17 |
18 | public void register() {
19 | try {
20 | if (BetterRTP.getInstance().getServer().getPluginManager().isPluginEnabled("Vault")) {
21 | RegisteredServiceProvider permissionProvider = BetterRTP.getInstance().getServer()
22 | .getServicesManager().getRegistration(Permission.class);
23 | p = permissionProvider.getProvider();
24 | } else
25 | p = null;
26 | } catch (NullPointerException e) {
27 | //Vault but no Perms
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/REGIONPLUGINS.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import lombok.Getter;
4 | import me.SuperRonanCraft.BetterRTP.references.settings.SoftDepends;
5 |
6 | @Getter
7 | public enum REGIONPLUGINS {
8 | FACTIONSUUID("FactionsUUID", "Factions", new RTP_FactionsUUID()),
9 | GRIEFDEFENDER("GriefDefender", new RTP_GriefDefender()),
10 | GRIEFPREVENTION("GriefPrevention", new RTP_GriefPrevention()),
11 | HCLAIMS("hClaims", "hClaim", new RTP_hClaims()),
12 | HUSKCLAIMS("HuskClaims", new RTP_HuskClaims()),
13 | HUSKTOWNS("HuskTowns", new RTP_HuskTowns()),
14 | KINGDOMSX("KingdomsX", "Kingdoms", new RTP_KingdomsX()),
15 | LANDS("Lands", new RTP_Lands()),
16 | PUEBLOS("Pueblos", new RTP_Pueblos()),
17 | REDPROTECT("RedProtect", new RTP_RedProtect()),
18 | RESIDENCE("Residence", new RTP_Residence()),
19 | SABERFACTIONS("SaberFactions", "Factions", new RTP_SaberFactions()),
20 | TOWNY("Towny", new RTP_Towny()),
21 | ULTIMATECLAIMS("UltimateClaims", new RTP_UltimateClaims()),
22 | WORLDGUARD("WorldGuard", new RTP_WorldGuard()),
23 | MINEPLOTS("MinePlots", new RTP_MinePlots()),
24 | FACTIONSBRIDGE("FactionsBridge", new RTP_FactionsBridge()),
25 | CRASH_CLAIM("CrashClaim", new RTP_CrashClaim());
26 |
27 | private final SoftDepends.RegionPlugin plugin = new SoftDepends.RegionPlugin();
28 | private final String setting_name, pluginyml_name;
29 | private final RegionPluginCheck validator;
30 |
31 | REGIONPLUGINS(String all_name, RegionPluginCheck validator) {
32 | this(all_name, all_name, validator);
33 | }
34 |
35 | REGIONPLUGINS(String setting_name, String pluginyml_name, RegionPluginCheck validator) {
36 | this.setting_name = setting_name;
37 | this.pluginyml_name = pluginyml_name;
38 | this.validator = validator;
39 | }
40 |
41 | public boolean isEnabled() {
42 | return plugin.isEnabled();
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_CrashClaim.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | import net.crashcraft.crashclaim.CrashClaim;
6 |
7 | public class RTP_CrashClaim implements RegionPluginCheck {
8 |
9 | // NOT TESTED (3.6.9)
10 | // CrashClaim (1.0.39)
11 | // https://www.spigotmc.org/resources/crashclaim-claiming-plugin.94037/
12 | public boolean check(Location loc) {
13 | boolean result = true;
14 | if (REGIONPLUGINS.CRASH_CLAIM.isEnabled())
15 | try {
16 | result = CrashClaim.getPlugin().getApi().getClaim(loc) == null; // no claim = valid
17 | } catch (Exception e) {
18 | e.printStackTrace();
19 | }
20 | return result;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_FactionsBridge.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import cc.javajobs.factionsbridge.FactionsBridge;
4 | import org.bukkit.Location;
5 |
6 | public class RTP_FactionsBridge implements RegionPluginCheck {
7 |
8 | // NOT TESTED (3.6.9)
9 | // FactionsBridge (v1.3.8)
10 | // https://www.spigotmc.org/resources/factionsbridge.89716/
11 | public boolean check(Location loc) {
12 | boolean result = true;
13 | if (REGIONPLUGINS.FACTIONSBRIDGE.isEnabled())
14 | try {
15 | boolean claimed = FactionsBridge.getFactionsAPI().getClaim(loc).isClaimed();
16 | result = !claimed;
17 | } catch (Exception e) {
18 | e.printStackTrace();
19 | }
20 | return result;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_FactionsUUID.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | import com.massivecraft.factions.Board;
6 | import com.massivecraft.factions.FLocation;
7 | import com.massivecraft.factions.Faction;
8 |
9 | public class RTP_FactionsUUID implements RegionPluginCheck {
10 |
11 | // NOT TESTED (2.13.2)
12 | // FactionsUUID (v1.6.9.5-U0.5.16)
13 | // https://www.spigotmc.org/resources/factionsuuid.1035/
14 | public boolean check(Location loc) {
15 | boolean result = true;
16 | if (REGIONPLUGINS.FACTIONSUUID.isEnabled())
17 | try {
18 | Faction faction = Board.getInstance().getFactionAt(new FLocation(loc));
19 | result = faction.isWilderness() || faction.isSafeZone();
20 | } catch (Exception e) {
21 | e.printStackTrace();
22 | }
23 | return result;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_GriefDefender.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import com.griefdefender.api.GriefDefender;
4 | import com.griefdefender.api.claim.Claim;
5 | import org.bukkit.Location;
6 |
7 | public class RTP_GriefDefender implements RegionPluginCheck {
8 |
9 | // NOT TESTED (3.1.0)
10 | // GriefDefender (v1.5.10)
11 | // https://www.spigotmc.org/resources/griefdefender.68900/
12 | public boolean check(Location loc) {
13 | boolean result = true;
14 | if (REGIONPLUGINS.GRIEFDEFENDER.isEnabled())
15 | try {
16 | for (Claim claim : GriefDefender.getCore().getAllClaims())
17 | if (claim.contains(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())) {
18 | result = false;
19 | break;
20 | }
21 | } catch (Exception e) {
22 | e.printStackTrace();
23 | }
24 | return result;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_GriefPrevention.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import me.ryanhamshire.GriefPrevention.GriefPrevention;
4 | import org.bukkit.Location;
5 |
6 | public class RTP_GriefPrevention implements RegionPluginCheck {
7 |
8 | // TESTED (v2.13.0)
9 | // GriefPrevention (v16.15.0)
10 | // https://www.spigotmc.org/resources/griefprevention.1884/
11 | public boolean check(Location loc) {
12 | boolean result = true;
13 | if (REGIONPLUGINS.GRIEFPREVENTION.isEnabled())
14 | try {
15 | result = GriefPrevention.instance.dataStore.getClaimAt(loc, true, null) == null;
16 | } catch (Exception e) {
17 | e.printStackTrace();
18 | }
19 | return result;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_HuskClaims.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import net.william278.huskclaims.BukkitHuskClaims;
4 | import net.william278.huskclaims.api.BukkitHuskClaimsAPI;
5 | import org.bukkit.Location;
6 |
7 | public class RTP_HuskClaims implements RegionPluginCheck {
8 |
9 | @Override
10 | public boolean check(Location loc) {
11 | boolean result = true;
12 | if (REGIONPLUGINS.HUSKCLAIMS.isEnabled()) {
13 | try {
14 | result = !BukkitHuskClaimsAPI.getInstance().getClaimAt(BukkitHuskClaims.Adapter.adapt(loc)).isPresent();
15 | } catch (Exception e) {
16 | e.printStackTrace();
17 | }
18 | }
19 | return result;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_HuskTowns.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import net.william278.husktowns.api.BukkitHuskTownsAPI;
4 | import org.bukkit.Location;
5 |
6 | public class RTP_HuskTowns implements RegionPluginCheck {
7 |
8 | @Override
9 | public boolean check(Location loc) {
10 | boolean result = true;
11 | if (REGIONPLUGINS.HUSKTOWNS.isEnabled()) {
12 | try {
13 | result = !BukkitHuskTownsAPI.getInstance().getClaimAt(loc).isPresent();
14 | } catch (Exception e) {
15 | e.printStackTrace();
16 | }
17 | }
18 | return result;
19 | }
20 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_KingdomsX.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | public class RTP_KingdomsX implements RegionPluginCheck {
6 |
7 | // NOT TESTED (3.6.12)
8 | // KingdomsX (v1.16.8.1.1)
9 | // https://www.spigotmc.org/resources/kingdomsx.77670/
10 | public boolean check(Location loc) {
11 | boolean result = true;
12 | if (REGIONPLUGINS.KINGDOMSX.isEnabled())
13 | try {
14 | org.kingdoms.constants.land.Land land = org.kingdoms.constants.land.Land.getLand(loc);
15 | result = land == null || !land.isClaimed();
16 | } catch (Exception e) {
17 | e.printStackTrace();
18 | }
19 | return result;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_Lands.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
6 | import me.angeschossen.lands.api.LandsIntegration;
7 |
8 | public class RTP_Lands implements RegionPluginCheck {
9 |
10 | // Implemented (2.14.3)
11 | // Tested (3.6.2)
12 | // Lands (v6.28.13)
13 | // https://www.spigotmc.org/resources/lands.53313/
14 | public boolean check(Location loc) {
15 | boolean result = true;
16 | if (REGIONPLUGINS.LANDS.isEnabled())
17 | try {
18 | result = LandsIntegration.of(BetterRTP.getInstance()).getArea(loc) == null;
19 | } catch (Exception e) {
20 | e.printStackTrace();
21 | }
22 | return result;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_MinePlots.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Bukkit;
4 | import org.bukkit.Location;
5 | import org.bukkit.plugin.RegisteredServiceProvider;
6 | import pl.minecodes.plots.api.plot.PlotApi;
7 | import pl.minecodes.plots.api.plot.PlotServiceApi;
8 |
9 | import java.util.Objects;
10 |
11 | public class RTP_MinePlots implements RegionPluginCheck{
12 | // NOT TESTED (3.6.6)
13 | // MinePlots- (v4.0.1)
14 | // https://builtbybit.com/resources/mineplots.21646/
15 |
16 | private PlotServiceApi plotServiceApi;
17 |
18 | public boolean check(Location loc) {
19 | boolean result = true;
20 | if (REGIONPLUGINS.MINEPLOTS.isEnabled())
21 | try {
22 | RegisteredServiceProvider serviceProvider = Bukkit.getServicesManager().getRegistration(PlotServiceApi.class);
23 | Objects.requireNonNull(serviceProvider, "[MinePlots Respect] Service provider is null.");
24 | plotServiceApi = serviceProvider.getProvider();
25 |
26 | plotServiceApi = serviceProvider.getProvider();
27 | PlotApi plot = plotServiceApi.getPlot(loc);
28 |
29 | if (plot != null) {
30 | result = false;
31 | }
32 | } catch (Exception e) {
33 | e.printStackTrace();
34 | }
35 | return result;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_Pueblos.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | import me.RonanCraft.Pueblos.Pueblos;
6 |
7 | public class RTP_Pueblos implements RegionPluginCheck {
8 |
9 | // NOT TESTED (3.1.0)
10 | // Pueblos (v2.0.1)
11 | // https://www.spigotmc.org/resources/pueblos.91255/
12 | public boolean check(Location loc) {
13 | boolean result = true;
14 | if (REGIONPLUGINS.PUEBLOS.isEnabled())
15 | try {
16 | result = Pueblos.getInstance().getClaimHandler().getClaimMain(loc) == null;
17 | } catch (Exception e) {
18 | e.printStackTrace();
19 | }
20 | return result;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_RedProtect.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | import br.net.fabiozumbi12.RedProtect.Bukkit.RedProtect;
6 |
7 | public class RTP_RedProtect implements RegionPluginCheck {
8 |
9 | // TESTED (2.13.0)
10 | // RedProtect (v7.7.2)
11 | // https://www.spigotmc.org/resources/redprotect.15841/
12 | public boolean check(Location loc) {
13 | boolean result = true;
14 | if (REGIONPLUGINS.REDPROTECT.isEnabled())
15 | try {
16 | result = RedProtect.get().getAPI().getRegion(loc) == null;
17 | } catch (Exception e) {
18 | e.printStackTrace();
19 | }
20 | return result;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_Residence.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | public class RTP_Residence implements RegionPluginCheck {
6 |
7 | // NOT TESTED (3.6.12)
8 | // Residence (v5.1.4.1)
9 | // https://www.spigotmc.org/resources/residence.11480/
10 | public boolean check(Location loc) {
11 | boolean result = true;
12 | if (REGIONPLUGINS.RESIDENCE.isEnabled())
13 | try {
14 | // Don't import to avoid class loader issues
15 | com.bekvon.bukkit.residence.Residence instance = com.bekvon.bukkit.residence.Residence.getInstance();
16 | com.bekvon.bukkit.residence.protection.ClaimedResidence claim = instance.getResidenceManagerAPI().getByLoc(loc);
17 | result = claim == null;
18 | } catch (Exception e) {
19 | e.printStackTrace();
20 | }
21 | return result;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_SaberFactions.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | import com.massivecraft.factions.Board;
6 | import com.massivecraft.factions.FLocation;
7 | import com.massivecraft.factions.Faction;
8 |
9 | public class RTP_SaberFactions implements RegionPluginCheck {
10 |
11 | // NOT TESTED (3.4.5)
12 | // SaberFactions (v2.0.1)
13 | // https://www.spigotmc.org/resources/saberfactions.69771/
14 | public boolean check(Location loc) {
15 | boolean result = true;
16 | if (REGIONPLUGINS.SABERFACTIONS.isEnabled())
17 | try {
18 | FLocation fLoc = new FLocation(loc);
19 | Faction faction = Board.getInstance().getFactionAt(fLoc);
20 | result = faction == null || faction.isWilderness() || faction.isSafeZone();
21 | } catch (Exception e) {
22 | e.printStackTrace();
23 | }
24 | return result;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_Towny.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | import com.palmergames.bukkit.towny.TownyAPI;
6 |
7 | public class RTP_Towny implements RegionPluginCheck {
8 |
9 | // NOT TESTED (2.13.0)
10 | // Towny (v0.96.1.11)
11 | // https://www.spigotmc.org/resources/towny.72694/
12 | public boolean check(Location loc) {
13 | boolean result = true;
14 | if (REGIONPLUGINS.TOWNY.isEnabled())
15 | try {
16 | result = TownyAPI.getInstance().isWilderness(loc);
17 | } catch (Exception e) {
18 | e.printStackTrace();
19 | }
20 | return result;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_UltimateClaims.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import java.lang.reflect.Method;
4 |
5 | import org.bukkit.Chunk;
6 | import org.bukkit.Location;
7 | import org.bukkit.plugin.java.JavaPlugin;
8 |
9 | public class RTP_UltimateClaims implements RegionPluginCheck {
10 |
11 | // TESTED (v3.6.12)
12 | // UltimateClaims (v2.2.0 + v1.10.4)
13 | // Download @ https://songoda.com/product/ultimateclaims-14
14 | // V1: https://github.com/craftaro/UltimateClaims/commit/e42376975a59874b05e8516eae1545e94775add5
15 | // V2: https://github.com/craftaro/UltimateClaims/commit/261d83b8712c5ec967f2aa836521c1ff9065ac91
16 | public boolean check(Location loc) {
17 | boolean result = true;
18 | if (REGIONPLUGINS.ULTIMATECLAIMS.isEnabled())
19 | try {
20 | JavaPlugin ultimateClaimsInstance = JavaPlugin.getPlugin((Class extends JavaPlugin>) getPluginMainClass());
21 |
22 | // Get the ClaimManager
23 | Method getClaimManagerMethod = ultimateClaimsInstance.getClass().getMethod("getClaimManager");
24 | Object claimManager = getClaimManagerMethod.invoke(ultimateClaimsInstance);
25 |
26 | // Get the claim based on the chunk
27 | Method hasClaimMethod = claimManager.getClass().getMethod("hasClaim", Chunk.class);
28 | return Boolean.FALSE.equals(hasClaimMethod.invoke(claimManager, loc.getChunk()));
29 | } catch (Exception e) {
30 | e.printStackTrace();
31 | }
32 | return result;
33 | }
34 |
35 | private Class> getPluginMainClass() throws ClassNotFoundException {
36 | try {
37 | return Class.forName("com.craftaro.ultimateclaims.UltimateClaims"); // v2
38 | } catch (ClassNotFoundException ignore) {
39 | return Class.forName("com.songoda.ultimateclaims.UltimateClaims"); // v1
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_WorldGuard.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import com.sk89q.worldedit.bukkit.BukkitAdapter;
4 | import com.sk89q.worldguard.WorldGuard;
5 | import com.sk89q.worldguard.protection.ApplicableRegionSet;
6 | import com.sk89q.worldguard.protection.regions.RegionContainer;
7 | import com.sk89q.worldguard.protection.regions.RegionQuery;
8 | import org.bukkit.Location;
9 |
10 | public class RTP_WorldGuard implements RegionPluginCheck {
11 |
12 | // TESTED (v2.12.3)
13 | // Worldguard (v7.0.4 B1), WorldEdit (v7.2.0 B5)
14 | // https://dev.bukkit.org/projects/worldguard
15 | public boolean check(Location loc) {
16 | boolean result = true;
17 | if (REGIONPLUGINS.WORLDGUARD.isEnabled())
18 | try {
19 | RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
20 | RegionQuery query = container.createQuery();
21 | ApplicableRegionSet set = query.getApplicableRegions(BukkitAdapter.adapt(loc));
22 | //for (ProtectedRegion region : set.getRegions()) {
23 | // region.getId()
24 | //}
25 | result = set.size() == 0;
26 | } catch (Exception e) {
27 | e.printStackTrace();
28 | }
29 | return result;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RTP_hClaims.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | import java.lang.reflect.Method;
6 |
7 | public class RTP_hClaims implements RegionPluginCheck {
8 |
9 | // NOT TESTED (3.1.0)
10 | // hClaims (v1.1.1)
11 | // https://www.spigotmc.org/resources/hclaims.90540/ (Local Repo)
12 | public boolean check(Location loc) {
13 | boolean result = true;
14 | if (REGIONPLUGINS.HCLAIMS.isEnabled())
15 | try {
16 | Class> claimHandlerClass = Class.forName("com.hakan.claim.api.ClaimHandler");
17 | Method hasMethod = claimHandlerClass.getDeclaredMethod("has", Location.class);
18 | result = (boolean) hasMethod.invoke(null, loc);
19 | } catch (Exception e) {
20 | e.printStackTrace();
21 | }
22 | return result;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/regionPlugins/RegionPluginCheck.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
2 |
3 | import org.bukkit.Location;
4 |
5 | public interface RegionPluginCheck {
6 |
7 | /**
8 | * @param loc Location to check
9 | * @return True if valid teleport location, false if the location is claimed and invalid
10 | */
11 | boolean check(Location loc);
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/FileOther.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.file;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import org.bukkit.configuration.file.YamlConfiguration;
5 | import org.bukkit.plugin.Plugin;
6 |
7 | import java.io.File;
8 | import java.util.ArrayList;
9 | import java.util.List;
10 |
11 | public class FileOther {
12 |
13 | List types = new ArrayList<>();
14 |
15 | void load() {
16 | types.clear();
17 | for (FILETYPE type : FILETYPE.values()) {
18 | type.load();
19 | types.add(type);
20 | }
21 | }
22 |
23 | public enum FILETYPE implements FileData {
24 | CONFIG("config"),
25 | ECO("economy"),
26 | SIGNS("signs"),
27 | EFFECTS("effects"),
28 | LOCATIONS("locations"),
29 | PLACEHOLDERS("placeholders")
30 | ;
31 |
32 | private final String fileName;
33 | private final YamlConfiguration config = new YamlConfiguration();
34 | private final File file;
35 |
36 | FILETYPE(String str) {
37 | this.fileName = str + ".yml";
38 | this.file = new File(plugin().getDataFolder(), fileName);
39 | }
40 |
41 | @Override
42 | public Plugin plugin() {
43 | return BetterRTP.getInstance();
44 | }
45 |
46 | //PUBLIC
47 | @Override
48 | public YamlConfiguration getConfig() {
49 | return config;
50 | }
51 |
52 | public File getFile() {
53 | return file;
54 | }
55 |
56 | @Override
57 | public String fileName() {
58 | return fileName;
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Files.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.file;
2 |
3 | public class Files {
4 | private final FileLanguage langFile = new FileLanguage();
5 | private final FileOther basics = new FileOther();
6 |
7 | public FileLanguage getLang() {
8 | return langFile;
9 | }
10 |
11 | public FileOther.FILETYPE getType(FileOther.FILETYPE type) {
12 | return basics.types.get(basics.types.indexOf(type));
13 | }
14 |
15 | public void loadAll() {
16 | basics.load();
17 | langFile.load();
18 | }
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Command.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.helpers;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
5 |
6 | public class HelperRTP_Command {
7 |
8 | public static void registerCommand(RTPCommand cmd, boolean forced) {
9 | BetterRTP.getInstance().getCmd().registerCommand(cmd, forced);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Info.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.helpers;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | import org.bukkit.block.Biome;
7 | import org.bukkit.command.CommandSender;
8 |
9 | import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
10 | import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore;
11 |
12 | public class HelperRTP_Info {
13 |
14 | //Custom biomes
15 | public static List getBiomes(String[] args, int start, CommandSender sendi) {
16 | List biomes = new ArrayList<>();
17 | boolean error_sent = false;
18 | if (PermissionNode.BIOME.check(sendi))
19 | for (int i = start; i < args.length; i++) {
20 | String str = args[i];
21 | try {
22 | biomes.add(Biome.valueOf(str.replaceAll(",", "").toUpperCase()).name());
23 | } catch (Exception e) {
24 | if (!error_sent) {
25 | MessagesCore.OTHER_BIOME.send(sendi, str);
26 | error_sent = true;
27 | }
28 | }
29 | }
30 | return biomes;
31 | }
32 |
33 | public static void addBiomes(List list, String[] args) {
34 | try {
35 | for (Biome b : Biome.values())
36 | if (b.name().toUpperCase().replaceAll("minecraft:", "").startsWith(args[args.length - 1].toUpperCase()))
37 | list.add(b.name().replaceAll("minecraft:", ""));
38 | } catch (NoSuchMethodError e) {
39 | //Not in 1.14.X
40 | }
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/invs/RTPInventories.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.invs;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.invs.enums.RTPInventory_Defaults;
4 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
5 | import org.bukkit.Bukkit;
6 | import org.bukkit.entity.Player;
7 |
8 | import java.util.HashMap;
9 |
10 | public class RTPInventories {
11 |
12 | private final HashMap invs = new HashMap<>();
13 |
14 | public void load() {
15 | invs.clear();
16 | for (RTP_INV_SETTINGS type : RTP_INV_SETTINGS.values()) {
17 | type.load(type);
18 | invs.put(type, type.getInv());
19 | }
20 | }
21 |
22 | public void closeAll() {
23 | BetterRTP main = BetterRTP.getInstance();
24 | for (Player p : Bukkit.getOnlinePlayers())
25 | if (main.getPInfo().playerExists(p)) {
26 | main.getPInfo().clearInvs(p);
27 | p.closeInventory();
28 | }
29 | }
30 |
31 | public RTPInventory_Defaults getInv(RTP_INV_SETTINGS type) {
32 | return invs.get(type);
33 | }
34 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/invs/RTP_INV_SETTINGS.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.invs;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.invs.enums.RTPInventory;
4 | import me.SuperRonanCraft.BetterRTP.references.invs.types.RTPInvBlacklist;
5 | import me.SuperRonanCraft.BetterRTP.references.invs.types.RTPInvCoordinates;
6 | import me.SuperRonanCraft.BetterRTP.references.invs.types.RTPInvMain;
7 | import me.SuperRonanCraft.BetterRTP.references.invs.types.RTPInvWorlds;
8 |
9 | public enum RTP_INV_SETTINGS {
10 | MAIN(new RTPInvMain(), false),
11 | BLACKLIST(new RTPInvBlacklist(), true),
12 | COORDINATES(new RTPInvCoordinates(), true),
13 | WORLDS(new RTPInvWorlds(), false);
14 |
15 | private RTPInventory inv;
16 | private boolean showInMain;
17 |
18 | RTP_INV_SETTINGS(RTPInventory inv, boolean showInMain) {
19 | this.inv = inv;
20 | this.showInMain = showInMain;
21 | }
22 |
23 | public RTPInventory getInv() {
24 | return inv;
25 | }
26 |
27 | public Boolean getShowMain() {
28 | return showInMain;
29 | }
30 |
31 | void load(RTP_INV_SETTINGS type) {
32 | inv.load(type);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/invs/RTP_SETTINGS.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.invs;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.references.file.FileOther.FILETYPE;
5 |
6 | public enum RTP_SETTINGS {
7 | BLACKLIST( SETTINGS_TYPE.BOOLEAN, FILETYPE.CONFIG, "Template.Enabled",
8 | new Object[]{true, "Templates", "&7Toggle Templates system", "paper"});
9 |
10 | SETTINGS_TYPE type;
11 | FILETYPE filetype;
12 | String path;
13 | String[] condition = null;
14 | Object[] info; // = new Object[]{false}; //ENABLED, NAME, DESCRIPTION, ITEM
15 |
16 | RTP_SETTINGS(SETTINGS_TYPE type, FILETYPE filetype, String path, Object[] info) {
17 | this.type = type;
18 | this.filetype = filetype;
19 | this.path = path;
20 | this.info = info;
21 | }
22 |
23 | RTP_SETTINGS(SETTINGS_TYPE type, FILETYPE filetype, String[] arry, Object[] info) {
24 | this.type = type;
25 | this.filetype = filetype;
26 | this.path = null;
27 | this.info = info;
28 | //Condition
29 | this.condition = arry;
30 | }
31 |
32 | void setValue(Object value) {
33 | BetterRTP.getInstance().getFiles().getType(filetype).setValue(path, value);
34 | }
35 |
36 | public Object[] getInfo() {return info;}
37 |
38 | public Object getValue() {
39 | String path = this.path;
40 | if (path == null && condition != null) {
41 | if (BetterRTP.getInstance().getFiles().getType(filetype).getBoolean(condition[0]))
42 | path = condition[1];
43 | else
44 | path = condition[2];
45 | }
46 | return getValuePath(path);
47 | }
48 |
49 | private Object getValuePath(String path) {
50 | if (path != null) {
51 | if (getType() == SETTINGS_TYPE.BOOLEAN)
52 | return BetterRTP.getInstance().getFiles().getType(filetype).getBoolean(path);
53 | else if (getType() == SETTINGS_TYPE.STRING)
54 | return BetterRTP.getInstance().getFiles().getType(filetype).getString(path);
55 | else if (getType() == SETTINGS_TYPE.INTEGER)
56 | return BetterRTP.getInstance().getFiles().getType(filetype).getInt(path);
57 | }
58 | return null;
59 | }
60 |
61 | public SETTINGS_TYPE getType() {
62 | return type;
63 | }
64 |
65 | public FILETYPE getFiletype() {
66 | return filetype;
67 | }
68 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/invs/SETTINGS_TYPE.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.invs;
2 |
3 | public enum SETTINGS_TYPE {
4 | BOOLEAN(Boolean.class), STRING(String.class), INTEGER(Integer.class);
5 |
6 | private java.io.Serializable type;
7 |
8 | SETTINGS_TYPE(java.io.Serializable type) {
9 | this.type = type;
10 | }
11 |
12 | java.io.Serializable getType() {
13 | return type;
14 | }
15 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/invs/enums/RTPInventory.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.invs.enums;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
4 |
5 | public abstract class RTPInventory implements RTPInventory_Defaults {
6 |
7 | public RTP_INV_SETTINGS type;
8 |
9 | public void load(RTP_INV_SETTINGS type) {
10 | this.type = type;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/invs/enums/RTPInventory_Defaults.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.invs.enums;
2 |
3 | import java.util.List;
4 |
5 | import org.bukkit.Bukkit;
6 | import org.bukkit.Material;
7 | import org.bukkit.entity.Player;
8 | import org.bukkit.event.inventory.InventoryClickEvent;
9 | import org.bukkit.inventory.Inventory;
10 | import org.bukkit.inventory.ItemStack;
11 | import org.bukkit.inventory.meta.ItemMeta;
12 |
13 | import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
14 | import me.SuperRonanCraft.BetterRTP.references.messages.Message;
15 | import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
16 | import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
17 |
18 | public interface RTPInventory_Defaults {
19 |
20 | void show(Player p);
21 |
22 | void clickEvent(InventoryClickEvent event);
23 |
24 | default ItemStack createItem(String item, int amount, String name, List lore) {
25 | Material mat = Material.valueOf(item.toUpperCase());
26 | ItemStack _stack = new ItemStack(mat, amount);
27 | ItemMeta _meta = _stack.getItemMeta();
28 | if (_meta != null) {
29 | if (lore != null)
30 | _meta.setLore(lore);
31 | if (name != null)
32 | _meta.setDisplayName(Message.color(name));
33 | }
34 | _stack.setItemMeta(_meta);
35 | return _stack;
36 | }
37 |
38 | default void cacheInv(Player p, Inventory inv, RTP_INV_SETTINGS type) {
39 | PlayerData info = HelperPlayer.getData(p);
40 | info.getMenu().setInv(inv);
41 | info.getMenu().setInvType(type);
42 | }
43 |
44 | default Inventory createInv(int size, String title) {
45 | title = Message.color(title);
46 | return Bukkit.createInventory(null, size, title);
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/invs/enums/RTP_INV_ITEMS.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.invs.enums;
2 |
3 | public enum RTP_INV_ITEMS {
4 | NORMAL("paper", 1),
5 | BACK("book", 1, "Back", 0);
6 |
7 | public String item, name;
8 | public int amt, slot = -1;
9 |
10 | RTP_INV_ITEMS(String item, int amt) {
11 | this.item = item;
12 | this.amt = amt;
13 | }
14 |
15 | RTP_INV_ITEMS(String item, int amt, String name, int slot) {
16 | this.item = item;
17 | this.amt = amt;
18 | this.name = name;
19 | this.slot = slot;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/invs/types/RTPInvBlacklist.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.invs.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
5 | import me.SuperRonanCraft.BetterRTP.references.invs.enums.RTPInventory;
6 | import me.SuperRonanCraft.BetterRTP.references.invs.enums.RTP_INV_ITEMS;
7 | import org.bukkit.Bukkit;
8 | import org.bukkit.World;
9 | import org.bukkit.entity.Player;
10 | import org.bukkit.event.inventory.InventoryClickEvent;
11 | import org.bukkit.inventory.Inventory;
12 | import org.bukkit.inventory.ItemStack;
13 |
14 | public class RTPInvBlacklist extends RTPInventory {
15 |
16 | public void show(Player p) {
17 | int slots = (Bukkit.getWorlds().size() - (Bukkit.getWorlds().size() % 9) + 1) * 9;
18 | if (slots < 6 * 9)
19 | slots += 9;
20 | Inventory inv = this.createInv(slots, "Settings: &lBlacklist");
21 | int _index = 0;
22 | for (World world : Bukkit.getWorlds()) {
23 | if (_index > 9 * 5)
24 | break;
25 | ItemStack _item = createItem(RTP_INV_ITEMS.NORMAL.item, RTP_INV_ITEMS.NORMAL.amt, world.getName(), null);
26 | inv.setItem(_index, _item);
27 | _index ++;
28 | }
29 | ItemStack _item = createItem(RTP_INV_ITEMS.BACK.item, RTP_INV_ITEMS.BACK.amt, RTP_INV_ITEMS.BACK.name, null);
30 | inv.setItem(inv.getSize() - 9 + RTP_INV_ITEMS.BACK.slot, _item);
31 | p.openInventory(inv);
32 | this.cacheInv(p, inv, this.type);
33 | }
34 |
35 | @Override
36 | public void clickEvent(InventoryClickEvent e) {
37 | int slot = e.getSlot();
38 | for (RTP_INV_ITEMS type : RTP_INV_ITEMS.values()) {
39 | if (type.slot != -1) {
40 | switch (type) {
41 | case BACK:
42 | if (slot == e.getInventory().getSize() - 9 + type.slot)
43 | BetterRTP.getInstance().getInvs().getInv(RTP_INV_SETTINGS.MAIN).show((Player) e.getWhoClicked());
44 | default:
45 | break;
46 | }
47 | }
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/invs/types/RTPInvMain.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.invs.types;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.invs.enums.RTPInventory;
4 | import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
5 | import org.bukkit.entity.Player;
6 | import org.bukkit.event.inventory.InventoryClickEvent;
7 | import org.bukkit.inventory.Inventory;
8 | import org.bukkit.inventory.ItemStack;
9 |
10 | public class RTPInvMain extends RTPInventory {
11 |
12 | public void show(Player p) {
13 | Inventory inv = this.createInv(9, "&lSettings");
14 | int _index = 0;
15 | for (RTP_INV_SETTINGS type : RTP_INV_SETTINGS.values()) {
16 | if (type.getShowMain()) {
17 | String _name = type.name();
18 | _name = _name.substring(0, 1).toUpperCase() + _name.substring(1).toLowerCase();
19 | ItemStack _item = createItem("paper", 1, _name, null);
20 | inv.setItem(_index, _item);
21 | _index ++;
22 | }
23 | }
24 | p.openInventory(inv);
25 | this.cacheInv(p, inv, this.type);
26 | }
27 |
28 | @Override
29 | public void clickEvent(InventoryClickEvent event) {
30 | Player p = (Player) event.getWhoClicked();
31 | int slot = event.getSlot();
32 | int _index = 0;
33 | for (RTP_INV_SETTINGS type : RTP_INV_SETTINGS.values()) {
34 | if (type.getShowMain()) {
35 | if (_index == slot) {
36 | type.getInv().show(p);
37 | return;
38 | }
39 | _index++;
40 | }
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/MessageData.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.messages;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.file.FileData;
4 |
5 | public interface MessageData {
6 |
7 | String section();
8 |
9 | String prefix();
10 |
11 | FileData file();
12 |
13 | default String get() {
14 | return file().getString(prefix() + section());
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/Message_RTP.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.messages;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.references.file.FileData;
5 | import org.bukkit.command.CommandSender;
6 |
7 | import java.util.List;
8 |
9 | public class Message_RTP implements Message {
10 |
11 | public static Message_RTP msg = new Message_RTP();
12 |
13 | public static FileData getLang() {
14 | return BetterRTP.getInstance().getFiles().getLang();
15 | }
16 |
17 | @Override
18 | public FileData lang() {
19 | return getLang();
20 | }
21 |
22 | public static void sms(CommandSender sendi, String msg) {
23 | Message.sms(Message_RTP.msg, sendi, msg);
24 | }
25 |
26 | public static void sms(CommandSender sendi, String msg, Object placeholderInfo) {
27 | Message.sms(Message_RTP.msg, sendi, msg, placeholderInfo);
28 | }
29 |
30 | public static void sms(CommandSender sendi, String msg, List placeholderInfo) {
31 | Message.sms(Message_RTP.msg, sendi, msg, placeholderInfo);
32 | }
33 |
34 | public static void sms(CommandSender sendi, List msg, List placeholderInfo) {
35 | Message.sms(sendi, msg, placeholderInfo);
36 | }
37 |
38 | public static String getPrefix() {
39 | return Message.getPrefix(Message_RTP.msg);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/MessagesCore.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.messages;
2 |
3 | import org.bukkit.command.CommandSender;
4 |
5 | import java.util.HashMap;
6 | import java.util.List;
7 |
8 | public enum MessagesCore {
9 |
10 | SUCCESS_PAID("Success.Paid"),
11 | SUCCESS_BYPASS("Success.Bypass"),
12 | SUCCESS_LOADING("Success.Loading"),
13 | SUCCESS_TELEPORT("Success.Teleport"),
14 | FAILED_NOTSAFE("Failed.NotSafe"),
15 | FAILED_PRICE("Failed.Price"),
16 | FAILED_HUNGER("Failed.Hunger"),
17 | OTHER_NOTSAFE("Other.NotSafe"),
18 | OTHER_SUCCESS("Other.Success"),
19 | OTHER_BIOME("Other.Biome"),
20 | NOTEXIST("NotExist"),
21 | RELOAD("Reload"),
22 | UPDATE("Update"),
23 | NOPERMISSION("NoPermission.Basic"),
24 | NOPERMISSION_WORLD("NoPermission.World"),
25 | DISABLED_WORLD("DisabledWorld"),
26 | COOLDOWN("Cooldown"),
27 | INVALID("Invalid"),
28 | NOTONLINE("NotOnline"),
29 | DELAY("Delay"),
30 | SIGN("Sign"),
31 | MOVED("Moved"),
32 | ALREADY("Already"),
33 | //EDIT
34 | EDIT_ERROR("Edit.Error"),
35 | EDIT_SET("Edit.Set"),
36 | EDIT_REMOVE("Edit.Remove"),
37 | ;
38 |
39 | final String section;
40 |
41 | MessagesCore(String section) {
42 | this.section = section;
43 | }
44 |
45 | private static final String pre = "Messages.";
46 |
47 | public void send(CommandSender sendi) {
48 | Message_RTP.sms(sendi, Message_RTP.getLang().getString(pre + section));
49 | }
50 |
51 | public void send(CommandSender sendi, Object placeholderInfo) {
52 | Message_RTP.sms(sendi, Message_RTP.getLang().getString(pre + section), placeholderInfo);
53 | }
54 |
55 | public void send(CommandSender sendi, List placeholderInfo) {
56 | Message_RTP.sms(sendi, Message_RTP.getLang().getString(pre + section), placeholderInfo);
57 | }
58 |
59 | public String get(CommandSender p, Object placeholderInfo) {
60 | return Message.placeholder(p, Message_RTP.getLang().getString(pre + section), placeholderInfo);
61 | }
62 |
63 | public void send(CommandSender sendi, HashMap placeholder_values) {
64 | String msg = Message_RTP.getLang().getString(pre + section);
65 | for (String ph : placeholder_values.values())
66 | msg = msg.replace(ph, placeholder_values.get(ph));
67 | Message_RTP.sms(sendi, msg);
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/MessagesHelp.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.messages;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.file.FileData;
4 |
5 | public enum MessagesHelp implements MessageData {
6 |
7 | PREFIX("Prefix"),
8 | MAIN("Main"),
9 | BIOME("Biome"),
10 | EDIT("Edit"),
11 | HELP("Help"),
12 | INFO("Info"),
13 | PLAYER("Player"),
14 | RELOAD("Reload"),
15 | SETTINGS("Settings"),
16 | TEST("Test"),
17 | VERSION("Version"),
18 | WORLD("World"),
19 | LOCATION("Location"),
20 | ;
21 |
22 | final String section;
23 |
24 | MessagesHelp(String section) {
25 | this.section = section;
26 | }
27 |
28 | @Override
29 | public String prefix() {
30 | return "Help.";
31 | }
32 |
33 | @Override
34 | public FileData file() {
35 | return Message_RTP.getLang();
36 | }
37 |
38 | @Override
39 | public String section() {
40 | return section;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/MessagesUsage.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.messages;
2 |
3 | import me.SuperRonanCraft.BetterRTP.references.file.FileData;
4 | import org.bukkit.command.CommandSender;
5 |
6 | public enum MessagesUsage implements MessageData {
7 |
8 | RTP_OTHER("Player"),
9 | WORLD("World"),
10 | BIOME("Biome"),
11 | LOCATION("Location"),
12 | //Edit
13 | EDIT_LOCATION("Edit.Location"),
14 | EDIT_BASE("Edit.Base"),
15 | EDIT_DEFAULT("Edit.Default"),
16 | EDIT_WORLD("Edit.World"),
17 | EDIT_WORLDTYPE("Edit.Worldtype"),
18 | EDIT_OVERRIDE("Edit.Override"),
19 | EDIT_BLACKLISTEDBLLOCKS("Edit.BlacklistedBlocks"),
20 | EDIT_PERMISSIONGROUP("Edit.PermissionGroup"),
21 | ;
22 |
23 | final String section;
24 |
25 | MessagesUsage(String section) {
26 | this.section = section;
27 | }
28 |
29 | public void send(CommandSender sendi, Object placeholderInfo) {
30 | Message_RTP.sms(sendi, Message_RTP.getLang().getString(prefix() + section), placeholderInfo);
31 | }
32 |
33 | @Override
34 | public String prefix() {
35 | return "Usage.";
36 | }
37 |
38 | @Override
39 | public String section() {
40 | return section;
41 | }
42 |
43 | @Override
44 | public FileData file() {
45 | return Message_RTP.getLang();
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/Placeholders.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.messages.placeholder;
2 |
3 | public enum Placeholders {
4 |
5 | COMMAND("command"),
6 | PLAYER_NAME("player"),
7 | COOLDOWN("cooldown"),
8 | //Location
9 | LOCATION_X("x"),
10 | LOCATION_Y("y"),
11 | LOCATION_Z("z"),
12 | //World
13 | WORLD("world"),
14 | PERMISSION("permission"),
15 | //ints
16 | ATTEMPTS("attempts"),
17 | PRICE("price"),
18 | DELAY("delay"),
19 | TIME("time"),
20 | // Updater
21 | NEWVERSION("newVersion"),
22 | CURRENTDVERSION("currentVersion"),
23 | //Other
24 | BIOME("biome")
25 | ;
26 |
27 | public final String name;
28 |
29 | Placeholders(String name) {
30 | this.name = "%" + name + "%";
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/player/HelperPlayer.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.player;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
5 | import org.bukkit.entity.Player;
6 |
7 | public class HelperPlayer {
8 |
9 | public static PlayerData getData(Player p) {
10 | return getPl().getPlayerDataManager().getData(p);
11 | }
12 |
13 | public static void unload(Player p) {
14 | getPl().getPlayerDataManager().clear(p);
15 | }
16 |
17 | private static BetterRTP getPl() {
18 | return BetterRTP.getInstance();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/player/playerdata/PlayerData.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.player.playerdata;
2 |
3 | import java.util.HashMap;
4 |
5 | import org.bukkit.World;
6 | import org.bukkit.entity.Player;
7 |
8 | import lombok.Getter;
9 | import lombok.Setter;
10 | import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
11 |
12 | public class PlayerData {
13 |
14 | public boolean loading; //Is this players data loading?
15 | public final Player player;
16 | //Menus
17 | @Getter final PlayerData_Menus menu = new PlayerData_Menus();
18 | //Player Data
19 | @Getter final HashMap cooldowns = new HashMap<>();
20 | //@Getter @Setter CooldownData globalCooldown;
21 | @Getter @Setter boolean rtping;
22 | @Getter @Setter int rtpCount;
23 | @Getter @Setter long globalCooldown;
24 | @Getter @Setter long invincibleEndTime;
25 |
26 | PlayerData(Player player) {
27 | this.player = player;
28 | }
29 |
30 | public void load(boolean joined) {
31 | //Setup Defaults
32 | //new TaskDownloadPlayerData(this, joined).start();
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/player/playerdata/PlayerDataManager.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.player.playerdata;
2 |
3 | import lombok.NonNull;
4 | import org.bukkit.entity.Player;
5 | import org.jetbrains.annotations.Nullable;
6 |
7 | import java.util.HashMap;
8 | import java.util.UUID;
9 |
10 | public class PlayerDataManager {
11 |
12 | private final HashMap playerData = new HashMap<>();
13 |
14 | public PlayerData getData(@NonNull Player p) {
15 | if (!playerData.containsKey(p))
16 | playerData.put(p, new PlayerData(p));
17 | return playerData.get(p);
18 | }
19 |
20 | @Nullable
21 | public PlayerData getData(UUID id) {
22 | for (Player p : playerData.keySet())
23 | if (p.getUniqueId().equals(id))
24 | return playerData.get(p);
25 | return null;
26 | }
27 |
28 | public void clear() {
29 | playerData.clear();
30 | }
31 |
32 | public void clear(Player p) {
33 | playerData.remove(p);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/player/playerdata/PlayerData_Menus.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.player.playerdata;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 | import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
6 | import org.bukkit.World;
7 | import org.bukkit.inventory.Inventory;
8 |
9 | public class PlayerData_Menus {
10 |
11 | @Getter @Setter private Inventory inv;
12 | @Getter @Setter RTP_INV_SETTINGS invType;
13 | @Getter @Setter World invWorld;
14 | @Getter @Setter RTP_INV_SETTINGS invNextInv;
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownData.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.rtpinfo;
2 |
3 | import java.util.UUID;
4 |
5 | import lombok.Getter;
6 | import lombok.Setter;
7 |
8 | public class CooldownData {
9 |
10 | @Getter private final UUID uuid;
11 | @Getter @Setter private Long time;
12 |
13 | public CooldownData(UUID uuid, Long time) {
14 | this.uuid = uuid;
15 | this.time = time;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/PermissionGroup.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.rtpinfo;
2 |
3 | import lombok.Getter;
4 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
5 | import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPermissionGroup;
6 | import org.bukkit.Bukkit;
7 | import org.bukkit.World;
8 |
9 | import java.util.ArrayList;
10 | import java.util.HashMap;
11 | import java.util.Map;
12 |
13 | public class PermissionGroup {
14 |
15 | String groupName;
16 | @Getter private final HashMap worlds = new HashMap<>();
17 |
18 | @SuppressWarnings("rawtypes")
19 | public PermissionGroup(Map.Entry, ?> fields) {
20 | this.groupName = fields.getKey().toString();
21 |
22 | BetterRTP.debug("- Permission Group: " + groupName);
23 | //Find Location and cache its values
24 | Object value = fields.getValue();
25 | for (Object worldList : ((ArrayList) value)) {
26 | for (Object hash : ((HashMap) worldList).entrySet()) {
27 | Map.Entry worldFields = (Map.Entry) hash;
28 | BetterRTP.debug("- -- World: " + worldFields.getKey());
29 | World world = Bukkit.getWorld(worldFields.getKey().toString());
30 | if (world != null) {
31 | WorldPermissionGroup permissionGroup = new WorldPermissionGroup(groupName, world, worldFields);
32 | this.worlds.put(worldFields.getKey().toString(), permissionGroup);
33 | } else
34 | BetterRTP.debug("- - The Permission Group '" + groupName + "'s world '" + worldFields.getKey() + "' does not exist! Permission Group not loaded...");
35 | }
36 | }
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/QueueData.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.rtpinfo;
2 |
3 | import org.bukkit.Location;
4 |
5 | import lombok.Getter;
6 | import lombok.Setter;
7 |
8 | public class QueueData {
9 |
10 | @Getter final int database_id;
11 | @Getter @Setter Location location;
12 | @Getter final long generated;
13 |
14 | public QueueData(Location location, long generated, int database_id) {
15 | this.location = location;
16 | this.generated = generated;
17 | this.database_id = database_id;
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds;
2 |
3 | import java.util.List;
4 |
5 | import org.bukkit.World;
6 | import org.jetbrains.annotations.Nullable;
7 |
8 | import lombok.NonNull;
9 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
10 |
11 | public interface RTPWorld {
12 |
13 | boolean getUseWorldborder();
14 |
15 | int getCenterX();
16 |
17 | int getCenterZ();
18 |
19 | int getMaxRadius();
20 |
21 | int getMinRadius();
22 |
23 | int getPrice();
24 |
25 | List getBiomes();
26 |
27 | @NonNull World getWorld();
28 |
29 | RTP_SHAPE getShape();
30 |
31 | int getMinY();
32 |
33 | int getMaxY();
34 |
35 | @Nullable
36 | default String getID() {
37 | return null;
38 | }
39 |
40 | long getCooldown();
41 |
42 | boolean getRTPOnDeath();
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE;
5 | import org.bukkit.World;
6 |
7 | import java.util.List;
8 |
9 | public interface RTPWorld_Defaulted {
10 |
11 | void setUseWorldBorder(boolean value);
12 |
13 | void setCenterX(int value);
14 |
15 | void setCenterZ(int value);
16 |
17 | void setMaxRadius(int value);
18 |
19 | void setMinRadius(int value);
20 |
21 | void setPrice(int value);
22 |
23 | void setBiomes(List value);
24 |
25 | void setWorld(World value);
26 |
27 | void setShape(RTP_SHAPE value);
28 |
29 | void setMinY(int value);
30 |
31 | void setMaxY(int value);
32 |
33 | void setCooldown(long value);
34 |
35 | void setRTPOnDeath(boolean bool);
36 |
37 | default void setupDefaults() {
38 | setAllFrom(BetterRTP.getInstance().getRTP().getRTPdefaultWorld());
39 | }
40 |
41 | default void setAllFrom(RTPWorld rtpWorld) {
42 | setMaxRadius(rtpWorld.getMaxRadius());
43 | setMinRadius(rtpWorld.getMinRadius());
44 | setUseWorldBorder(rtpWorld.getUseWorldborder());
45 | setCenterX(rtpWorld.getCenterX());
46 | setCenterZ(rtpWorld.getCenterZ());
47 | setPrice(rtpWorld.getPrice());
48 | setBiomes(rtpWorld.getBiomes());
49 | setShape(rtpWorld.getShape());
50 | setMinY(rtpWorld.getMinY());
51 | setMaxY(rtpWorld.getMaxY());
52 | setCooldown(rtpWorld.getCooldown());
53 | setRTPOnDeath(rtpWorld.getRTPOnDeath());
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WORLD_TYPE.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds;
2 |
3 | public enum WORLD_TYPE {
4 | NORMAL, //Normal world type finds the tallest safe block
5 | NETHER //Nether world types finds the lowest safe block
6 | }
7 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.settings;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 | import me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins.REGIONPLUGINS;
6 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
7 | import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
8 | import org.bukkit.Bukkit;
9 |
10 | import java.util.logging.Level;
11 |
12 | public class SoftDepends {
13 |
14 | void load() {
15 | for (REGIONPLUGINS plugin : REGIONPLUGINS.values())
16 | registerPlugin(plugin);
17 | }
18 |
19 | public void registerPlugin(REGIONPLUGINS pl) {
20 | FileOther.FILETYPE config = BetterRTP.getInstance().getFiles().getType(FileOther.FILETYPE.CONFIG);
21 | String pre = "Settings.Respect.";
22 | pl.getPlugin().setRespecting(config.getBoolean(pre + pl.getSetting_name()));
23 | if (pl.getPlugin().isRespecting())
24 | pl.getPlugin().setEnabled(Bukkit.getPluginManager().isPluginEnabled(pl.getPluginyml_name()));
25 | if (pl.getPlugin().isRespecting())
26 | debug("Respecting `" + pl.getSetting_name() + "` was " + (pl.getPlugin().enabled ? "SUCCESSFULLY" : "NOT") + " registered");
27 | }
28 |
29 |
30 |
31 | static public class RegionPlugin {
32 | @Getter @Setter private boolean respecting;
33 | @Getter @Setter private boolean enabled;
34 | }
35 |
36 | private void debug(String str) {
37 | if (BetterRTP.getInstance().getSettings().isDebug())
38 | BetterRTP.getInstance().getLogger().log(Level.INFO, str);
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/references/web/Updater.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.references.web;
2 |
3 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
4 | import me.SuperRonanCraft.BetterRTP.versions.AsyncHandler;
5 | import org.bukkit.Bukkit;
6 |
7 | import java.io.BufferedReader;
8 | import java.io.InputStreamReader;
9 | import java.net.URL;
10 | import java.net.URLConnection;
11 |
12 | public class Updater {
13 |
14 | public static String updatedVersion = BetterRTP.getInstance().getDescription().getVersion();
15 |
16 | public Updater(BetterRTP pl) {
17 | AsyncHandler.async(() -> {
18 | try {
19 | URLConnection con = new URL(getUrl() + project()).openConnection();
20 | BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
21 | updatedVersion = reader.readLine();
22 | } catch (Exception ex) {
23 | Bukkit.getConsoleSender().sendMessage("[BetterRTP] Failed to check for an update on spigot");
24 | updatedVersion = pl.getDescription().getVersion();
25 | }
26 | });
27 | }
28 |
29 | private String getUrl() {
30 | return "https://api.spigotmc.org/legacy/update.php?resource=";
31 | }
32 |
33 | private String project() {
34 | return "36081";
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/versions/AsyncHandler.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.versions;
2 |
3 | import com.tcoded.folialib.impl.ServerImplementation;
4 | import com.tcoded.folialib.wrapper.task.WrappedTask;
5 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
6 | import org.bukkit.entity.Entity;
7 |
8 | public class AsyncHandler {
9 |
10 | public static void async(Runnable runnable) {
11 | getFolia().runAsync(task -> runnable.run());
12 | //Bukkit.getScheduler().runTaskAsynchronously(BetterRTP.getInstance(), runnable);
13 | }
14 |
15 | public static void sync(Runnable runnable) {
16 | getFolia().runNextTick(task -> runnable.run());
17 | //Bukkit.getScheduler().runTask(BetterRTP.getInstance(), runnable);
18 | }
19 |
20 | public static void syncAtEntity(Entity entity, Runnable runnable) {
21 | getFolia().runAtEntity(entity, task -> runnable.run());
22 | //Bukkit.getScheduler().runTask(BetterRTP.getInstance(), runnable);
23 | }
24 |
25 | public static WrappedTask asyncLater(Runnable runnable, long ticks) {
26 | return getFolia().runLaterAsync(runnable, ticks);
27 | //return Bukkit.getScheduler().runTaskLaterAsynchronously(BetterRTP.getInstance(), runnable, ticks);
28 | }
29 | public static WrappedTask syncLater(Runnable runnable, long ticks) {
30 | return getFolia().runLater(runnable, ticks);
31 | //return Bukkit.getScheduler().runTaskLater(BetterRTP.getInstance(), runnable, ticks);
32 | }
33 |
34 | private static ServerImplementation getFolia() {
35 | return BetterRTP.getInstance().getFoliaHandler().get();
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/me/SuperRonanCraft/BetterRTP/versions/FoliaHandler.java:
--------------------------------------------------------------------------------
1 | package me.SuperRonanCraft.BetterRTP.versions;
2 |
3 | import com.tcoded.folialib.FoliaLib;
4 | import com.tcoded.folialib.impl.ServerImplementation;
5 | import me.SuperRonanCraft.BetterRTP.BetterRTP;
6 |
7 | public class FoliaHandler {
8 |
9 | private ServerImplementation SERVER_IMPLEMENTATION;
10 |
11 | public void load() {
12 | this.SERVER_IMPLEMENTATION = new FoliaLib(BetterRTP.getInstance()).getImpl();
13 | }
14 |
15 | public ServerImplementation get() {
16 | return SERVER_IMPLEMENTATION;
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/resources/economy.yml:
--------------------------------------------------------------------------------
1 | Economy:
2 | ## Enable world charges? ALL Worlds included, even custom worlds!
3 | Enabled: false
4 | ## Set to "0" to not charge for rtp, "Success.Bypass" message will be sent!
5 | ## Give players the permission "betterrtp.eco.bypass" to bypass economy
6 | Price: 500
7 |
8 | Hunger: #Make rtp'ing take up hunger to avoid exploits
9 | Enabled: false
10 | Honches: 4
11 |
12 | CustomWorlds:
13 | ## Enable custom world charging
14 | Enabled: true
15 | Prices:
16 | ## PlayerWorld will be charged "5" when typing /rtp, if they do not have "betterrtp.eco.bypass"
17 | - world: 50
18 | ## Setting the price to "0" will make the "Success.Bypass" message show
19 | - world_end: 0
--------------------------------------------------------------------------------
/src/main/resources/effects.yml:
--------------------------------------------------------------------------------
1 | Sounds:
2 | Enabled: true
3 | ProtocolLibSound: false
4 | ## More sounds at https://www.spigotmc.org/wiki/cc-sounds-list/
5 | Delay: 'entity_tnt_primed'
6 | Success: 'entity_generic_explode'
7 | Titles:
8 | Enabled: true # Enable the titles effect feature
9 | ## All support %player% %x% %y% and %z% placeholders
10 | NoDelay: #Only triggers when there is no delay
11 | Title: '&6Teleporting...'
12 | Subtitle: '&8please wait'
13 | SendMessage: true
14 | Teleport:
15 | Title: '&6Teleported!'
16 | Subtitle: '&fx=%x% y=%y% z=%z%'
17 | SendMessage: true # Allow the teleport success message in chat
18 | Delay:
19 | Title: ''
20 | Subtitle: '&fTeleporting in %time% seconds...'
21 | SendMessage: true # Allow the teleport delay message in chat
22 | Cancelled:
23 | Title: '&eYou moved...'
24 | Subtitle: '&cRtp was cancelled!'
25 | SendMessage: true # Allow the cancelled message in chat too
26 | Loading:
27 | Title: ''
28 | Subtitle: '&7loading chunks... please wait'
29 | SendMessage: true # Allow the loading message in chat
30 | Failed:
31 | Title: ''
32 | Subtitle: '&cFailed! No safe spots located'
33 | SendMessage: true
34 | Particles: #Use `rtp info particles` for a list of particles
35 | Enabled: true
36 | Type: #list of particle types at https://github.com/ByteZ1337/ParticleLib/blob/master/src/main/java/xyz/xenondevs/particle/ParticleEffect.java
37 | - 'EXPLOSION_NORMAL'
38 | - 'CRIT'
39 | Shape: 'EXPLODE' #Types available are "Scan, Teleport and Explode", or use `/rtp info shapes` for a list of shapes
40 | Invincible: #Amount of time a player should not take damage for
41 | Enabled: true
42 | Seconds: 5
43 | Potions: #Use `/rtp info potion_effects` for a list of effects
44 | Enabled: true
45 | Types: #Format :[duration_ticks]:[amplifier] #Default duration=60, amplifier=1
46 | - 'Blindness:60:1'
47 | - 'Invisibility:60:1'
--------------------------------------------------------------------------------
/src/main/resources/ideas.yml:
--------------------------------------------------------------------------------
1 | New:
2 | formatting: add time formatting for cooldowns/delays
3 |
4 |
5 | Done:
6 | #Add flags to `/rtp player ` command
7 | ignore_cooldown: 'ignores current cooldown delay'
8 | ignore_hunger: 'no hunger checks/charge'
9 | ignore_economy: 'no price deducted from bank'
--------------------------------------------------------------------------------
/src/main/resources/lang/README.md:
--------------------------------------------------------------------------------
1 |
2 | Welcome to BetterRTP's language files!
3 |
4 |
5 | ## Wheres the Wiki?
6 | The wiki is available [here](https://github.com/SuperRonanCraft/BetterRTP/wiki)!
7 |
8 | ## Want to Contribute translating?
9 | Fork one of the language files above and help translate!
10 |
11 |
12 | Chat with us on Discord
13 |
14 | Have a Suggestion? Make an issue!
15 |
16 |
17 | Thank you for viewing the Wiki for BetterRTP!
18 | Did this wiki help you out? Please give it a Star so I know it's getting use!
19 |
20 | Check out my other plugins!
21 |
--------------------------------------------------------------------------------
/src/main/resources/locations.yml:
--------------------------------------------------------------------------------
1 | #Locations where rtp will center upon
2 | #Format:
3 | # - LOCATION_NAME:
4 | # World: world
5 | # CenterX: 100
6 | # CenterY: 150
7 | # MaxRadius: 100
8 | # MinRadius: 5
9 | # Shape: square
10 | # MinY: 0
11 | # MaxY: 320
12 |
13 | Enabled: false #enable the locations feature
14 | RequirePermission: false #Require players to have `betterrtp.location.`
15 | UseLocationIfAvailable: true #Will choose a location upon `/rtp` if location(s) is available in the world
16 | UseLocationsInSameWorld: true #Will only choose locations in same world rtp'ing in
17 | # If UseLocationsInSameWorld is set to true, use `betterrtp.bypass.location` to allow rtp'ing to locations in other worlds
18 |
19 | Locations:
20 | - main_loc:
21 | World: world_name
22 | CenterX: 100
23 | CenterZ: 150
24 | MaxRadius: 100 #optional
25 | MinRadius: 5 #optional
26 | Shape: square #optional
27 | MinY: 0 #optional
28 | MaxY: 320 #optional
29 | Cooldown: 300 #optional
--------------------------------------------------------------------------------
/src/main/resources/permissions.yml:
--------------------------------------------------------------------------------
1 | permissions:
2 | betterrtp.*:
3 | children:
4 | betterrtp.use: true
5 | betterrtp.world: true
6 | betterrtp.world.*: true
7 | betterrtp.bypass.*: true
8 | betterrtp.player: true
9 | betterrtp.reload: true
10 | betterrtp.updater: true
11 | betterrtp.group.*: true
12 | betterrtp.world:
13 | description: Ability to use the world command
14 | betterrtp.world.*:
15 | description: RTP in all enabled worlds
16 | betterrtp.world.:
17 | description: RTP in world named world
18 | betterrtp.bypass.*:
19 | children:
20 | betterrtp.bypass.cooldown: true
21 | betterrtp.bypass.delay: true
22 | betterrtp.bypass.economy: true
23 | betterrtp.bypass.hunger: true
24 | betterrtp.use:
25 | description: Use RTP command
26 | default: true
27 | betterrtp.player:
28 | description: RTP another player
29 | betterrtp.biome:
30 | description: RTP to specific biomes
31 | betterrtp.sign:
32 | description: Ability to create an RTP sign
33 | #Locations
34 | betterrtp.location:
35 | description: Ability to use the location command
36 | betterrtp.location.*:
37 | description: Ability to use all locations if permissions are enabled in locations.yml
38 | default: op
39 | #Bypasses
40 | betterrtp.bypass.cooldown:
41 | description: Bypass cooldowns
42 | betterrtp.bypass.delay:
43 | description: Bypass delays
44 | betterrtp.bypass.economy:
45 | description: Bypass economy
46 | betterrtp.bypass.hunger:
47 | description: Bypass hunger
48 | #Reload
49 | betterrtp.reload:
50 | description: Reload the config
51 | default: op
52 | betterrtp.updater:
53 | description: Get notification on new updates
54 | default: op
55 | betterrtp.test:
56 | description: While debugger enabled, be able to test particles, potion effects and sounds
57 | default: op
58 | #Permission Groups
59 | betterrtp.group.*:
60 | description: Allow access to all permission groups
61 | default: op
--------------------------------------------------------------------------------
/src/main/resources/placeholders.yml:
--------------------------------------------------------------------------------
1 | ## These are a list of placeholders for your use, Editting these will do nothing!
2 | betterrtp_count: 'Get total amount of rtp''s done'
3 | betterrtp_cooldown: 'Get cooldown in current world'
4 | betterrtp_cooldown_: 'Get cooldown of a specified world'
5 | betterrtp_cooldowntime: 'Get cooldown time subject to in current world'
6 | betterrtp_cooldowntime_: 'Get cooldown time subject to in specified world'
7 | betterrtp_canrtp: 'Get the reason or yes output if player can rtp in current world'
8 | betterrtp_canrtp_: 'Get the reason or yes output if player can rtp in set world'
9 | betterrtp_canrtpcooldown: 'Get if a player can rtp just based off their cooldown'
10 | betterrtp_canrtpcooldown_: 'Get if a player can rtp just based off their cooldown for this world'
11 | betterrtp_canrtpprice: 'Get if a player can rtp just based off their bank account'
12 | betterrtp_canrtpprice_: 'Get if a player can rtp just based off their bank account for this world'
13 | betterrtp_canrtphunger: 'Get if a player can rtp just based off their hunger'
14 | betterrtp_canrtphunger_: 'Get if a player can rtp just based off their hunger for this world'
15 | betterrtp_price: 'Get the price of rtp''ing in current world'
16 | betterrtp_price_: 'Get the price of rtp''ing in specified world'
17 |
18 | ##Config section for placeholder outputs
19 | Config:
20 | TimeFormat:
21 | Days: '{0} Day(s)'
22 | Hours: '{0} Hour(s)'
23 | Minutes: '{0} Min(s)'
24 | Seconds: '{0} Secs'
25 | ZeroAll: 'None'
26 | Infinite: 'Inf'
27 | Separator:
28 | Middle: ', ' #Ex: 1 Days, 5 Hours, 2 mins and 5 secs
29 | Last: ' and ' #Ex: 1 Mins and 10 Secs
30 | CanRTP:
31 | Success: '&aYes'
32 | NoPermission: '&cNo Permission'
33 | Cooldown: '&fCooling Down'
34 | Price: '&cNo. &7Reason: &eBankrupt'
35 | Hunger: '&cNo. &7Reason: &3Starvation'
--------------------------------------------------------------------------------
/src/main/resources/signs.yml:
--------------------------------------------------------------------------------
1 | Settings:
2 | Enabled: false
3 | Title: "[RTP]"
--------------------------------------------------------------------------------
/todo.yml:
--------------------------------------------------------------------------------
1 |
2 | To-Do list for BetterRTP
3 |
4 |
5 | Worlds with spaces:
6 | - Support for worlds with spaces in their names
7 |
8 | -----DONE-----
9 | Add KingdomsX support:
10 | Wiki: https://github.com/CryptoMorin/KingdomsX/wiki/API
11 | Plugin: https://www.spigotmc.org/resources/kingdomsx.77670/
12 |
13 | Queue System:
14 | - Allow for safe spots to save every so often to not run in real time when players are rtp'ing
15 |
16 | CustomWorlds:
17 | - If a world has a custom config, if its missing a centerx/z, there will be a RNG error
18 |
19 | Suggestions:
20 | - Halos#1112: option to not rtp players near each other
21 |
--------------------------------------------------------------------------------