Skip to content
This repository was archived by the owner on Jun 7, 2022. It is now read-only.

Commit 6c53839

Browse files
authored
Merge pull request #73 from CloudNetService/development
Merge from development into master branch
2 parents 7a13480 + 8c58111 commit 6c53839

File tree

16 files changed

+114
-92
lines changed

16 files changed

+114
-92
lines changed

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pipeline {
1515
}
1616
stage('Version') {
1717
steps {
18-
sh 'mvn versions:set -DnewVersion=2.1.12'
18+
sh 'mvn versions:set -DnewVersion=2.1.13'
1919
}
2020
}
2121
stage('Compile') {

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ Use of KVM virtualization or dedicated servers is recommended.
3636

3737
### Support
3838

39-
* Spigot-Support » 1.7.10 - 1.13.1
39+
* Spigot-Support » 1.7.10 - 1.13.2
4040
* PaperSpigot, TacoSpigot, Hose, Torch
41-
* BungeeCord-Support » 1.7.10 - 1.13.1
41+
* BungeeCord-Support » 1.7.10 - 1.13.2
4242
* Flexpipe, HexaCord, Waterfall, TraverTine
4343

4444
### Discord

cloudnet-api/cloudnet-api-bridge/src/main/java/de/dytanic/cloudnet/bridge/CloudServer.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import java.util.Map;
5252
import java.util.UUID;
5353
import java.util.concurrent.CopyOnWriteArrayList;
54+
import java.util.function.Function;
5455

5556
/**
5657
* Cloud-Server represents
@@ -430,17 +431,28 @@ public static CloudServer getInstance()
430431
}
431432

432433
/**
433-
* Updating and sets the NameTags for one target Player
434-
*
435434
* @param player
436435
*/
437436
public void updateNameTags(Player player)
437+
{
438+
this.updateNameTags(player, null);
439+
}
440+
441+
public void updateNameTags(Player player, Function<Player, PermissionGroup> playerPermissionGroupFunction)
442+
{
443+
this.updateNameTags(player, playerPermissionGroupFunction, null);
444+
}
445+
446+
public void updateNameTags(Player player, Function<Player, PermissionGroup> playerPermissionGroupFunction, Function<Player, PermissionGroup> allOtherPlayerPermissionGroupFunction)
438447
{
439448
if (CloudAPI.getInstance().getPermissionPool() == null || !CloudAPI.getInstance().getPermissionPool().isAvailable())
440449
return;
441450

442-
PermissionGroup playerPermissionGroup = CloudServer.getInstance().getCloudPlayers().get(player.getUniqueId())
443-
.getPermissionEntity().getHighestPermissionGroup(CloudAPI.getInstance().getPermissionPool());
451+
PermissionGroup playerPermissionGroup = playerPermissionGroupFunction != null ? playerPermissionGroupFunction.apply(player) : null;
452+
453+
if (playerPermissionGroup == null)
454+
playerPermissionGroup = getCloudPlayers().get(player.getUniqueId())
455+
.getPermissionEntity().getHighestPermissionGroup(CloudAPI.getInstance().getPermissionPool());
444456

445457
initScoreboard(player);
446458

@@ -451,8 +463,11 @@ public void updateNameTags(Player player)
451463
if (playerPermissionGroup != null)
452464
addTeamEntry(player, all, playerPermissionGroup);
453465

454-
PermissionGroup targetPermissionGroup = CloudServer.getInstance().getCachedPlayer(all.getUniqueId())
455-
.getPermissionEntity().getHighestPermissionGroup(CloudAPI.getInstance().getPermissionPool());
466+
PermissionGroup targetPermissionGroup = allOtherPlayerPermissionGroupFunction != null ? allOtherPlayerPermissionGroupFunction.apply(all) : null;
467+
468+
if (targetPermissionGroup == null)
469+
targetPermissionGroup = getCachedPlayer(all.getUniqueId())
470+
.getPermissionEntity().getHighestPermissionGroup(CloudAPI.getInstance().getPermissionPool());
456471

457472
if (targetPermissionGroup != null)
458473
addTeamEntry(all, player, targetPermissionGroup);

cloudnet-api/cloudnet-api-bridge/src/main/java/de/dytanic/cloudnet/bridge/internal/command/proxied/CommandCloud.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ public void execute(CommandSender commandSender, String[] args)
8080
switch (args.length)
8181
{
8282
case 1:
83+
if (args[0].equalsIgnoreCase("whitelist"))
84+
{
85+
commandSender.sendMessage(CloudAPI.getInstance().getPrefix() + "Whitelisted players from " + CloudProxy.getInstance().getProxyGroup().getName());
86+
for (String entry : CloudProxy.getInstance().getProxyGroup().getProxyConfig().getWhitelist())
87+
commandSender.sendMessage("§7- " + entry);
88+
}
8389
if (args[0].equalsIgnoreCase("rl") && commandSender.hasPermission("cloudnet.command.cloud.reload"))
8490
{
8591
CloudAPI.getInstance().sendCloudCommand("reload config");
@@ -542,6 +548,7 @@ public boolean isAccepted(Template value)
542548
CloudAPI.getInstance().getPrefix() + "§7/cloud toggle maintenance",
543549
CloudAPI.getInstance().getPrefix() + "§7/cloud toggle maintenance <time>",
544550
CloudAPI.getInstance().getPrefix() + "§7/cloud setMaxPlayers <maxonlinecount>",
551+
CloudAPI.getInstance().getPrefix() + "§7/cloud whitelist",
545552
CloudAPI.getInstance().getPrefix() + "§7/cloud whitelist <add : remove> <name>",
546553
CloudAPI.getInstance().getPrefix() + "§7/cloud start <group> <count>",
547554
CloudAPI.getInstance().getPrefix() + "§7/cloud start <group> <template>",

cloudnet-api/cloudnet-api-bridge/src/main/java/de/dytanic/cloudnet/bridge/internal/listener/proxied/ProxiedListener.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ public void handleLogin(LoginEvent e)
121121
e.getConnection().getUniqueId(),
122122
e.getConnection().getName(), e.getConnection().getVersion(),
123123
e.getConnection().getAddress().getAddress().getHostAddress(),
124-
e.getConnection().getAddress().getPort(), e.getConnection().isOnlineMode(), e.getConnection().isLegacy()
124+
e.getConnection().getAddress().getPort(), e.getConnection().isOnlineMode(),
125+
e.getConnection().isLegacy()
125126
);
126127

127128
CloudPlayer cloudPlayer = CloudAPI.getInstance().getNetworkConnection().getPacketManager().sendQuery(new PacketOutPlayerLoginRequest(playerConnection),
@@ -157,18 +158,20 @@ public void handleLogin(LoginEvent e)
157158
}
158159

159160
ProxyGroup proxyGroup = CloudProxy.getInstance().getProxyGroup();
160-
if (proxyGroup.getProxyConfig().isEnabled())
161-
if (CloudAPI.getInstance().getOnlineCount() >= CloudProxy.getInstance().getProxyGroup().getProxyConfig().getMaxPlayers())
162-
{
163-
PermissionCheckEvent permissionCheckEvent = new PermissionCheckEvent(cloudCommandSender, "cloudnet.fulljoin", false);
164161

165-
if (!ProxyServer.getInstance().getPluginManager().callEvent(permissionCheckEvent).hasPermission())
162+
if (proxyGroup != null)
163+
if (proxyGroup.getProxyConfig().isEnabled())
164+
if (CloudAPI.getInstance().getOnlineCount() >= CloudProxy.getInstance().getProxyGroup().getProxyConfig().getMaxPlayers())
166165
{
167-
e.setCancelled(true);
168-
e.setCancelReason(ChatColor.translateAlternateColorCodes('&', CloudAPI.getInstance().getCloudNetwork().getMessages().getString("full-join")));
169-
return;
166+
PermissionCheckEvent permissionCheckEvent = new PermissionCheckEvent(cloudCommandSender, "cloudnet.fulljoin", false);
167+
168+
if (!ProxyServer.getInstance().getPluginManager().callEvent(permissionCheckEvent).hasPermission())
169+
{
170+
e.setCancelled(true);
171+
e.setCancelReason(ChatColor.translateAlternateColorCodes('&', CloudAPI.getInstance().getCloudNetwork().getMessages().getString("full-join")));
172+
return;
173+
}
170174
}
171-
}
172175

173176
CloudProxy.getInstance().getCloudPlayers().put(cloudPlayer.getUniqueId(), cloudPlayer);
174177
}

cloudnet-cord/cloudnet-command/src/main/java/de/dytanic/cloudnet/command/Command.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public abstract class Command
2121
protected String permission;
2222
protected String[] aliases;
2323

24-
protected String description = "Default command discrption";
24+
protected String description = "Default command description";
2525

2626
private Collection<CommandArgument> commandArguments = new HashSet<>();
2727

cloudnet-core/src/main/java/de/dytanic/cloudnetcore/CloudConfig.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,7 @@ public CloudConfig(ConsoleReader consoleReader) throws Exception
7777
new File("local/servers"),
7878
new File("local/cache"),
7979
new File("groups"),
80-
new File("modules"),
81-
new File("templates")
80+
new File("modules")
8281
})
8382
directory.mkdirs();
8483

@@ -202,7 +201,7 @@ public CloudConfig load() throws Exception
202201
);
203202
this.formatSplitter = configuration.getString("general.server-name-splitter");
204203
this.networkProperties = configuration.getSection("networkproperties").self;
205-
// configuration.set("general.disabled-modules", new ArrayList<>());
204+
206205
if (!configuration.getSection("general").self.containsKey("disabled-modules"))
207206
{
208207
configuration.set("general.disabled-modules", new ArrayList<>());
@@ -233,8 +232,7 @@ public CloudConfig load() throws Exception
233232
}.getType());
234233

235234
this.userDocument = Document.loadDocument(usersPath);
236-
237-
/* ============================================================== */
235+
238236
return this;
239237
}
240238

cloudnet-core/src/main/java/de/dytanic/cloudnetcore/CloudNet.java

Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -129,17 +129,15 @@ public boolean bootstrap() throws Exception
129129
System.out.println("Loading Modules...");
130130
moduleManager.loadModules();
131131
}
132-
132+
133133
for (WrapperMeta wrapperMeta : config.getWrappers())
134134
{
135135
System.out.println("Loading Wrapper " + wrapperMeta.getId() + " @ " + wrapperMeta.getHostName());
136136
this.wrappers.put(wrapperMeta.getId(), new Wrapper(wrapperMeta));
137137
}
138-
//Packet Init
139138

140139
this.users = config.getUsers();
141-
142-
//Groups Loading
140+
143141
NetworkUtils.addAll(this.serverGroups, config.getServerGroups(), new Acceptable<ServerGroup>() {
144142
@Override
145143
public boolean isAccepted(ServerGroup value)
@@ -162,18 +160,15 @@ public boolean isAccepted(ProxyGroup value)
162160

163161
webServer = new WebServer(optionSet.has("ssl"), config.getWebServerConfig().getAddress(), config.getWebServerConfig().getPort());
164162

165-
//CommandManager Appending
166163
this.initialCommands();
167164
this.initWebHandlers();
168165
this.initPacketHandlers();
169166

170-
//Scheduler Startup
171167
{
172168
Thread thread = new Thread(scheduler);
173169
thread.setDaemon(true);
174170
thread.start();
175171
}
176-
/*=====================================*/
177172

178173
for (ConnectableAddress connectableAddress : config.getAddresses())
179174
new CloudNetServer(optionSet, connectableAddress);
@@ -182,11 +177,8 @@ public boolean isAccepted(ProxyGroup value)
182177

183178
RUNNING = true;
184179
Runtime.getRuntime().addShutdownHook(new Thread(this));
185-
186-
/*==================================*/
180+
187181
{
188-
189-
190182
if (!optionSet.has("onlyConsole"))
191183
{
192184
CloudStartupHandler cloudStartupHandler = new CloudStartupHandler();
@@ -217,11 +209,11 @@ public void run()
217209
}
218210

219211
if (!optionSet.has("disable-modules"))
212+
{
220213
System.out.println("Enabling Modules...");
214+
moduleManager.enableModules();
215+
}
221216

222-
moduleManager.enableModules();
223-
224-
//Event Init
225217
eventManager.callEvent(new CloudInitEvent());
226218
new LocalCloudWrapper().run(optionSet);
227219

@@ -245,10 +237,13 @@ public void reload() throws Exception
245237

246238
databaseManager.save().clear();
247239

248-
this.users = config.getUsers();
240+
this.users.clear();
249241
this.serverGroups.clear();
250242
this.proxyGroups.clear();
243+
251244
this.config.load();
245+
246+
this.users = config.getUsers();
252247

253248
NetworkUtils.addAll(this.serverGroups, config.getServerGroups(), new Acceptable<ServerGroup>() {
254249
public boolean isAccepted(ServerGroup value)
@@ -358,10 +353,6 @@ public void run()
358353
shutdown();
359354
}
360355

361-
//Command Init
362-
363-
/*===================================================================================================================*/
364-
365356
private void initWebHandlers()
366357
{
367358
webServer.getWebServerProvider().registerHandler(new WebsiteUtils());
@@ -462,8 +453,6 @@ private void initPacketHandlers()
462453
packetManager.registerHandler(PacketRC.CN_INTERNAL_CHANNELS + 1, PacketInCreateServerLog.class);
463454
}
464455

465-
/*===============================================================================================================*/
466-
467456
@Deprecated
468457
public void setupGroup(ServerGroup serverGroup)
469458
{
@@ -518,10 +507,6 @@ public void setupProxy(ProxyGroup proxyGroup)
518507
}
519508
}
520509

521-
/*========================================================================================================*/
522-
//Util Methods
523-
/*========================================================================================================*/
524-
525510
public boolean authorization(String name, String token)
526511
{
527512
User user = CollectionWrapper.filter(users, new Acceptable<User>() {
@@ -1266,8 +1251,6 @@ public void startProxy(ProxyGroup proxyGroup, String url, Collection<ServerInsta
12661251
startProxy(proxyGroup, proxyGroup.getMemory(), new String[]{}, url, collection, new Document(), id, uniqueId);
12671252
}
12681253

1269-
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1270-
12711254
public void startCloudServer(String serverName, int memory, boolean priorityStop)
12721255
{
12731256
startCloudServer(serverName, new BasicServerConfig(), memory, priorityStop);
@@ -1891,8 +1874,6 @@ public void run(Quad<Integer, Integer, ServiceId, Template> obj)
18911874
wrapper.startGameServer(serverProcessMeta);
18921875
}
18931876

1894-
/*=====================================================================================*/
1895-
18961877
public void startProxyAsync(ProxyProcessMeta proxyProcessMeta, Wrapper wrapper)
18971878
{
18981879
wrapper.startProxyAsync(proxyProcessMeta);
@@ -2422,4 +2403,4 @@ public void run(Quad<Integer, Integer, ServiceId, Template> obj)
24222403
ServerProcessMeta serverProcessMeta = new ServerProcessMeta(newServiceId(serverGroup, wrapper, serverId), memory, prioritystop, url, processParameters, onlineMode, plugins, config, customServerName, startport, serverProperties, template);
24232404
wrapper.startGameServerAsync(serverProcessMeta);
24242405
}
2425-
}
2406+
}

cloudnet-core/src/main/java/de/dytanic/cloudnetcore/network/NetworkManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void handlePlayerLoginRequest(ProxyServer proxyServer, PlayerConnection c
106106
CloudPlayer cloudPlayer = new CloudPlayer(offlinePlayer, cloudPlayerConnection, proxyServer.getServerId());
107107
cloudPlayer.setPlayerExecutor(CorePlayerExecutor.INSTANCE);
108108

109-
if (cloudPlayer.getFirstLogin() != null) cloudPlayer.setFirstLogin(System.currentTimeMillis());
109+
if (cloudPlayer.getFirstLogin() == null) cloudPlayer.setFirstLogin(System.currentTimeMillis());
110110

111111
CloudNet.getInstance().getEventManager().callEvent(new PlayerInitEvent(cloudPlayer));
112112

cloudnet-lib/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@
2222
<classifier>linux-x86_64</classifier>
2323
<scope>compile</scope>
2424
</dependency>
25+
<dependency>
26+
<groupId>io.netty</groupId>
27+
<artifactId>netty-transport-native-kqueue</artifactId>
28+
<version>${dependency.netty.version}</version>
29+
<classifier>osx-x86_64</classifier>
30+
<scope>compile</scope>
31+
</dependency>
2532
<dependency>
2633
<groupId>io.netty</groupId>
2734
<artifactId>netty-codec</artifactId>

0 commit comments

Comments
 (0)