Skip to content

Commit

Permalink
👮‍♂️ Spigot extension for permission on private server & Bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Luuuuuis committed Aug 15, 2020
1 parent e700d6e commit d06106f
Show file tree
Hide file tree
Showing 16 changed files with 80 additions and 324 deletions.
11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ Create your own private game servers and invite your friends to play with you. O
+ privateserver.premium To start more than one server (Configurable in the config)
+ privateserver.list To get a more detailed list of servers running

Furthermore, you can give every server owner on their private server any permissions you like.
Install the same plugin on your spigot server and add permissions in the config.json. Easy!
This enables features like trolling, forcing maps, force starts, etc.

### Features:
+ Server starting title

Expand All @@ -29,6 +33,7 @@ Create your own private game servers and invite your friends to play with you. O

![Invitation receiver](https://i.ibb.co/VtmQBtg/image.png "invitation")

+ Permissions for private server owners
+ Messages are editable in the config
+ Frequent updates

Expand All @@ -39,13 +44,15 @@ Create your own private game servers and invite your friends to play with you. O
+ Startable groups
+ Max servers running on the whole server
+ Max servers per user
+ Momory editable
+ Memory editable
+ Permissions for server owners editable

### Installation:
1. Download the .jar
2. Drag the .jar files into your plugin folder
2. Drag the .jar file into your plugin folder
3. Restart your BungeeCord server
4. Optional: Edit config.json and restart again
5. Optional: Copy the .jar file into your global/spigot group folder

### Bugs / Questions?
Discord: https://discord.gg/2aSSGcz
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>de.luuuuuis</groupId>
<artifactId>PrivateServer</artifactId>
<version>0.6.1</version>
<version>0.7</version>

<build>
<plugins>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public void onDisable() {
* Sometimes only works when the BungeeCord is stopped with /end
* kinda weird of CloudNet idk
*/
CloudServer.getCloudServers().forEach(CloudServer::stop);
CloudServer.getCloudServers().forEach(CloudServer::remove);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ public void execute(CommandSender sender, String[] strings) {

CloudServer privateServer = owner.getServers().stream().filter(priServer -> priServer.getName().equalsIgnoreCase(server)).findFirst().orElse(null);
if (privateServer != null) {
privateServer.stop();
privateServer.remove();
} else {
p.sendMessage(TextComponent.fromLegacyText(Config.getInstance().getPrefix() + "§cYou cannot stop that server."));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public void stopServers(PlayerDisconnectEvent e) {

//Avoiding ConcurrentModificationException
new ArrayList<>(owner.getServers())
.forEach(CloudServer::stop);
.forEach(CloudServer::remove);
}

@EventHandler
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package de.luuuuuis.privateserver.bungee.events;

import de.dytanic.cloudnet.bridge.event.proxied.ProxiedServerRemoveEvent;
import de.luuuuuis.privateserver.bungee.util.CloudServer;
import de.luuuuuis.privateserver.bungee.util.Config;
import de.luuuuuis.privateserver.bungee.util.Owner;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.ServerSwitchEvent;
Expand All @@ -10,13 +10,6 @@

public class ServerSwitch implements Listener {

//TODO: CloudServer shutdown event!

@EventHandler
public void onShutdown() {
CloudServer.getCloudServers().stream().filter(cloudServer -> cloudServer.getName().equals(e.getServerInfo().getServiceId().getServerId())).findFirst().ifPresent(CloudServer::stop);
}

@EventHandler
public void onServerSwitch(ServerSwitchEvent e) {
ProxiedPlayer p = e.getPlayer();
Expand All @@ -27,10 +20,12 @@ public void onServerSwitch(ServerSwitchEvent e) {
if (p.hasPermission("privateserver.premium"))
return;

owner.getServers().stream().filter(cloudServer -> cloudServer.getName().equals(e.getFrom().getName())).findFirst().ifPresent(cloudServer -> {
owner.sendMessage(Config.getInstance().getPrefix() + "§cYour server was shutdown due to performance saving.");
cloudServer.stop();
});
owner.getServers().stream().filter(cloudServer -> cloudServer.getName().equals(e.getFrom().getName())).findFirst().ifPresent(CloudServer::remove);
}

@EventHandler
public void onShutdown(ProxiedServerRemoveEvent e) {
CloudServer.getCloudServers().stream().filter(cloudServer -> cloudServer.getName().equals(e.getServerInfo().getServiceId().getServerId())).findFirst().ifPresent(CloudServer::remove);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,18 @@ public void start() {
owner.sendTitle(this);
}

public void stop() {
private void stop() {
if (CloudAPI.getInstance().getServerInfo(name) != null) {
getPlayers().forEach(player -> {
ProxiedPlayer proxiedPlayer = ProxyServer.getInstance().getPlayer(player);
proxiedPlayer.sendMessage(TextComponent.fromLegacyText(Config.getInstance().getPrefix() + "The server you were on was shutdown. You were moved to the fallback server."));
});

CloudAPI.getInstance().stopServer(name);
}
}

public void remove() {
owner.sendMessage(Config.getInstance().getPrefix() + "Stopping " + name + "...");

// remove from Invitee list
Expand All @@ -67,16 +78,9 @@ public void stop() {
.collect(Collectors.toList())
.forEach(Invitee::revoke);

CloudAPI.getInstance().stopServer(name);
stop();
cloudServers.remove(this);
owner.removeServer(this);

getPlayers().forEach(player -> {
ProxiedPlayer proxiedPlayer = ProxyServer.getInstance().getPlayer(player);
proxiedPlayer.sendMessage(TextComponent.fromLegacyText(Config.getInstance().getPrefix() + "The server you were on was shutdown. You were moved to the fallback server."));
});


}

private boolean isAllowed() {
Expand Down Expand Up @@ -105,16 +109,20 @@ private boolean isAllowed() {
}

private String createName() {
name = "PV-" + new Random().nextInt(1000);
name = "PV-" + rndInt();

//check if already there
while (cloudServers.stream().anyMatch(server -> server.name.equals(name))) {
name = "PV-" + new Random().nextInt(1000);
name = "PV-" + rndInt();
}

return name;
}

private int rndInt() {
return new Random().nextInt(1000 - 1) + 1;
}

public List<String> getPlayers() {
return CloudAPI.getInstance().getServerInfo(name).getPlayers();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public void sendInvitation() {
serverHover.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text("§a§l" + cloudServer.getName())));

player.sendMessage(new ComponentBuilder(Config.getInstance().getPrefix() + owner.getPlayer().getDisplayName() + " §7invited you to join him playing a private round of ")
.append(serverHover).append("§7.\n")
.append(serverHover).append("§7.\n", ComponentBuilder.FormatRetention.NONE)
.append(Config.getInstance().getPrefix() + "Click here to join: ")
.append(joinClick).create());

Expand Down
Loading

0 comments on commit d06106f

Please sign in to comment.