api fix + first addon added!

This commit is contained in:
SuperRonanCraft 2020-11-11 17:44:52 -05:00
parent b7b408e3d8
commit 08607beef4
93 changed files with 278 additions and 173 deletions

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>BetterRTP</artifactId>
<groupId>me.SuperRonanCraft</groupId>
<version>2.14.5</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Addon-FlashBack</artifactId>
<version>1.0</version>
<build>
<finalName>${project.parent.artifactId}-${project.name}-${project.version}</finalName>
</build>
<dependencies>
<dependency>
<groupId>me.SuperRonanCraft</groupId>
<artifactId>Main</artifactId>
<version>2.14.5</version>
</dependency>
</dependencies>
</project>

View File

@ -1,12 +0,0 @@
package me.SuperRonanCraft.BetterRTP.Addon.FlashBack;
import me.SuperRonanCraft.BetterRTP.player.events.RTPEventListener;
import org.bukkit.entity.Player;
public class Events implements RTPEventListener {
@Override
public void teleportedEvent(Player p) {
}
}

View File

@ -1,12 +0,0 @@
package me.SuperRonanCraft.BetterRTP.Addon.FlashBack;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
@Override
public void onEnable() {
BetterRTP.getInstance().getEvents().addListener(new Events());
}
}

View File

@ -1,6 +0,0 @@
main: me.SuperRonanCraft.BetterRTP.Addon.FlashBack
version: 1.0
api-version: '1.13'
name: BetterRTP-Addon-FlashBack
depend: [BetterRTP]

94
BetterRTPAddons/pom.xml Normal file
View File

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTPAddons</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<!-- Shade PaperLib into project -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
<relocations>
<relocation>
<pattern>io.papermc.lib</pattern>
<shadedPattern>me.SuperRonanCraft.BetterRTPAddons.paperlib</shadedPattern>
</relocation>
</relocations>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Local Server Building -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<outputDirectory>../../../Java/plugins</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<!-- PaperMC Repo -->
<repository>
<id>papermc</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<!--Spigot API-->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!-- Spigot Stuff -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!-- Paper Library for Async Chunk/Teleport -->
<dependency>
<groupId>io.papermc</groupId>
<artifactId>paperlib</artifactId>
<version>1.0.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId>
<version>2.14.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,20 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportEvent;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class Events implements Listener {
void load() {
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
}
@EventHandler
void onTeleport(RTP_TeleportEvent e) {
System.out.println("Player " + e.getPlayer().getName() + " was rtp'd!");
new PlayerFlashback(e.getPlayer(), e.getOldLocation(), 20L * 10);
}
}

View File

@ -0,0 +1,23 @@
package me.SuperRonanCraft.BetterRTPAddons;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
private static Main instance;
private final Events events = new Events();
@Override
public void onEnable() {
instance = this;
load();
}
void load() {
events.load();
}
public static Main getInstance() {
return instance;
}
}

View File

@ -0,0 +1,25 @@
package me.SuperRonanCraft.BetterRTPAddons;
import io.papermc.lib.PaperLib;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
public class PlayerFlashback {
Player p;
Location oldLoc;
PlayerFlashback(Player p, Location oldLoc, Long delayInTicks) {
this.p = p;
this.oldLoc = oldLoc;
Bukkit.getScheduler().runTaskLater(Main.getInstance(), getTimedFlash(), delayInTicks);
}
private Runnable getTimedFlash() {
return () -> {
System.out.println("Player teleported back to old spot!");
PaperLib.teleportAsync(p, oldLoc);
};
}
}

View File

@ -0,0 +1,6 @@
- Pre-rtp effects
- Mute/Disable chat feature
- More post-rtp effects
- gui with configured/dynamic parameters
- save previous rtps in database and show in gui
- gui all the things!

View File

@ -0,0 +1,6 @@
main: me.SuperRonanCraft.BetterRTPAddons.Main
version: 1.0
api-version: '1.13'
name: BetterRTPAddons
depend: [BetterRTP]

View File

@ -1,66 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>BetterRTP</artifactId>
<groupId>me.SuperRonanCraft</groupId>
<version>2.14.5</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Main</artifactId>
<build>
<finalName>${project.parent.artifactId}-${project.parent.version}</finalName>
<plugins>
<plugin>
<!-- Shade PaperLib into project -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
<relocations>
<relocation>
<pattern>io.papermc.lib</pattern>
<shadedPattern>me.SuperRonanCraft.BetterRTP.paperlib</shadedPattern>
</relocation>
</relocations>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<id>hack-binary</id>
<phase>clean</phase>
<configuration>
<file>${basedir}/../LocalJars/Residence4.9.1.9.jar</file>
<repositoryLayout>default</repositoryLayout>
<groupId>com.bekvon.bukkit</groupId>
<artifactId>residence</artifactId>
<version>4.9.1.9</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,22 +0,0 @@
package me.SuperRonanCraft.BetterRTP.player.events;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
public class RTPEventInitiator {
private final List<RTPEventListener> listeners = new ArrayList<>();
public void addListener(RTPEventListener toAdd) {
listeners.add(toAdd);
}
public void eventCall_Teleport(Player p) {
System.out.println("Hello!!");
// Notify everybody that may be interested.
for (RTPEventListener l : listeners)
l.teleportedEvent(p);
}
}

View File

@ -1,9 +0,0 @@
package me.SuperRonanCraft.BetterRTP.player.events;
import org.bukkit.entity.Player;
public interface RTPEventListener {
void teleportedEvent(Player p);
}

67
pom.xml
View File

@ -6,28 +6,69 @@
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId>
<packaging>pom</packaging>
<packaging>jar</packaging>
<version>2.14.5</version>
<modules>
<module>Addon-FlashBack</module>
<module>Main</module>
</modules>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<id>hack-binary</id>
<phase>clean</phase>
<configuration>
<file>${basedir}/LocalJars/Residence4.9.1.9.jar</file>
<repositoryLayout>default</repositoryLayout>
<groupId>com.bekvon.bukkit</groupId>
<artifactId>residence</artifactId>
<version>4.9.1.9</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Shade PaperLib into project -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
<relocations>
<relocation>
<pattern>io.papermc.lib</pattern>
<shadedPattern>me.SuperRonanCraft.BetterRTP.paperlib</shadedPattern>
</relocation>
</relocations>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Local Server Building -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<outputDirectory>../../../Java/plugins</outputDirectory>
<outputDirectory>../../Java/plugins</outputDirectory>
</configuration>
</plugin>
</plugins>
@ -103,12 +144,6 @@
<version>1.0.5</version>
<scope>compile</scope>
</dependency>
<!-- Particles Library -->
<dependency>
<groupId>xyz.xenondevs</groupId>
<artifactId>particle</artifactId>
<version>1.5.1</version>
</dependency>
<!-- Worldguard (https://dev.bukkit.org/projects/worldguard) -->
<dependency>
<groupId>com.sk89q.worldguard</groupId>
@ -116,6 +151,12 @@
<version>7.0.3</version>
<scope>provided</scope>
</dependency>
<!-- Particles Library -->
<dependency>
<groupId>xyz.xenondevs</groupId>
<artifactId>particle</artifactId>
<version>1.5.1</version>
</dependency>
<!-- GriefPrevention (https://www.spigotmc.org/resources/griefprevention.1884/) -->
<dependency>
<groupId>com.github.TechFortress</groupId>

View File

@ -3,7 +3,6 @@ package me.SuperRonanCraft.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.PlayerInfo;
import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.events.Listener;
import me.SuperRonanCraft.BetterRTP.player.events.RTPEventInitiator;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP;
import me.SuperRonanCraft.BetterRTP.references.Permissions;
import me.SuperRonanCraft.BetterRTP.references.depends.DepEconomy;
@ -31,7 +30,7 @@ public class BetterRTP extends JavaPlugin {
private final RTPInventories invs = new RTPInventories();
private final PlayerInfo pInfo = new PlayerInfo();
private final Settings settings = new Settings();
private final RTPEventInitiator events = new RTPEventInitiator();
private final RTPEventRegistry events = new RTPEventRegistry();
public void onEnable() {
instance = this;
@ -124,7 +123,7 @@ public class BetterRTP extends JavaPlugin {
getInstance().getLogger().info(str);
}
public RTPEventInitiator getEvents() {
public RTPEventRegistry getEvents() {
return events;
}
}

View File

@ -15,7 +15,7 @@ public class CmdTest implements RTPCommand, RTPCommandHelpable {
public void execute(CommandSender sendi, String label, String[] args) {
if (sendi instanceof Player) {
Player p = (Player) sendi;
BetterRTP.getInstance().getRTP().getTeleport().afterTeleport(p, p.getLocation(), 0, 0);
BetterRTP.getInstance().getRTP().getTeleport().afterTeleport(p, p.getLocation(), 0, 0, p.getLocation());
} else
sendi.sendMessage("Console is not able to execute this command! Try '/rtp help'");
}

View File

@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp;
import io.papermc.lib.PaperLib;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportEvent;
import org.bukkit.Chunk;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
@ -42,6 +43,7 @@ public class RTPTeleport {
void sendPlayer(final CommandSender sendi, final Player p, final Location loc, final int price,
final int attempts) throws NullPointerException {
Location oldLoc = p.getLocation();
loadingTeleport(p, sendi); //Send loading message to player who requested
List<CompletableFuture<Chunk>> asyncChunks = getChunks(loc); //Get a list of chunks
//playerLoads.put(p, asyncChunks);
@ -53,7 +55,7 @@ public class RTPTeleport {
PaperLib.teleportAsync(p, loc).thenRun(new BukkitRunnable() { //Async teleport
@Override
public void run() {
afterTeleport(p, loc, price, attempts);
afterTeleport(p, loc, price, attempts, oldLoc);
if (sendi != p) //Tell player who requested that the player rtp'd
sendSuccessMsg(sendi, p.getName(), loc, price, false, attempts);
getPl().getCmd().rtping.remove(p.getUniqueId()); //No longer rtp'ing
@ -74,14 +76,14 @@ public class RTPTeleport {
//Effects
public void afterTeleport(Player p, Location loc, int price, int attempts) { //Only a successful rtp should run this OR '/rtp test'
public void afterTeleport(Player p, Location loc, int price, int attempts, Location oldLoc) { //Only a successful rtp should run this OR '/rtp test'
eSounds.playTeleport(p);
eParticles.display(p);
ePotions.giveEffects(p);
eTitles.showTitle(RTPTitles.RTP_TITLE_TYPE.TELEPORT, p, loc, attempts, 0);
if (eTitles.sendMsg(RTPTitles.RTP_TITLE_TYPE.TELEPORT))
sendSuccessMsg(p, p.getName(), loc, price, true, attempts);
getPl().getEvents().eventCall_Teleport(p);
getPl().getServer().getPluginManager().callEvent(new RTP_TeleportEvent(p, loc, oldLoc));
}
public void beforeTeleportInstant(CommandSender sendi, Player p) {

View File

@ -0,0 +1,41 @@
package me.SuperRonanCraft.BetterRTP.references.customEvents;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
public class RTP_TeleportEvent extends Event {
Player p;
Location loc;
Location oldLoc;
private static final HandlerList handler = new HandlerList();
public RTP_TeleportEvent(Player p, Location loc, Location oldLoc) {
this.p = p;
this.loc = loc;
this.oldLoc = oldLoc;
}
public Player getPlayer() {
return p;
}
public Location getLocation() {
return loc;
}
public Location getOldLocation() {
return oldLoc;
}
@Override
public HandlerList getHandlers() {
return handler;
}
public static HandlerList getHandlerList() {
return handler;
}
}

View File

@ -1,4 +1,4 @@
main: me.SuperRonanCraft.BetterRTP.Main
main: me.SuperRonanCraft.BetterRTP.BetterRTP
version: '2.14.4'
name: BetterRTP
author: SuperRonanCraft