Skip to content

Commit

Permalink
Rework Placeholder expansion
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexProgrammerDE committed Jan 27, 2022
1 parent a85388f commit 623b241
Show file tree
Hide file tree
Showing 6 changed files with 110 additions and 71 deletions.
12 changes: 9 additions & 3 deletions PistonQueuePlaceholder/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@

<groupId>net.pistonmaster</groupId>
<artifactId>PistonQueuePlaceholder</artifactId>
<version>1.0.0</version>
<version>1.1.0</version>
<packaging>jar</packaging>

<name>PistonQueuePlaceholder</name>

<description>Puts queue data in papi</description>
<description>Adds queue data to Placeholder API</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down Expand Up @@ -44,7 +44,7 @@
<relocations>
<relocation>
<pattern>io.papermc.lib</pattern>
<shadedPattern>net.pistonmaster.pistonqueueplaceholder.paperlib</shadedPattern>
<shadedPattern>net.pistonmaster.pistonqueue.placeholder.paperlib</shadedPattern>
</relocation>
</relocations>
</configuration>
Expand Down Expand Up @@ -98,5 +98,11 @@
<version>1.0.7</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package net.pistonmaster.pistonqueue.placeholder;

import lombok.RequiredArgsConstructor;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;

@RequiredArgsConstructor
public final class PAPIExpansion extends PlaceholderExpansion {
private final PistonQueuePlaceholder plugin;

@Override
public boolean canRegister() {
return true;
}

@Override
public @NotNull String getAuthor() {
return "AlexProgrammerDE";
}

@Override
public @NotNull String getIdentifier() {
return "PistonQueue";
}

@Override
public @NotNull String getVersion() {
return plugin.getDescription().getVersion();
}

@Override
public String onRequest(OfflinePlayer player, String identifier) {
if (identifier.equals("online_queue_regular")) {
return String.valueOf(plugin.getOnlineQueueRegular());
}

if (identifier.equals("online_queue_priority")) {
return String.valueOf(plugin.getOnlineQueuePriority());
}

if (identifier.equals("online_queue_veteran")) {
return String.valueOf(plugin.getOnlineQueueVeteran());
}

if (identifier.equals("online_main_regular")) {
return String.valueOf(plugin.getOnlineMainRegular());
}

if (identifier.equals("online_main_priority")) {
return String.valueOf(plugin.getOnlineMainPriority());
}

if (identifier.equals("online_main_veteran")) {
return String.valueOf(plugin.getOnlineMainVeteran());
}

return null;
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package net.pistonmaster.pistonqueueplaceholder;
package net.pistonmaster.pistonqueue.placeholder;

import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteStreams;
import io.papermc.lib.PaperLib;
import lombok.Getter;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
Expand All @@ -11,10 +12,14 @@

import java.util.logging.Logger;

@Getter
public final class PistonQueuePlaceholder extends JavaPlugin implements PluginMessageListener {
protected int regular = 0;
protected int priority = 0;
protected int veteran = 0;
private int onlineQueueRegular = 0;
private int onlineQueuePriority = 0;
private int onlineQueueVeteran = 0;
private int onlineMainRegular = 0;
private int onlineMainPriority = 0;
private int onlineMainVeteran = 0;

@Override
public void onEnable() {
Expand All @@ -41,16 +46,20 @@ public void onPluginMessageReceived(String channel, @NotNull Player player, byte
ByteArrayDataInput in = ByteStreams.newDataInput(bytes);
String subChannel = in.readUTF();

if (subChannel.equalsIgnoreCase("size")) {
regular = in.readInt();
priority = in.readInt();
veteran = in.readInt();
if (subChannel.equalsIgnoreCase("onlineQueue")) {
onlineQueueRegular = in.readInt();
onlineQueuePriority = in.readInt();
onlineQueueVeteran = in.readInt();
} else if (subChannel.equalsIgnoreCase("onlineMain")) {
onlineMainRegular = in.readInt();
onlineMainPriority = in.readInt();
onlineMainVeteran = in.readInt();
}
}

private void checkIfBungee() {
if (!PaperLib.isSpigot()) {
getLogger().severe(ChatColor.RED + "You probably run CraftBukkit... Please update at least to spigot for this to work...");
getLogger().severe(ChatColor.RED + "You probably run CraftBukkit. Update at least to spigot for this plugin to work!");
getLogger().severe(ChatColor.RED + "Plugin disabled!");
getServer().getPluginManager().disablePlugin(this);
}
Expand Down

This file was deleted.

4 changes: 2 additions & 2 deletions PistonQueuePlaceholder/src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: PistonQueuePlaceholder
version: ${project.version}
main: net.pistonmaster.pistonqueueplaceholder.PistonQueuePlaceholder
main: net.pistonmaster.pistonqueue.placeholder.PistonQueuePlaceholder
api-version: 1.13
authors: [ AlexProgrammerDE ]
description: Puts queue data in papi
description: Adds queue data to Placeholder API
website: https://pistonmaster.net/
depend: [ PlaceholderAPI ]
Original file line number Diff line number Diff line change
Expand Up @@ -248,19 +248,33 @@ default void sendCustomData() {
return;
}

ByteArrayDataOutput out = ByteStreams.newDataOutput();
ByteArrayDataOutput outOnlineQueue = ByteStreams.newDataOutput();

out.writeUTF("size");
out.writeInt(QueueType.REGULAR.getQueueMap().size());
out.writeInt(QueueType.PRIORITY.getQueueMap().size());
out.writeInt(QueueType.VETERAN.getQueueMap().size());
outOnlineQueue.writeUTF("onlineQueue");
outOnlineQueue.writeInt(QueueType.REGULAR.getQueueMap().size());
outOnlineQueue.writeInt(QueueType.PRIORITY.getQueueMap().size());
outOnlineQueue.writeInt(QueueType.VETERAN.getQueueMap().size());

ByteArrayDataOutput outOnlineMain = ByteStreams.newDataOutput();

outOnlineQueue.writeUTF("onlineMain");
outOnlineQueue.writeInt(QueueType.REGULAR.getPlayersWithTypeInMain().get());
outOnlineQueue.writeInt(QueueType.PRIORITY.getPlayersWithTypeInMain().get());
outOnlineQueue.writeInt(QueueType.VETERAN.getPlayersWithTypeInMain().get());

Set<String> servers = new HashSet<>();
networkPlayers.forEach(player -> {
if (player.getCurrentServer().isPresent()) {
getServer(player.getCurrentServer().get()).ifPresent(serverInfoWrapper ->
serverInfoWrapper.sendPluginMessage("piston:queue", out.toByteArray()));
servers.add(player.getCurrentServer().get());
}
});

for (String server : servers) {
getServer(server).ifPresent(serverInfoWrapper ->
serverInfoWrapper.sendPluginMessage("piston:queue", outOnlineQueue.toByteArray()));
getServer(server).ifPresent(serverInfoWrapper ->
serverInfoWrapper.sendPluginMessage("piston:queue", outOnlineMain.toByteArray()));
}
}

default void processConfig(File dataDirectory) {
Expand Down

0 comments on commit 623b241

Please sign in to comment.