我正在为我的minecraft服务器制作一个minecraft插件,但是我有一个错误,我找不到解决方案。上下文:我想存储级别/xp/等级等玩家的数据...你能帮我做插件的这一部分吗,我是Java的初学者。
这是我的代码:
import com.mongodb.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import me.codexis.velocitylobbygeneral.commands.Lobby;
import me.codexis.velocitylobbygeneral.commands.MoveBot;
import me.codexis.velocitylobbygeneral.commands.Test;
import me.codexis.velocitylobbygeneral.event.*;
import org.bson.Document;
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;
public final class VelocityLobbyGeneral extends JavaPlugin {
private static VelocityLobbyGeneral instance;
@Override
public void onEnable() {
setInstance(this);
// Listeners
getServer().getPluginManager().registerEvents(new OnJoinQuit(), this);
getServer().getPluginManager().registerEvents(new FormatChat(), this);
getServer().getPluginManager().registerEvents(new Scoreboard(), this);
// Channels
getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
// Commands
new Lobby();
new MoveBot();
new Test();
// Connection to database
MongoClient mongoClient = (MongoClient) MongoClients.create("mongodb+srv://myusername:@databasemc.ehssc.mongodb.net/VelocityMC?retryWrites=true&w=majority");
MongoDatabase mongoDatabase = mongoClient.getDatabase("VelocityMC");
MongoCollection<Document> mongoCollection = mongoDatabase.getCollection("Vide");
getLogger().info(ChatColor.GREEN + "Connected to Database");
getLogger().info("=============================================");
getLogger().info(" >>>> Velocity Lobby General Loaded <<<< ");
getLogger().info("=============================================");
}
@Override
public void onDisable() {
getLogger().info("===============================================");
getLogger().info(" >>>> Velocity Lobby General disabled <<<< ");
getLogger().info("===============================================");
}
public static VelocityLobbyGeneral getInstance(){
return instance;
}
private static void setInstance(VelocityLobbyGeneral instance){
velocityLobbyGeneral.instance = instance;
}
}
这是我的错误:
[12:32:49 WARN]: java.lang.NoClassDefFoundError: com/mongodb/client/MongoClients
[12:32:49 WARN]: at VelocityLobbyGeneral.jar//me.codexis.velocitylobbygeneral.VelocityLobbyGeneral.onEnable(VelocityLo
bbyGeneral.java:38)
[12:32:49 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
[12:32:49 WARN]: at
org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370)
[12:32:49 WARN]: at
org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500)
[12:32:49 WARN]: at
org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugin(CraftServer.java:535)
[12:32:49 WARN]: at
org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugins(CraftServer.java:449)
[12:32:49 WARN]: at
org.bukkit.craftbukkit.v1_17_R1.CraftServer.reload(CraftServer.java:970)
[12:32:49 WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:769)
[12:32:49 WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:54)
[12:32:49 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159)
[12:32:49 WARN]: at org.bukkit.craftbukkit.v1_17_R1.CraftServer.dispatchCommand(CraftServer.java:838)
[12:32:49 WARN]: at org.bukkit.craftbukkit.v1_17_R1.CraftServer.dispatchServerCommand(CraftServer.java:801)
[12:32:49 WARN]: at net.minecraft.server.dedicated.DedicatedServer.handleCommandQueue(DedicatedServer.java:518)
[12:32:49 WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:480)
[12:32:49 WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1475)
[12:32:49 WARN]: at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1274)
[12:32:49 WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
[12:32:49 WARN]: at java.base/java.lang.Thread.run(Thread.java:831)
[12:32:49 WARN]: Caused by: java.lang.ClassNotFoundException: com.mongodb.client.MongoClients
[12:32:49 WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:146)
[12:32:49 WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:103)
[12:32:49 WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
[12:32:49 WARN]: ... 18 more
谁能帮帮我吗。
Pom。xml:
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>me.codexisphantom</groupId>
<artifactId>VelocityLobby</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>VelocityLobby</name>
<description>Official VelocityMC Plugin</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<url>www.velocity-net.com</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<repositories>
<repository>
<id>papermc-repo</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.17.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
Mongodb依赖项:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.10</version>
<scope>compile</scope>
</dependency>
添加的插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
在maven配置中,您正在导入MongoDB。因此,它将编译,您将能够在开发时使用它。
但是,在编译时,它不会包含在最终的jar中。例如MongoDB不在spiget中,它将创建您的错误(找不到MongoDB类)。
要修复它,有多个教程1、2、3、4...我相信我们可以找到更多。
我建议您像这样导入mongo db:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.10</version> <!-- The version that you want -->
<scope>compile</scope> <!-- In my maven project, it include this project in builded jar -->
</dependency>
您可以在此处找到所有版本的MongoDB
我的完整配置有效:
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.10</version>
<scope>compile</scope>
</dependency>
</dependencies>
下面是/etc/kafka/connect-MongoDB-source.properties中的MongoDB配置 但是低于误差 以独立模式运行连接器。 我在debezium-debezium-连接器-mongob-1.0.0/debezium-connector-mongodb-1.0.0.Final.jar 类路径的设置如下 使用插件路径,我看到它能够注册和加载所有必需的插件。 但最后还是同
我在我的运行系统中有MongoDB和Robomongo,我使用Robomongo作为客户端。 我已将MongoDB安装在另一个系统上,我将其视为服务器,我想将我系统的Robomongo(作为客户端)连接到另一个系统(服务器)上的MongoDB。我应该采取哪些步骤来实现同样的目标? 我使用的是机器名,因为系统的IP地址不是静态的。但即使我使用系统的IP地址,我也会遇到同样的错误: 连接失败,无法连接
我正在尝试使用MongoDB指南针使用Atlas
问题内容: 我正在使用docker- compose 运行一个应用程序。一切正常,通过连接到容器内的Mongo,我可以看到所有数据。但是,当我连接到RoboMongo时,我看不到任何数据。 我该如何解决这个问题? 问题答案: 您应该在Docker容器内建立到MongoDB的Robomongo SSH隧道连接。首先,您应该在docker容器中安装一个ssh服务器。 https://docs.dock
我有一个web应用程序,它使用Spring Boot来处理后端逻辑。我正在尝试集成mongodb以跟踪有关此webapp用户的一些信息。我在mongodb Atlas上创建了一个数据库,通过Mongo Shell连接正常。当我尝试与Spring连接时,问题就出现了。让我给你看看所有的细节 在Atlas中,我将此IP地址(0.0.0.0/0(包括您当前的IP地址))添加到安全性中 然后我创建了一个名
我有一个托管在Atlas MongoDB云集群上的mongob数据库。我目前正在使用mongoose访问node.js应用程序中的数据库: 因为Atlas MongoDB Cloud有一个白名单,而且Heroku不提供为我的应用程序获取固定IP地址的可能性,所以我正在使用Fixie插件。基本上,Fixie充当出站流量的代理。 可以用猫鼬做吗? 猫鼬。connect函数接受一个option参数,但我