Compare commits

..

No commits in common. "82d6c04d582a86c1d10932b63b75476d47580db8" and "59495d01e978eddad52e42d960aeef7c0cb5e36c" have entirely different histories.

8 changed files with 72 additions and 70 deletions

View File

@ -1,8 +1,5 @@
# Remember Me # Remember Me
Remember Me is a plugin for the Velocity Minecraft Proxy that allows users to login to the server they last logged out on. Remember Me is a plugin for the Velocity Minecraft Proxy that allows users to login to the server they last logged out on
At the moment of writing the latest version of RememberMe requires Velocity 1.1 to work. Velocity 1.1 is not fully released yet but can be downloaded from their jenkins.
RememberMe versions < 1.2 can be used with the currently released version of Velocity, but have a mandatory dependency on Luckperms and have no further support.
## Permissions ## Permissions

View File

@ -1,46 +0,0 @@
plugins {
id 'net.kyori.blossom' version '1.2.0'
id 'com.github.johnrengelman.shadow' version '7.0.0'
}
sourceCompatibility = JavaVersion.VERSION_17
group 'com.actualplayer'
version '1.2.4'
description 'A way for the user to login to the server he last connected to.'
repositories {
mavenCentral()
maven {
name = "papermc"
setUrl("https://repo.papermc.io/repository/maven-public/")
}
maven {
setUrl("https://repo.spongepowered.org/maven")
}
maven {
setUrl("https://repo.velocitypowered.com/snapshots/")
}
maven {
setUrl("https://libraries.minecraft.net/")
}
}
defaultTasks 'clean', 'build', 'shadowJar'
dependencies {
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.32'
annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.32'
implementation group: 'net.luckperms', name: 'api', version: '5.4'
compileOnly group: 'com.velocitypowered', name: 'velocity-api', version: '3.3.0-SNAPSHOT'
annotationProcessor group: 'com.velocitypowered', name: 'velocity-api', version: '3.3.0-SNAPSHOT'
}
blossom {
replaceToken '@ID@', name.replace(" ", "").toLowerCase()
replaceToken '@NAME@', name
replaceToken '@VERSION@', version
replaceToken '@DESCRIPTION@', description
}

57
build.gradle.kts Normal file
View File

@ -0,0 +1,57 @@
plugins {
java
id("net.kyori.blossom") version "1.1.0"
id("com.github.johnrengelman.shadow") version "4.0.4"
}
group = "com.actualplayer"
version = "1.2"
description = "A way for the user to login to the server he last connected to."
repositories {
mavenCentral()
maven {
name = "velocity"
setUrl("https://repo.velocitypowered.com/snapshots/")
}
maven {
setUrl("https://repo.spongepowered.org/maven")
}
maven {
setUrl("https://repo.velocitypowered.com/snapshots/")
}
maven {
setUrl("https://libraries.minecraft.net/")
}
}
defaultTasks("clean", "build", "shadowJar")
dependencies {
compileOnly("org.projectlombok:lombok:1.18.8")
annotationProcessor("org.projectlombok:lombok:1.18.8")
implementation("net.luckperms:api:5.1")
compileOnly("com.velocitypowered:velocity-api:1.1.0-SNAPSHOT")
annotationProcessor("com.velocitypowered:velocity-api:1.1.0-SNAPSHOT")
testImplementation("junit", "junit", "4.12")
}
blossom {
replaceToken("@ID@", name.replace(" ", "").toLowerCase())
replaceToken("@NAME@", name)
replaceToken("@VERSION@", version)
replaceToken("@DESCRIPTION@", description)
}
configure<JavaPluginConvention> {
sourceCompatibility = JavaVersion.VERSION_1_8
}
configurations {
runtime {
exclude(group = "me.lucko.luckperms")
}
}

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

0
gradlew vendored Executable file → Normal file
View File

View File

@ -19,10 +19,8 @@ import net.luckperms.api.LuckPermsProvider;
import org.slf4j.Logger; import org.slf4j.Logger;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.concurrent.CancellationException;
import java.util.concurrent.CompletionException;
@Plugin(id = "@ID@", name = "@NAME@", version = "@VERSION@", description = "@DESCRIPTION@", authors = {"ActualPlayer", "evert"}, dependencies = {@Dependency(id = "luckperms", optional = true)}) @Plugin(id = "@ID@", name = "@NAME@", version = "@VERSION@", description = "@DESCRIPTION@", authors = {"ActualPlayer"}, dependencies = { @Dependency(id = "luckperms", optional = true) })
public class RememberMe { public class RememberMe {
@Getter @Getter
@ -47,13 +45,12 @@ public class RememberMe {
} }
@Inject(optional = true) @Inject(optional = true)
public void initLuckPerms(@Named("luckperms") PluginContainer luckPermsContainer) { public void initLuckPerms(@Named("luckperms")PluginContainer luckPermsContainer) {
this.hasLuckPerms = luckPermsContainer != null; this.hasLuckPerms = luckPermsContainer != null;
} }
/** /**
* If LuckPerms is present, use the User meta tags to save last server * If LuckPerms is present, use the User meta tags to save last server
*
* @param event Velocity init event * @param event Velocity init event
*/ */
@Subscribe @Subscribe
@ -74,14 +71,7 @@ public class RememberMe {
if (!chooseServerEvent.getPlayer().hasPermission("rememberme.notransfer")) { if (!chooseServerEvent.getPlayer().hasPermission("rememberme.notransfer")) {
handler.getLastServerName(chooseServerEvent.getPlayer().getUniqueId()).thenAcceptAsync(lastServerName -> { handler.getLastServerName(chooseServerEvent.getPlayer().getUniqueId()).thenAcceptAsync(lastServerName -> {
if (lastServerName != null) { if (lastServerName != null) {
getServer().getServer(lastServerName).ifPresent((registeredServer) -> { getServer().getServer(lastServerName).ifPresent(chooseServerEvent::setInitialServer);
try {
registeredServer.ping().join();
} catch (CancellationException | CompletionException exception) {
return;
}
chooseServerEvent.setInitialServer(registeredServer);
});
} }
}).join(); }).join();
} }

View File

@ -5,6 +5,9 @@ import com.actualplayer.rememberme.models.UserServer;
import com.actualplayer.rememberme.util.FileUtils; import com.actualplayer.rememberme.util.FileUtils;
import com.actualplayer.rememberme.util.YamlUtils; import com.actualplayer.rememberme.util.YamlUtils;
import com.velocitypowered.api.proxy.server.RegisteredServer; import com.velocitypowered.api.proxy.server.RegisteredServer;
import ninja.leaping.configurate.ConfigurationNode;
import ninja.leaping.configurate.gson.GsonConfigurationLoader;
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -27,13 +30,13 @@ public class FileHandler implements IRememberMeHandler {
File userFile = FileUtils.getOrCreate(rememberMe.getDataFolderPath().resolve("data"), uuid.toString() + ".yml"); File userFile = FileUtils.getOrCreate(rememberMe.getDataFolderPath().resolve("data"), uuid.toString() + ".yml");
UserServer userServer = YamlUtils.readFile(userFile, UserServer.class); UserServer userServer = YamlUtils.readFile(userFile, UserServer.class);
if(userServer == null) return null;
Optional<RegisteredServer> serverOpt = rememberMe.getServer().getServer(userServer.getServer());
CompletableFuture<String> future = new CompletableFuture<>(); CompletableFuture<String> future = new CompletableFuture<>();
if(userServer == null) { future.complete(serverOpt.map(registeredServer -> registeredServer.getServerInfo().getName()).orElse(null));
future.complete(null);
} else {
Optional<RegisteredServer> serverOpt = rememberMe.getServer().getServer(userServer.getServer());
future.complete(serverOpt.map(registeredServer -> registeredServer.getServerInfo().getName()).orElse(null));
}
return future; return future;
} catch (IOException ex) { } catch (IOException ex) {
return null; return null;

View File

@ -12,6 +12,7 @@ import net.luckperms.api.node.NodeType;
import net.luckperms.api.node.types.MetaNode; import net.luckperms.api.node.types.MetaNode;
import net.luckperms.api.query.QueryMode; import net.luckperms.api.query.QueryMode;
import net.luckperms.api.query.QueryOptions; import net.luckperms.api.query.QueryOptions;
import org.checkerframework.checker.nullness.Opt;
import java.util.Collection; import java.util.Collection;
import java.util.Optional; import java.util.Optional;