Compare commits

...
17 Commits
Author SHA1 Message Date
Ben12345rocks 5f19cb1ec8 Update version number 2019-11-02 21:08:21 -04:00
Ben12345rocks ac5ffa0f7c Bug fix 2019-10-31 17:20:40 -04:00
Ben12345rocks 114e07eb01 Improvements 2019-10-30 21:30:49 -04:00
Ben12345rocks 8ba1d75ab3 Bug fix 2019-10-30 20:30:59 -04:00
Ben12345rocks b3555918ed Improvements 2019-10-30 20:12:56 -04:00
Ben12345rocks 0759c05ed1 Bug fix 2019-10-29 21:35:26 -04:00
Ben12345rocks 278a8f70f2 Config improvements 2019-10-29 16:59:32 -04:00
Ben12345rocks fb5dc9923f Bug fix 2019-10-28 16:49:34 -04:00
Ben12345rocks f942505e62 Redo bungee system 2019-10-27 14:14:41 -04:00
Ben12345rocks 2d2b2db0a7 Bug fix 2019-10-27 12:52:40 -04:00
Ben 18d5078842 Update issue templates 2019-10-24 17:08:57 -04:00
Ben12345rocks 074b2c51e2 Another bug fix 2019-10-24 16:53:45 -04:00
Ben12345rocks 539194720a Possible bug fix 2019-10-24 16:50:06 -04:00
Ben 19fc5865fa Update issue templates 2019-10-20 15:51:09 -04:00
Ben f0d58e0c6a Update issue templates 2019-10-20 12:45:12 -04:00
Ben ddc2bea418 Update issue templates 2019-10-20 12:44:08 -04:00
Ben 24da6893ac Update issue templates 2019-10-20 12:39:37 -04:00
17 changed files with 360 additions and 145 deletions

No files matched your search

+30
View File
@@ -0,0 +1,30 @@
---
name: Bug report
about: Bug report for VotingPlugin
title: ''
labels: Possible Bug
assignees: ''
---
**Versions**
Plugin version and spigot version.
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots/Configs**
If applicable, add screenshots to help explain your problem and/or configs relating to the issue.
**Additional context**
Add any other context about the problem here.
+20
View File
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea
title: ''
labels: Possible Feature
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
@@ -0,0 +1,17 @@
---
name: Question/Concerns
about: Ask about a question or a concern about the plugin
title: ''
labels: Question/Concern
assignees: ''
---
**Versions**
Plugin version and spigot version
**Relevant information**
Configs that relate to the issue in a pastebin.
**Context**
Context about the question/concern
+15 -3
View File
@@ -950,6 +950,16 @@ UseBungeecoord: false
# Also can be applied to rewards
Server: PleaseSet
# Bungee communication, add bungee host/port here
BungeeServer:
Host: '127.0.0.1'
Port: 1297
# Bungee communication, add this to bungee server
SpigotServer:
Host: '127.0.0.1'
POrt: 1298
# Get the plugin to broadcast to all servers
BungeeBroadcast: false
@@ -962,9 +972,11 @@ DisabledCommands: []
# ---------------------------------------------------------
# Mysql cache options
# Clearing cache forces the plugin to pull from database
# Not needed unless you are using multiple servers
# ---------------------------------------------------------
# Clear cache on update, setting to true reduces update speed
# Also may require AlwaysUpdate set to true
ClearCacheOnUpdate: false
# Clear mysql on player join always
@@ -975,12 +987,12 @@ ClearCacheOnJoin: false
# Would recommend for some bungee setups
ClearCacheOnVote: false
# Will force GUI's to close on every click
AlwaysCloseInventory: false
# ###############################################################
# Deprecated options, don't recommend using any of these
# Will force GUI's to close on every click
AlwaysCloseInventory: false
# Options for request api
# Current methods:
# ANVIL
+22
View File
@@ -7,6 +7,28 @@
SendVotesToAllServers: true
# Have a reward on 1 server on the network
SendToOnlineServer: false
# Tell servers to broadcast
Broadcast: true
# List of servers the plugin won't send the vote to
BlockedServers:
- hub
FallBackServer: factions
# Bungee communication, Add this to each spigot server
BungeeServer:
Host: '127.0.0.1'
Port: 1297
# Bungee communication, add each spigot server here
SpigotServers:
lobby:
Host: '127.0.0.1'
Port: 1298
factions:
Host: '127.0.0.1'
Port: 1999
# MYSQL Required
# MYSQL INFO --------------------------
Host: ''
+1 -1
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.20.3</version>
<version>5.20.4</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -1,14 +1,19 @@
package com.Ben12345rocks.VotingPlugin;
import java.util.ArrayList;
import java.util.UUID;
import com.Ben12345rocks.AdvancedCore.Util.PluginMessage.PluginMessage;
import com.Ben12345rocks.AdvancedCore.Util.PluginMessage.PluginMessageHandler;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.ClientHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketReceiver;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import lombok.Getter;
public class BungeeHandler {
private static BungeeHandler instance = new BungeeHandler();
@@ -16,32 +21,100 @@ public class BungeeHandler {
return instance;
}
@Getter
private SocketHandler socketHandler;
@Getter
private ClientHandler clientHandler;
public void close() {
socketHandler.closeConnection();
clientHandler.stopConnection();
}
public void load() {
PluginMessage.getInstance().add(new PluginMessageHandler("bungeevote") {
Bukkit.getScheduler().runTask(Main.plugin, new Runnable() {
@Override
public void onRecieve(String subchannel, ArrayList<String> data) {
String uuid = data.get(0);
Main.plugin.getMysql().clearCache(uuid);
User user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
user.bungeeVote();
public void run() {
clientHandler = new ClientHandler(Config.getInstance().getBungeeServerHost(),
Config.getInstance().getBungeeServerPort());
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 3) {
if (data[0].equalsIgnoreCase("bungeevote")) {
String uuid = data[1];
User user = null;
if (!uuid.isEmpty()) {
user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
} else {
user = UserManager.getInstance().getVotingPluginUser(data[2]);
}
user.clearCache();
user.bungeeVote(data[3]);
}
}
}
});
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 3) {
if (data[0].equalsIgnoreCase("bungeevoteonline")) {
String uuid = data[1];
User user = null;
if (!uuid.isEmpty()) {
user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
} else {
user = UserManager.getInstance().getVotingPluginUser(data[2]);
}
user.clearCache();
user.bungeeVoteOnline(data[3]);
}
}
}
});
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 2) {
if (data[0].equalsIgnoreCase("BungeeBroadcast")) {
VoteSite site = Main.plugin.getVoteSite(data[1]);
String p = data[3];
User user = UserManager.getInstance().getVotingPluginUser(p);
if (site != null) {
site.broadcastVote(user, false);
} else {
Main.plugin.getLogger().warning("No votesite for " + data[1]);
}
Main.plugin.setUpdate(true);
}
}
}
});
}
});
PluginMessage.getInstance().add(new PluginMessageHandler("Broadcast") {
socketHandler = new SocketHandler(Main.plugin.getVersion(), Config.getInstance().getSpigotServerHost(),
Config.getInstance().getSpigotServerPort());
@Override
public void onRecieve(String subchannel, ArrayList<String> data) {
VoteSite site = Main.plugin.getVoteSite(data.get(0));
String p = data.get(1);
User user = UserManager.getInstance().getVotingPluginUser(p);
if (site != null) {
site.broadcastVote(user, false);
} else {
Main.plugin.getLogger().warning("No votesite for " + data.get(0));
}
Main.plugin.setUpdate(true);
}
});
}
public void sendData(String... strings) {
clientHandler.sendMessage(strings);
}
}
@@ -207,6 +207,10 @@ public class Config extends YMLFile {
@Getter
private int convertDelay;
@ConfigDataInt(path = "ConvertAmount")
@Getter
private int convertAmount = 250;
@ConfigDataBoolean(path = "EnableDailyRewards")
@Getter
private boolean enableDailyRewards = false;
@@ -311,11 +315,27 @@ public class Config extends YMLFile {
@ConfigDataBoolean(path = "AllowUnJoinedCheckServer")
@Getter
private boolean allowUnJoinedCheckServer = true;
@ConfigDataListString(path = "DisabledCommands")
@Getter
private ArrayList<String> disabledCommands = new ArrayList<String>();
@ConfigDataString(path = "BungeeServer.Host")
@Getter
private String bungeeServerHost = "";
@ConfigDataString(path = "SpigotServer.Host")
@Getter
private String spigotServerHost = "";
@ConfigDataInt(path = "BungeeServer.Port")
@Getter
private int bungeeServerPort = 1297;
@ConfigDataInt(path = "SpigotServer.Port")
@Getter
private int spigotServerPort = 1298;
/**
* Instantiates a new config.
*/
@@ -70,5 +70,9 @@ public class PlayerVoteEvent extends Event {
@Getter
@Setter
private boolean bungee = false;
@Getter
@Setter
private boolean forceBungee = false;
}
@@ -8,7 +8,6 @@ import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Listeners.AdvancedCoreLoginEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
@@ -52,9 +51,6 @@ public class PlayerJoinEvent implements Listener {
}
boolean data = user.getData().hasData();
if (Main.plugin.getOptions().isProcessRewards() && Config.getInstance().isUseBungeeCoord() && data) {
user.bungeeVote();
}
// run remind
user.loginMessage();
@@ -99,7 +99,7 @@ public class PlayerVoteListener implements Listener {
VoteParty.getInstance().vote(user, event.isRealVote());
// broadcast vote if enabled in config
if (config.isBroadcastVotesEnabled()) {
if (config.isBroadcastVotesEnabled() && (!Config.getInstance().isBungeeBroadcast() || !event.isBungee())) {
if (!Config.getInstance().getFormatBroadcastWhenOnline() || user.isOnline()) {
voteSite.broadcastVote(user);
}
@@ -124,7 +124,7 @@ public class PlayerVoteListener implements Listener {
if (((user.isOnline() || voteSite.isGiveOffline()) && Main.plugin.getOptions().isProcessRewards())
|| event.isBungee()) {
user.playerVote(voteSite, true, false, event.isBungee());
user.playerVote(voteSite, true, false, event.isForceBungee());
user.closeInv();
} else {
user.addOfflineVote(voteSite.getKey());
@@ -213,7 +213,7 @@ public class Main extends AdvancedCorePlugin {
ArrayList<String> converted = new ArrayList<String>();
int i = 0;
while (i < 250 && i < uuids.size()) {
while (i < Config.getInstance().getConvertAmount() && i < uuids.size()) {
String uuid = uuids.get(i);
try {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
@@ -748,7 +748,6 @@ public class Main extends AdvancedCorePlugin {
@Override
public void onPostLoad() {
if (Config.getInstance().isUseBungeeCoord()) {
registerBungeeChannels();
BungeeHandler.getInstance().load();
if (Config.getInstance().isUseBungeeCoord()) {
if (getOptions().getServer().equalsIgnoreCase("PleaseSet")) {
@@ -997,6 +996,9 @@ public class Main extends AdvancedCorePlugin {
}
}, 0);
HandlerList.unregisterAll(plugin);
if (Config.getInstance().isUseBungeeCoord()) {
BungeeHandler.getInstance().close();
}
plugin = null;
}
@@ -1139,13 +1141,9 @@ public class Main extends AdvancedCorePlugin {
ServerData.getInstance().updateValues();
Signs.getInstance().updateSigns();
boolean bungee = Config.getInstance().isUseBungeeCoord();
for (Player player : Bukkit.getOnlinePlayers()) {
User user = UserManager.getInstance().getVotingPluginUser(player);
user.offVote();
if (bungee) {
user.bungeeVote(false);
}
}
time1 = ((System.currentTimeMillis() - time) / 1000);
plugin.debug("Background task finished in " + time1 + " seconds");
@@ -1,6 +1,7 @@
package com.Ben12345rocks.VotingPlugin.Objects;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
@@ -599,44 +600,39 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
.withPlaceHolder("votes", "" + getTotal(TopVoter.Weekly)).setOnline(isOnline()).send(this);
}
public void bungeeVote() {
bungeeVote(true);
}
public void bungeeVote(boolean clearCache) {
public void bungeeVote(String service) {
if (Config.getInstance().isUseBungeeCoord()) {
if (clearCache) {
Main.plugin.getMysql().clearCache(getUUID());
}
Main.plugin.debug("Bungee vote for " + getPlayerName() + " on " + service);
checkBungeeData(getData().getString("Proxy_" + Main.plugin.getOptions().getServer()));
getData().setString("Proxy_" + Main.plugin.getOptions().getServer(), "");
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(service), getPlayerName(), service,
true);
voteEvent.setBungee(true);
voteEvent.setForceBungee(true);
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
checkBungeeData(getData().getString("Proxy_Online"));
getData().setString("Proxy_Online", "");
@Override
public void run() {
plugin.getServer().getPluginManager().callEvent(voteEvent);
}
});
}
}
private void checkBungeeData(String data) {
if (!data.isEmpty()) {
for (String serviceData : data.split("%line%")) {
String[] d = serviceData.split("%time%");
if (d.length == 2) {
String service = d[0];
String time = d[1];
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(service), getPlayerName(),
service, false);
voteEvent.setBungee(true);
voteEvent.setTime(Long.parseLong(time));
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
public void bungeeVoteOnline(String service) {
if (Config.getInstance().isUseBungeeCoord()) {
Main.plugin.debug("Bungee online vote for " + getPlayerName() + " on " + service);
@Override
public void run() {
plugin.getServer().getPluginManager().callEvent(voteEvent);
}
});
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(service), getPlayerName(), service,
true);
voteEvent.setBungee(true);
voteEvent.setForceBungee(false);
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
plugin.getServer().getPluginManager().callEvent(voteEvent);
}
}
});
}
}
@@ -924,8 +920,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
break;
case Monthly:
if (Config.getInstance().isLimitMonthlyVotes()) {
int days = TimeChecker.getInstance().getTime().getMonth().maxLength();
if (value > days) {
int days = LocalDate.now().lengthOfMonth();
if (value >= days * plugin.getVoteSites().size()) {
value = days * plugin.getVoteSites().size();
}
}
@@ -14,8 +14,7 @@ import com.Ben12345rocks.AdvancedCore.Util.Item.ItemBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.PluginMessage.PluginMessage;
import com.Ben12345rocks.VotingPlugin.BungeeHandler;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
@@ -118,8 +117,7 @@ public class VoteSite {
public void broadcastVote(User user, boolean checkBungee) {
if (!user.isVanished()) {
if (checkBungee && Config.getInstance().isBungeeBroadcast()) {
PluginMessage.getInstance().sendPluginMessage(PlayerUtils.getInstance().getRandomPlayer(), "Broadcast",
getServiceSite(), user.getPlayerName());
BungeeHandler.getInstance().sendData("Broadcast", getServiceSite(), user.getPlayerName());
} else {
String playerName = user.getPlayerName();
String bc = StringParser.getInstance().colorize(config.getFormatBroadCastMsg());
@@ -1,21 +1,18 @@
package com.Ben12345rocks.VotingPlugin.bungee;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.HashMap;
import java.util.List;
import com.Ben12345rocks.AdvancedCore.UserStorage.sql.DataType;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.ClientHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketReceiver;
import com.vexsoftware.votifier.bungee.events.VotifierEvent;
import com.vexsoftware.votifier.model.Vote;
import lombok.Getter;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.PluginMessageEvent;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.event.EventHandler;
import net.md_5.bungee.config.Configuration;
public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listener {
@@ -25,10 +22,13 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
@Getter
private BungeeMySQL mysql;
private SocketHandler socketHandler;
private HashMap<String, ClientHandler> clientHandles;
@Override
public void onEnable() {
getProxy().getPluginManager().registerListener(this, this);
this.getProxy().registerChannel("VotingPlugin:VotingPlugin".toLowerCase());
config = new Config(this);
config.load();
@@ -60,40 +60,36 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
getMysql().alterColumnType("LastMonthTotal", "INT DEFAULT '0'");
getProxy().getPluginManager().registerCommand(this, new VotingPluginBungeeCommand(this));
socketHandler = new SocketHandler(getDescription().getVersion(), config.getBungeeHost(),
config.getBungeePort());
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 2) {
if (data[0].equalsIgnoreCase("Broadcast")) {
sendServerMessage(data);
}
}
}
});
clientHandles = new HashMap<String, ClientHandler>();
List<String> l = config.getBlockedServers();
for (String s : config.getSpigotServers()) {
if (!l.contains(s)) {
Configuration d = config.getSpigotServerConfiguration(s);
clientHandles.put(s, new ClientHandler(d.getString("Host", ""), d.getInt("Port", 1298)));
}
}
}
public void reload() {
config.load();
}
@EventHandler
public void onPluginMessage(PluginMessageEvent ev) {
if (!ev.getTag().equals("VotingPlugin:VotingPlugin".toLowerCase())) {
return;
}
ByteArrayInputStream instream = new ByteArrayInputStream(ev.getData());
DataInputStream in = new DataInputStream(instream);
try {
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(outstream);
String subchannel = in.readUTF();
int size = in.readInt();
out.writeUTF(subchannel);
out.writeInt(size);
for (int i = 0; i < size; i++) {
out.writeUTF(in.readUTF());
}
for (String send : getProxy().getServers().keySet()) {
if (getProxy().getServers().get(send).getPlayers().size() > 0) {
getProxy().getServers().get(send).sendData("VotingPlugin:VotingPlugin".toLowerCase(),
outstream.toByteArray());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void onVote(VotifierEvent event) {
Vote vote = event.getVote();
saveVote(vote.getUsername(), vote.getServiceName());
@@ -115,43 +111,46 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
String uuid = getUUID(name);
if (!uuid.isEmpty()) {
String data = mysql.getProxyVotes(uuid, "online");
String finalData = service + "%time%"
+ LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
if (data != null && !data.isEmpty()) {
finalData = data + "%line%" + service + "%time%"
+ LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}
if (config.getSendVotesToAllServers()) {
for (String send : getProxy().getServers().keySet()) {
mysql.update(uuid, "Proxy_" + send, finalData, DataType.STRING);
sendPluginMessage("bungeevote", uuid, name);
// for (String send : getProxy().getServers().keySet()) {
// mysql.update(uuid, "Proxy_" + send, finalData, DataType.STRING);
// }
sendServerMessage("bungeevote", uuid, name, service);
if (config.getBroadcast()) {
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
} else if (config.getSendToOnlineServer()) {
mysql.update(uuid, "Proxy_Online", finalData, DataType.STRING);
sendPluginMessage("bungeevote", uuid, name);
ProxiedPlayer p = getProxy().getPlayer(name);
String server = "";
if (p.isConnected()) {
server = p.getServer().getInfo().getName();
} else {
server = p.getReconnectServer().getName();
}
if (config.getBlockedServers().contains(server)) {
server = config.getFallBack();
}
// mysql.update(uuid, "Proxy_Online", finalData, DataType.STRING);
sendServerMessageServer(server, "bungeevoteonline", uuid, name, service);
if (config.getBroadcast()) {
if (getProxy().getPlayer(name).isConnected()) {
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
}
}
}
}
public void sendPluginMessage(String channel, String... messageData) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF(channel);
out.writeInt(messageData.length);
for (String message : messageData) {
out.writeUTF(message);
}
for (String send : getProxy().getServers().keySet()) {
if (getProxy().getServers().get(send).getPlayers().size() > 0) {
getProxy().getServers().get(send).sendData("VotingPlugin:VotingPlugin".toLowerCase(),
byteOutStream.toByteArray());
}
}
out.close();
} catch (Exception e) {
e.printStackTrace();
public void sendServerMessage(String... messageData) {
for (ClientHandler h : clientHandles.values()) {
h.sendMessage(messageData);
}
}
public void sendServerMessageServer(String server, String... messageData) {
if (clientHandles.containsKey(server)) {
clientHandles.get(server).sendMessage(messageData);
}
}
@@ -4,6 +4,8 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.Collection;
import java.util.List;
import lombok.Getter;
import net.md_5.bungee.config.Configuration;
@@ -57,4 +59,32 @@ public class Config {
return getData().getBoolean("SendVotesToAllServers");
}
public String getBungeeHost() {
return getData().getString("BungeeServer.Host", "");
}
public int getBungeePort() {
return getData().getInt("BungeeServer.Port", 1297);
}
public Collection<String> getSpigotServers() {
return getData().getSection("SpigotServers").getKeys();
}
public List<String> getBlockedServers() {
return getData().getStringList("BlockedServers");
}
public boolean getBroadcast() {
return getData().getBoolean("Broadcast", false);
}
public String getFallBack() {
return getData().getString("FallBackServer", "");
}
public Configuration getSpigotServerConfiguration(String s) {
return getData().getSection("SpigotServers." + s);
}
}
@@ -8,7 +8,7 @@ public class VotingPluginBungeeCommand extends Command {
private Bungee bungee;
public VotingPluginBungeeCommand(Bungee bungee) {
super("votingpluginbungee");
super("votingpluginbungee", "VotingPlugin.Admin");
this.bungee = bungee;
}