mirror of
https://github.com/CarmJos/MoeTeleport.git
synced 2026-06-04 16:46:10 +08:00
Compare commits
56 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3ebd583fad | |||
| 6019410f0c | |||
| 03346ecfcd | |||
| 1720572f4d | |||
| 81d0b8869d | |||
| d620109904 | |||
| d11e5a44b8 | |||
| d404e36805 | |||
| 0d9f34c135 | |||
| 1b6bd72570 | |||
| e148747a0b | |||
| 2d55ac35f8 | |||
| d826abdecc | |||
| b63e130b15 | |||
| 8f8d5c7016 | |||
| 813dbd8b83 | |||
| 0db564c027 | |||
| b50d2f216d | |||
| 8d0cb0365a | |||
| 0a3b1c0017 | |||
| c8b2e03efe | |||
| e917d2a5b3 | |||
| c6fec42aa4 | |||
| 73489054a1 | |||
| 6344dfe2d9 | |||
| 3d7bb0292a | |||
| 52d806f5d4 | |||
| 3f2713389b | |||
| 97781fc1aa | |||
| 74d083f51f | |||
| a073ebf34c | |||
| 1a8fb8459e | |||
| db53b416c7 | |||
| ef56193d7f | |||
| 103b4bb734 | |||
| c4adadf24f | |||
| 61c7e4e7da | |||
| 17d8e6847b | |||
| eaff4d066c | |||
| 3cc6485d3d | |||
| 665fa3f53d | |||
| c481db7827 | |||
| 08a308c88d | |||
| 6b0c9e2a2c | |||
| a01746348e | |||
| 104e9ae4ce | |||
| 979417cc2a | |||
| dba6eb9af5 | |||
| 743cca2238 | |||
| eb9f5bd4ad | |||
| 7515e7e271 | |||
| 3f0a47d5cd | |||
| d896be6f98 | |||
| 392e16c165 | |||
| f4e3dabb29 | |||
| 4393cc9ce2 |
@@ -14,9 +14,9 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v6
|
||||||
- name: "Set up JDK"
|
- name: "Set up JDK"
|
||||||
uses: actions/setup-java@v2
|
uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '11'
|
java-version: '11'
|
||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
@@ -37,7 +37,7 @@ jobs:
|
|||||||
cp -vrf asset/*.jar artifacts
|
cp -vrf asset/*.jar artifacts
|
||||||
|
|
||||||
- name: "Upload artifact"
|
- name: "Upload artifact"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
name: Artifact
|
name: Artifact
|
||||||
path: artifacts
|
path: artifacts
|
||||||
@@ -11,9 +11,9 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v6
|
||||||
- name: "Set up JDK"
|
- name: "Set up JDK"
|
||||||
uses: actions/setup-java@v2
|
uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '11'
|
java-version: '11'
|
||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
|
|||||||
+4
-4
@@ -9,10 +9,10 @@ README LANGUAGES [ [中文](README.md) | [**English**](README-EN.md) ]
|
|||||||
|
|
||||||
# MoeTeleport
|
# MoeTeleport
|
||||||
|
|
||||||
[](https://www.codefactor.io/repository/github/carm-outsource/MoeTeleport)
|
[](https://www.codefactor.io/repository/github/CarmJos/MoeTeleport)
|
||||||

|

|
||||||
[](https://github.com/carm-outsource/MoeTeleport/releases)
|
[](https://github.com/CarmJos/MoeTeleport/releases)
|
||||||
[](https://github.com/carm-outsource/MoeTeleport/actions/workflows/maven.yml)
|
[](https://github.com/CarmJos/MoeTeleport/actions/workflows/maven.yml)
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ README LANGUAGES [ [**中文**](README.md) | [English](README-EN.md) ]
|
|||||||
|
|
||||||
# MoeTeleport 喵喵传送
|
# MoeTeleport 喵喵传送
|
||||||
|
|
||||||
[](https://www.codefactor.io/repository/github/carm-outsource/MoeTeleport)
|
[](https://www.codefactor.io/repository/github/CarmJos/MoeTeleport)
|
||||||

|

|
||||||
[](https://github.com/carm-outsource/MoeTeleport/releases)
|
[](https://github.com/CarmJos/MoeTeleport/releases)
|
||||||
[](https://github.com/carm-outsource/MoeTeleport/actions/workflows/maven.yml)
|
[](https://github.com/CarmJos/MoeTeleport/actions/workflows/maven.yml)
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -11,14 +11,14 @@
|
|||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
|
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
|
||||||
|
|
||||||
<deps.easyplugin.version>1.5.4</deps.easyplugin.version>
|
<deps.easyplugin.version>1.5.14</deps.easyplugin.version>
|
||||||
<deps.easysql.version>0.4.6</deps.easysql.version>
|
<deps.easysql.version>0.4.7</deps.easysql.version>
|
||||||
<deps.mineconfig.version>2.5.0</deps.mineconfig.version>
|
<deps.mineconfig.version>3.1.3</deps.mineconfig.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<groupId>cc.carm.plugin</groupId>
|
<groupId>cc.carm.plugin</groupId>
|
||||||
<artifactId>moeteleport</artifactId>
|
<artifactId>moeteleport</artifactId>
|
||||||
<version>4.0.1</version>
|
<version>4.0.3</version>
|
||||||
|
|
||||||
<name>MoeTeleport</name>
|
<name>MoeTeleport</name>
|
||||||
<description>喵喵传送,简单的传送、设置家的插件。</description>
|
<description>喵喵传送,简单的传送、设置家的插件。</description>
|
||||||
@@ -44,13 +44,6 @@
|
|||||||
</developers>
|
</developers>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
|
|
||||||
<repository>
|
|
||||||
<id>carm-repo</id>
|
|
||||||
<name>Carm's Repo</name>
|
|
||||||
<url>https://repo.carm.cc/repository/maven-public/</url>
|
|
||||||
</repository>
|
|
||||||
|
|
||||||
<repository>
|
<repository>
|
||||||
<id>spigot-repo</id>
|
<id>spigot-repo</id>
|
||||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||||
@@ -87,10 +80,11 @@
|
|||||||
</repository>
|
</repository>
|
||||||
|
|
||||||
<repository>
|
<repository>
|
||||||
<id>github</id>
|
<id>carm-repo</id>
|
||||||
<name>GitHub Packages</name>
|
<name>Carm's Repo</name>
|
||||||
<url>https://maven.pkg.github.com/CarmJos/${project.name}</url>
|
<url>https://repo.carm.cc/repository/maven-public/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
@@ -98,7 +92,7 @@
|
|||||||
<repository>
|
<repository>
|
||||||
<id>github</id>
|
<id>github</id>
|
||||||
<name>GitHub Packages</name>
|
<name>GitHub Packages</name>
|
||||||
<url>https://maven.pkg.github.com/CarmJos/${project.name}</url>
|
<url>https://maven.pkg.github.com/CarmJos/MoeTeleport</url>
|
||||||
</repository>
|
</repository>
|
||||||
</distributionManagement>
|
</distributionManagement>
|
||||||
|
|
||||||
@@ -128,6 +122,14 @@
|
|||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cc.carm.lib</groupId>
|
||||||
|
<artifactId>easyplugin-command-alias</artifactId>
|
||||||
|
<version>${deps.easyplugin.version}</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cc.carm.lib</groupId>
|
<groupId>cc.carm.lib</groupId>
|
||||||
<artifactId>easyplugin-githubchecker</artifactId>
|
<artifactId>easyplugin-githubchecker</artifactId>
|
||||||
@@ -139,7 +141,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.essentialsx</groupId>
|
<groupId>net.essentialsx</groupId>
|
||||||
<artifactId>EssentialsX</artifactId>
|
<artifactId>EssentialsX</artifactId>
|
||||||
<version>2.19.2</version>
|
<version>2.21.2</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@@ -178,7 +180,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>xyz.xenondevs</groupId>
|
<groupId>xyz.xenondevs</groupId>
|
||||||
<artifactId>particle</artifactId>
|
<artifactId>particle</artifactId>
|
||||||
<version>1.8.3</version>
|
<version>1.8.4</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
@@ -186,21 +188,21 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.17-R0.1-SNAPSHOT</version>
|
<version>1.19-R0.1-20220725.090125-47</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.comphenix.protocol</groupId>
|
<groupId>com.comphenix.protocol</groupId>
|
||||||
<artifactId>ProtocolLib</artifactId>
|
<artifactId>ProtocolLib</artifactId>
|
||||||
<version>4.8.0</version>
|
<version>5.3.0</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bstats</groupId>
|
<groupId>org.bstats</groupId>
|
||||||
<artifactId>bstats-bukkit</artifactId>
|
<artifactId>bstats-bukkit</artifactId>
|
||||||
<version>3.0.0</version>
|
<version>3.2.1</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
@@ -208,7 +210,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>me.clip</groupId>
|
<groupId>me.clip</groupId>
|
||||||
<artifactId>placeholderapi</artifactId>
|
<artifactId>placeholderapi</artifactId>
|
||||||
<version>2.10.9</version>
|
<version>2.12.2</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@@ -222,7 +224,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jetbrains</groupId>
|
<groupId>org.jetbrains</groupId>
|
||||||
<artifactId>annotations</artifactId>
|
<artifactId>annotations</artifactId>
|
||||||
<version>23.0.0</version>
|
<version>26.1.0</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@@ -233,7 +235,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-clean-plugin</artifactId>
|
<artifactId>maven-clean-plugin</artifactId>
|
||||||
<version>2.5</version>
|
<version>3.5.0</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<filesets>
|
<filesets>
|
||||||
<fileset>
|
<fileset>
|
||||||
@@ -256,7 +258,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>3.8.1</version>
|
<version>3.15.0</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>${project.jdk.version}</source>
|
<source>${project.jdk.version}</source>
|
||||||
<target>${project.jdk.version}</target>
|
<target>${project.jdk.version}</target>
|
||||||
@@ -267,12 +269,12 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-jar-plugin</artifactId>
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
<version>3.2.0</version>
|
<version>3.5.0</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-source-plugin</artifactId>
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
<version>3.2.0</version>
|
<version>3.4.0</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<phase>package</phase>
|
<phase>package</phase>
|
||||||
@@ -285,7 +287,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-shade-plugin</artifactId>
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
<version>3.2.3</version>
|
<version>3.6.2</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<phase>package</phase>
|
<phase>package</phase>
|
||||||
@@ -295,7 +297,7 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
<configuration>
|
<configuration>
|
||||||
<finalName>${project.name}-${project.version}</finalName>
|
<finalName>MoeTeleport-${project.version}</finalName>
|
||||||
<outputDirectory>${project.basedir}/asset/</outputDirectory>
|
<outputDirectory>${project.basedir}/asset/</outputDirectory>
|
||||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||||
<filters>
|
<filters>
|
||||||
@@ -334,7 +336,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
<version>2.22.1</version>
|
<version>3.5.6</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<useSystemClassLoader>false</useSystemClassLoader>
|
<useSystemClassLoader>false</useSystemClassLoader>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": [
|
||||||
|
"config:recommended"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package cc.carm.plugin.moeteleport;
|
|||||||
|
|
||||||
import cc.carm.lib.configuration.core.source.ConfigurationProvider;
|
import cc.carm.lib.configuration.core.source.ConfigurationProvider;
|
||||||
import cc.carm.lib.easyplugin.EasyPlugin;
|
import cc.carm.lib.easyplugin.EasyPlugin;
|
||||||
|
import cc.carm.lib.easyplugin.command.alias.AliasCommandManager;
|
||||||
import cc.carm.lib.easyplugin.updatechecker.GHUpdateChecker;
|
import cc.carm.lib.easyplugin.updatechecker.GHUpdateChecker;
|
||||||
import cc.carm.lib.mineconfiguration.bukkit.MineConfiguration;
|
import cc.carm.lib.mineconfiguration.bukkit.MineConfiguration;
|
||||||
import cc.carm.plugin.moeteleport.command.MainCommands;
|
import cc.carm.plugin.moeteleport.command.MainCommands;
|
||||||
@@ -15,6 +16,7 @@ import cc.carm.plugin.moeteleport.storage.StorageMethod;
|
|||||||
import org.bstats.bukkit.Metrics;
|
import org.bstats.bukkit.Metrics;
|
||||||
import org.bstats.charts.SimplePie;
|
import org.bstats.charts.SimplePie;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.particle.utils.ReflectionUtils;
|
import xyz.xenondevs.particle.utils.ReflectionUtils;
|
||||||
|
|
||||||
public class Main extends EasyPlugin {
|
public class Main extends EasyPlugin {
|
||||||
@@ -28,7 +30,7 @@ public class Main extends EasyPlugin {
|
|||||||
protected UserManager userManager;
|
protected UserManager userManager;
|
||||||
protected RequestManager requestManager;
|
protected RequestManager requestManager;
|
||||||
protected TeleportManager teleportManager;
|
protected TeleportManager teleportManager;
|
||||||
protected CommandManager commandManager;
|
protected AliasCommandManager commandManager;
|
||||||
|
|
||||||
public Main() {
|
public Main() {
|
||||||
instance = this;
|
instance = this;
|
||||||
@@ -85,15 +87,16 @@ public class Main extends EasyPlugin {
|
|||||||
log("注册指令...");
|
log("注册指令...");
|
||||||
registerCommand("MoeTeleport", new MainCommands(this));
|
registerCommand("MoeTeleport", new MainCommands(this));
|
||||||
|
|
||||||
try {
|
|
||||||
this.commandManager = new CommandManager(this);
|
|
||||||
if (PluginConfig.COMMAND.ENABLE.getNotNull()) {
|
if (PluginConfig.COMMAND.ENABLE.getNotNull()) {
|
||||||
|
log("注册简化指令映射...");
|
||||||
|
try {
|
||||||
|
this.commandManager = new AliasCommandManager(this);
|
||||||
PluginConfig.COMMAND.ALIAS.getNotNull().forEach(commandManager::register);
|
PluginConfig.COMMAND.ALIAS.getNotNull().forEach(commandManager::register);
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log("注册简化指令失败: " + e.getMessage());
|
log("注册简化指令失败: " + e.getMessage());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (PluginConfig.METRICS.getNotNull()) {
|
if (PluginConfig.METRICS.getNotNull()) {
|
||||||
log("启用统计数据...");
|
log("启用统计数据...");
|
||||||
@@ -116,8 +119,8 @@ public class Main extends EasyPlugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void shutdown() {
|
protected void shutdown() {
|
||||||
|
if (PluginConfig.COMMAND.ENABLE.getNotNull() && this.commandManager != null) {
|
||||||
log("清空简化指令...");
|
log("清空简化指令...");
|
||||||
if (this.commandManager != null) {
|
|
||||||
this.commandManager.unregisterAll();
|
this.commandManager.unregisterAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,4 +39,9 @@ public class BackCommand extends SubCommand<MainCommands> {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasPermission(CommandSender sender) {
|
||||||
|
return sender.hasPermission("MoeTeleport.back");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,4 +48,9 @@ public class HomeCommands extends CommandHandler {
|
|||||||
return main.noPermission(sender);
|
return main.noPermission(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasPermission(CommandSender sender) {
|
||||||
|
return sender.hasPermission("MoeTeleport.home");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class ReloadCommand extends SubCommand<MainCommands> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasPermission(CommandSender sender) {
|
public boolean hasPermission(CommandSender sender) {
|
||||||
return sender.hasPermission("moeteleport.reload");
|
return sender.hasPermission("MoeTeleport.admin");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class TeleportCommands extends CommandHandler {
|
|||||||
|
|
||||||
registerSubCommand(new TeleportRequestCommand(this, TeleportRequest.Type.TPA_TO, "to"));
|
registerSubCommand(new TeleportRequestCommand(this, TeleportRequest.Type.TPA_TO, "to"));
|
||||||
registerSubCommand(new TeleportRequestCommand(this, TeleportRequest.Type.TPA_HERE, "here"));
|
registerSubCommand(new TeleportRequestCommand(this, TeleportRequest.Type.TPA_HERE, "here"));
|
||||||
registerSubCommand(new TeleportHandleCommand(this, true, "cancel"));
|
registerSubCommand(new TeleportHandleCommand(this, true, "accept", "agree"));
|
||||||
registerSubCommand(new TeleportHandleCommand(this, false, "deny", "refuse"));
|
registerSubCommand(new TeleportHandleCommand(this, false, "deny", "refuse"));
|
||||||
registerSubCommand(new TeleportCancelCommand(this, "cancel"));
|
registerSubCommand(new TeleportCancelCommand(this, "cancel"));
|
||||||
}
|
}
|
||||||
@@ -38,4 +38,9 @@ public class TeleportCommands extends CommandHandler {
|
|||||||
return main.noPermission(sender);
|
return main.noPermission(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasPermission(CommandSender sender) {
|
||||||
|
return sender.hasPermission("MoeTeleport.teleport");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,4 +49,10 @@ public class WarpCommands extends CommandHandler {
|
|||||||
return main.noPermission(sender);
|
return main.noPermission(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasPermission(CommandSender sender) {
|
||||||
|
return sender.hasPermission("MoeTeleport.warp");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,122 +0,0 @@
|
|||||||
package cc.carm.plugin.moeteleport.manager;
|
|
||||||
|
|
||||||
import cc.carm.plugin.moeteleport.Main;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.SimpleCommandMap;
|
|
||||||
import org.bukkit.plugin.SimplePluginManager;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
public class CommandManager {
|
|
||||||
|
|
||||||
protected final JavaPlugin plugin;
|
|
||||||
|
|
||||||
protected final SimpleCommandMap commandMap;
|
|
||||||
protected final Field knownCommandsFiled;
|
|
||||||
|
|
||||||
protected final Map<String, AliasCommand> registeredCommands = new HashMap<>();
|
|
||||||
|
|
||||||
public CommandManager(JavaPlugin plugin) throws Exception {
|
|
||||||
this.plugin = plugin;
|
|
||||||
|
|
||||||
SimplePluginManager manager = (SimplePluginManager) Bukkit.getPluginManager();
|
|
||||||
Field commandMapField = SimplePluginManager.class.getDeclaredField("commandMap");
|
|
||||||
commandMapField.setAccessible(true);
|
|
||||||
this.commandMap = (SimpleCommandMap) commandMapField.get(manager);
|
|
||||||
|
|
||||||
this.knownCommandsFiled = SimpleCommandMap.class.getDeclaredField("knownCommands");
|
|
||||||
this.knownCommandsFiled.setAccessible(true);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
protected Map<String, Command> getKnownCommands() {
|
|
||||||
try {
|
|
||||||
return (Map<String, Command>) knownCommandsFiled.get(commandMap);
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return new HashMap<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPrefix() {
|
|
||||||
return this.plugin.getName().toLowerCase() + " ";
|
|
||||||
}
|
|
||||||
|
|
||||||
protected SimpleCommandMap getCommandMap() {
|
|
||||||
return commandMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void register(String alias, String target) {
|
|
||||||
AliasCommand current = this.registeredCommands.get(alias);
|
|
||||||
if (current != null) current.unregister(getCommandMap());
|
|
||||||
|
|
||||||
AliasCommand cmd = new AliasCommand(alias, this, getPrefix() + target);
|
|
||||||
this.registeredCommands.put(alias, cmd);
|
|
||||||
getCommandMap().register(Main.getInstance().getName(), cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void unregister(String alias) {
|
|
||||||
AliasCommand current = this.registeredCommands.remove(alias);
|
|
||||||
if (current != null) {
|
|
||||||
getKnownCommands().remove(alias);
|
|
||||||
current.unregister(getCommandMap());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void unregisterAll() {
|
|
||||||
registeredCommands.forEach((k, v) -> {
|
|
||||||
getKnownCommands().remove(k);
|
|
||||||
v.unregister(getCommandMap());
|
|
||||||
});
|
|
||||||
registeredCommands.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class AliasCommand extends Command {
|
|
||||||
|
|
||||||
protected final CommandManager commandManager;
|
|
||||||
protected final String targetCommand;
|
|
||||||
|
|
||||||
public AliasCommand(String name, CommandManager commandManager, String targetCommand) {
|
|
||||||
super(name);
|
|
||||||
this.commandManager = commandManager;
|
|
||||||
this.targetCommand = targetCommand;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected SimpleCommandMap getCommandMap() {
|
|
||||||
return this.commandManager.getCommandMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String buildCommand(String[] args) {
|
|
||||||
return this.targetCommand + " " + String.join(" ", args);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args) {
|
|
||||||
return getCommandMap().dispatch(sender, buildCommand(args));
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public List<String> tabComplete(@NotNull CommandSender sender, @NotNull String alias,
|
|
||||||
@NotNull String[] args, @Nullable Location location) throws IllegalArgumentException {
|
|
||||||
return Optional.ofNullable(getCommandMap().tabComplete(sender, buildCommand(args))).orElse(Collections.emptyList());
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public List<String> tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException {
|
|
||||||
return tabComplete(sender, alias, args, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -104,12 +104,11 @@ public class RequestManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void cancelRequest(TeleportRequest request) {
|
public void cancelRequest(TeleportRequest request) {
|
||||||
PluginMessages.REQUESTS.WAS_ACCEPTED.send(request.getSender(), request.getReceiver().getName());
|
PluginMessages.REQUESTS.SENT_CANCELLED.send(request.getSender(), request.getReceiver().getName());
|
||||||
PluginMessages.REQUESTS.ACCEPTED.send(request.getReceiver(), request.getSender().getName());
|
PluginMessages.REQUESTS.RECEIVED_CANCELLED.send(request.getReceiver(), request.getSender().getName());
|
||||||
PluginConfig.REQUEST.SOUND.CANCELLED.playTo(request.getSender());
|
PluginConfig.REQUEST.SOUND.CANCELLED.playTo(request.getSender());
|
||||||
PluginConfig.REQUEST.SOUND.CANCELLED.playTo(request.getReceiver());
|
PluginConfig.REQUEST.SOUND.CANCELLED.playTo(request.getReceiver());
|
||||||
removeRequests(request);
|
removeRequests(request);
|
||||||
MoeTeleport.getTeleportManager().queueTeleport(request);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void denyRequest(TeleportRequest request) {
|
public void denyRequest(TeleportRequest request) {
|
||||||
|
|||||||
@@ -13,18 +13,30 @@ softdepend:
|
|||||||
- CMI
|
- CMI
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
"MoeTeleport":
|
|
||||||
description: "插件的主权限节点"
|
|
||||||
default: false
|
|
||||||
|
|
||||||
"MoeTeleport.admin":
|
"MoeTeleport.admin":
|
||||||
description: "插件的管理员权限节点"
|
description: "插件的管理员权限节点"
|
||||||
default: op
|
default: op
|
||||||
|
|
||||||
|
"MoeTeleport.teleport":
|
||||||
|
description: "使用传送请求相关指令的权限。"
|
||||||
|
default: true
|
||||||
|
|
||||||
|
"MoeTeleport.home":
|
||||||
|
description: "使用家相关指令的权限。"
|
||||||
|
default: true
|
||||||
|
|
||||||
|
"MoeTeleport.warp":
|
||||||
|
description: "使用传送请求相关指令的权限。"
|
||||||
|
default: true
|
||||||
|
|
||||||
|
"MoeTeleport.back":
|
||||||
|
description: "使用返回相关指令的权限。"
|
||||||
|
default: true
|
||||||
|
|
||||||
commands:
|
commands:
|
||||||
"MoeTeleport":
|
"MoeTeleport":
|
||||||
description: "插件的主命令,用于重载插件或查看插件信息。"
|
description: "插件的主命令,用于重载插件或查看插件信息。"
|
||||||
permission: "MoeTeleport.admin"
|
usage: "您可以输入 /MoeTeleport help 查看插件的相关帮助。"
|
||||||
usage: "/MoeTeleport reload"
|
|
||||||
aliases:
|
aliases:
|
||||||
- mt
|
- mt
|
||||||
Reference in New Issue
Block a user