1
mirror of https://github.com/CarmJos/UltraDepository.git synced 2026-06-04 16:48:21 +08:00

项目初始化

This commit is contained in:
2021-12-15 19:24:48 +08:00
commit 6db869d755
22 changed files with 1640 additions and 0 deletions
+111
View File
@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ultrabackpack-parent</artifactId>
<groupId>cc.carm.plugin</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ultrabackpack-plugin</artifactId>
<packaging>jar</packaging>
<name>UltraBackpack-Plugin</name>
<description>超级背包插件的插件主体。</description>
<url>https://github.com/CarmJos/UltraBackpack</url>
<developers>
<developer>
<id>CarmJos</id>
<name>Carm Jos</name>
<email>carm@carm.cc</email>
<url>https://www.carm.cc</url>
<roles>
<role>Main Developer</role>
</roles>
</developer>
</developers>
<licenses>
<license>
<name>GNU General Public License v3.0</name>
<url>https://opensource.org/licenses/GPL-3.0</url>
</license>
</licenses>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/CarmJos/UltraBackpack/issues</url>
</issueManagement>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/CarmJos/UltraBackpack/actions/workflows/maven.yml</url>
</ciManagement>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
<distributionManagement>
<downloadUrl>https://github.com/CarmJos/UltraBackpack/releases</downloadUrl>
</distributionManagement>
<repositories>
</repositories>
<dependencies>
<dependency>
<groupId>${project.parent.groupId}</groupId>
<artifactId>ultrabackpack-api</artifactId>
<version>${project.parent.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-beecp</artifactId>
<version>0.2.1</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,82 @@
package cc.carm.plugin.ultrabackpack;
import cc.carm.plugin.ultrabackpack.util.ColorParser;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.PluginCommand;
import org.bukkit.command.TabCompleter;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class Main extends JavaPlugin {
private static Main instance;
public static boolean debugMode = true;
@Override
public void onEnable() {
instance = this;
log(getName() + " " + getDescription().getVersion() + " &7开始加载...");
long startTime = System.currentTimeMillis();
log("加载配置文件...");
saveDefaultConfig();
reloadConfig();
log("注册监听器...");
log("加载完成 ,共耗时 " + (System.currentTimeMillis() - startTime) + " ms 。");
}
@Override
public void onDisable() {
log(getName() + " " + getDescription().getVersion() + " 开始卸载...");
long startTime = System.currentTimeMillis();
log("卸载监听器...");
Bukkit.getServicesManager().unregisterAll(this);
log("卸载完成 ,共耗时 " + (System.currentTimeMillis() - startTime) + " ms 。");
}
/**
* 注册监听器
*
* @param listener 监听器
*/
public static void regListener(@NotNull Listener listener) {
Bukkit.getPluginManager().registerEvents(listener, getInstance());
}
public static void log(@Nullable String message) {
Bukkit.getConsoleSender().sendMessage(ColorParser.parse("[" + getInstance().getName() + "] " + message));
}
public static void debug(@Nullable String message) {
if (debugMode) {
log("[DEBUG] " + message);
}
}
public static Main getInstance() {
return instance;
}
public static void registerCommand(String commandName,
@NotNull CommandExecutor executor) {
registerCommand(commandName, executor, null);
}
public static void registerCommand(String commandName,
@NotNull CommandExecutor executor,
@Nullable TabCompleter tabCompleter) {
PluginCommand command = Bukkit.getPluginCommand(commandName);
if (command == null) return;
command.setExecutor(executor);
if (tabCompleter != null) command.setTabCompleter(tabCompleter);
}
}
@@ -0,0 +1,4 @@
package cc.carm.plugin.ultrabackpack.command;
public class BackpackCommand {
}
@@ -0,0 +1,44 @@
package cc.carm.plugin.ultrabackpack.listener;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityPickupItemEvent;
import org.bukkit.inventory.ItemStack;
import java.util.Collection;
import java.util.UUID;
public class CollectListener implements Listener {
@EventHandler
public void onBreak(BlockBreakEvent event) {
Player player = event.getPlayer();
Collection<ItemStack> drops = event.getBlock().getDrops();
}
@EventHandler
public void onBreak(EntityDeathEvent event) {
Player player = event.getEntity().getKiller();
if (player == null) return;
Collection<ItemStack> drops = event.getDrops();
}
public void onPickup(EntityPickupItemEvent event) {
if (!(event.getEntity() instanceof Player)) return;
Player player = (Player) event.getEntity();
UUID thrower = event.getItem().getThrower();
if (thrower != null && thrower.equals(player.getUniqueId())) return;
ItemStack item = event.getItem().getItemStack();
}
}
@@ -0,0 +1,33 @@
package cc.carm.plugin.ultrabackpack.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ColorParser {
public static String parse(String text) {
text = parseHexColor(text);
return parseColor(text);
}
public static String parseColor(final String text) {
return text.replaceAll("&", "§").replace("§§", "&");
}
public static String parseHexColor(String text) {
Pattern pattern = Pattern.compile("&\\((&?#[0-9a-fA-F]{6})\\)");
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
String hexColor = text.substring(matcher.start() + 2, matcher.end() - 1);
hexColor = hexColor.replace("&", "");
StringBuilder bukkitColorCode = new StringBuilder('§' + "x");
for (int i = 1; i < hexColor.length(); i++) {
bukkitColorCode.append('§').append(hexColor.charAt(i));
}
text = text.replaceAll("&\\(" + hexColor + "\\)", bukkitColorCode.toString().toLowerCase());
matcher.reset(text);
}
return text;
}
}
@@ -0,0 +1,19 @@
# UltraBackpack
# -> ${project.url}
version: ${project.version}
stroage:
# 存储方式,可选 [ yaml | mysql ]
method: database
# 选择 file 存储方式时的存储路径
# 支持绝对路径,如 “/var/data/ub/"(linux) 或 "D:\data\ub\"(windows)
# 使用绝对路径时请注意权限问题
file-path: data
# 选择 database 存储方式时的数据库配置
mysql:
# 数据库驱动路径
driver: "com.mysql.cj.jdbc.Driver"
url: ""
username: ""
passwd: ""
@@ -0,0 +1,2 @@
COLLECT: "&f您收集了 &e%(item)&7x%(amount) &f,已自动放入到您的 &6%(backpack) &f中。"
SELL: "&f您出售了 &e%(item)&7x%(amount) &f,共赚取 &6%(money) &f元。"
@@ -0,0 +1,16 @@
main: ${project.groupId}.${project.artifactId}.Main
version: ${project.version}
name: ${project.name}
description: ${project.description}
website: ${project.url}
author: CarmJos
permissions:
"${project.name}.use":
description: "超级背包的基本使用权限"
default: true
"${project.name}.admin":
description: "超级背包的管理权限"
default: op