6 Commits

7 changed files with 55 additions and 18 deletions
+10
View File
@@ -1,5 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Kotlin2JsCompilerArguments">
<option name="moduleKind" value="plain" />
</component>
<component name="Kotlin2JvmCompilerArguments">
<option name="jvmTarget" value="1.8" />
</component>
<component name="KotlinCommonCompilerArguments">
<option name="apiVersion" value="2.1" />
<option name="languageVersion" value="2.1" />
</component>
<component name="KotlinJpsPluginSettings">
<option name="version" value="2.2.20-RC2" />
</component>
+1 -1
View File
@@ -8,7 +8,7 @@
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="temurin-21" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="corretto-1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<groupId>main</groupId>
<artifactId>vpSecure</artifactId>
<name>vpSecure</name>
<version>1.0</version>
<version>1.0.1</version>
<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<defaultGoal>clean package</defaultGoal>
@@ -29,7 +29,7 @@
</execution>
</executions>
<configuration>
<jvmTarget>${java.version}</jvmTarget>
<jvmTarget>1.8</jvmTarget>
</configuration>
</plugin>
<plugin>
@@ -117,8 +117,8 @@
</dependency>
</dependencies>
<properties>
<kotlin.version>2.2.20-RC2</kotlin.version>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<kotlin.version>2.2.20-RC2</kotlin.version>
</properties>
</project>
+2 -2
View File
@@ -6,7 +6,7 @@
<groupId>main</groupId>
<artifactId>vpSecure</artifactId>
<version>1.0</version>
<version>1.0.2</version>
<packaging>jar</packaging>
<name>vpSecure</name>
@@ -35,7 +35,7 @@
</execution>
</executions>
<configuration>
<jvmTarget>${java.version}</jvmTarget>
<jvmTarget>1.8</jvmTarget>
</configuration>
</plugin>
<plugin>
+27 -9
View File
@@ -1,17 +1,17 @@
package main.vpSecure
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerLoginEvent
import org.bukkit.plugin.java.JavaPlugin
import java.io.File
import java.io.FileOutputStream
import java.io.InputStream
import java.io.OutputStream
class VpSecure : JavaPlugin(), Listener {
class VpSecure : JavaPlugin(), Listener, CommandExecutor {
public var PROXYIP: String? = "1.1.1.1"
private var ALLOWED_PROXY_IPS: List<String> = listOf("127.0.0.1")
override fun onEnable() {
// Load configuration
@@ -20,7 +20,10 @@ class VpSecure : JavaPlugin(), Listener {
// Register event listener
server.pluginManager.registerEvents(this, this)
logger.info("VpSecure has been enabled with proxy IP: $PROXYIP")
// Register command
getCommand("vpsecure")?.setExecutor(this)
logger.info("VpSecure has been enabled with allowed proxy IPs: $ALLOWED_PROXY_IPS")
}
override fun onDisable() {
@@ -42,19 +45,34 @@ class VpSecure : JavaPlugin(), Listener {
// Load the configuration
val config = org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(configFile)
PROXYIP = config.getString("proxy_ip", "1.1.1.1")
ALLOWED_PROXY_IPS = config.getStringList("allowed_proxy_ips")
}
@EventHandler
fun onPlayerLogin(event: PlayerLoginEvent) {
val ip = event.realAddress.toString().replace("/", "")
// Check if player's IP matches the configured proxy IP
if (ip != PROXYIP) {
// Check if player's IP matches any of the configured proxy IPs
if (ip !in ALLOWED_PROXY_IPS) {
event.disallow(
PlayerLoginEvent.Result.KICK_OTHER,
"Подключение с этого айпи запрещено: ${ip}. Если это ошибка - напишите по контактам voidproject.del.pw"
)
}
}
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
if (command.name.equals("vpsecure", ignoreCase = true)) {
if (args.isNotEmpty() && args[0].equals("reload", ignoreCase = true)) {
loadConfig()
sender.sendMessage("VpSecure configuration reloaded. Allowed proxy IPs: $ALLOWED_PROXY_IPS")
logger.info("VpSecure configuration reloaded by ${sender.name}")
return true
} else {
sender.sendMessage("Usage: /vpsecure reload")
return true
}
}
return false
}
}
+2 -2
View File
@@ -1,2 +1,2 @@
# VpSecure Configuration
proxy_ip: "127.0.0.1"
allowed_proxy_ips:
- "127.0.0.1"
+10 -1
View File
@@ -1,6 +1,15 @@
name: vpSecure
version: '1.0'
version: '1.0.2'
main: main.vpSecure.VpSecure
load: STARTUP
authors: [ _SAN5_SkeLet0n_ ]
website: voidproject.del.pw
commands:
vpsecure:
description: VpSecure management commands
usage: /vpsecure reload
permission: vpsecure.admin
permissions:
vpsecure.admin:
description: Allows reloading VpSecure configuration
default: op