Java Minecraft plugin mantığını anlamak

@count
Java:
<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>world.bentobox</groupId>
 <artifactId>limits</artifactId>
 <name>Limits</name>
 <version>${revision}</version>

 <description>An add-on for BentoBox that limits blocks and entities on islands.</description>
 <url>https://github.com/BentoBoxWorld/Limits</url>
 <inceptionYear>2018</inceptionYear>

 <developers>
 <developer>
 <id>tastybento</id>
 <email>[email protected]</email>
 <timezone>-8</timezone>
 <roles>
 <role>Lead Developer</role>
 </roles>
 </developer>
 </developers>

 <scm>
 <connection>scm:git:https://github.com/BentoBoxWorld/Limits.git</connection>
 <developerConnection>scm:git:[email protected]:BentoBoxWorld/Limits.git</developerConnection>
 <url>https://github.com/BentoBoxWorld/Limits</url>
 </scm>

 <ciManagement>
 <system>jenkins</system>
 <url>http://ci.codemc.org/job/BentoBoxWorld/job/Limits</url>
 </ciManagement>

 <issueManagement>
 <system>GitHub</system>
 <url>https://github.com/BentoBoxWorld/Limits/issues</url>
 </issueManagement>

 <distributionManagement>
 <snapshotRepository>
 <id>codemc-snapshots</id>
 <url>https://repo.codemc.org/repository/maven-snapshots</url>
 </snapshotRepository>
 <repository>
 <id>codemc-releases</id>
 <url>https://repo.codemc.org/repository/maven-releases</url>
 </repository>
 </distributionManagement>

 <properties>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 <java.version>17</java.version>
 <!-- Non-minecraft related dependencies -->
 <powermock.version>2.0.9</powermock.version>
 <!-- More visible way how to change dependency versions -->
 <spigot.version>1.19.4-R0.1-SNAPSHOT</spigot.version>
 <bentobox.version>1.23.0</bentobox.version>
 <!-- Revision variable removes warning about dynamic version -->
 <revision>${build.version}-SNAPSHOT</revision>
 <!-- Do not change unless you want different name for local builds. -->
 <build.number>-LOCAL</build.number>
 <!-- This allows to change between versions. -->
 <build.version>1.19.1</build.version>
 <sonar.projectKey>BentoBoxWorld_Limits</sonar.projectKey>
 <sonar.organization>bentobox-world</sonar.organization>
 <sonar.host.url>https://sonarcloud.io</sonar.host.url>
 </properties>

 <!-- Profiles will allow to automatically change build version. -->
 <profiles>
 <profile>
 <!-- ci profile is activated if exist environment variable BUILD_NUMBER. -->
 <!-- It replaces ${build.number} that is currently '-LOCAL' with.
 correct build number from JENKINS machine. -->
 <id>ci</id>
 <activation>
 <property>
 <name>env.BUILD_NUMBER</name>
 </property>
 </activation>
 <properties>
 <!-- Override only if necessary -->
 <build.number>-b${env.BUILD_NUMBER}</build.number>
 </properties>
 </profile>
 <profile>
 <!-- Master profile is activated if exist environment variable.
 GIT_BRANCH and its value is origin/master. -->
 <!-- It will replace 'revision' with '${build.version}' so it.
 removes '-SNAPSHOT' string at the end. -->
 <!-- Also, as this is release build, build number can be set.
 to empty string. -->
 <!-- This profile will be used only if exist environment variable.
 GIT_BRANCH with value origin/master. -->
 <id>master</id>
 <activation>
 <property>
 <name>env.GIT_BRANCH</name>
 <value>origin/master</value>
 </property>
 </activation>
 <properties>
 <!-- Override only if necessary -->
 <revision>${build.version}</revision>
 <!-- Empties build number variable. -->
 <build.number></build.number>
 </properties>
 </profile>
 </profiles>

 <repositories>
 <repository>
 <id>spigot-repo</id>
 <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots</url>
 </repository>
 <repository>
 <id>codemc</id>
 <url>https://repo.codemc.org/repository/maven-snapshots/</url>
 </repository>
 <repository>
 <id>codemc-repo</id>
 <url>https://repo.codemc.org/repository/maven-public/</url>
 </repository>
 </repositories>

 <dependencies>
 <!-- Spigot API -->
 <dependency>
 <groupId>org.spigotmc</groupId>
 <artifactId>spigot-api</artifactId>
 <version>${spigot.version}</version>
 <scope>provided</scope>
 </dependency>
 <!-- Mockito (Unit testing) -->
 <dependency>
 <groupId>org.mockito</groupId>
 <artifactId>mockito-core</artifactId>
 <version>3.11.1</version>
 <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>org.powermock</groupId>
 <artifactId>powermock-module-junit4</artifactId>
 <version>${powermock.version}</version>
 <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>org.powermock</groupId>
 <artifactId>powermock-api-mockito2</artifactId>
 <version>${powermock.version}</version>
 <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>world.bentobox</groupId>
 <artifactId>bentobox</artifactId>
 <version>${bentobox.version}</version>
 <scope>provided</scope>
 </dependency>
 </dependencies>

 <build>
 <!-- By default ${revision} is ${build.version}-SNAPSHOT -->
 <!-- If GIT_BRANCH variable is set to origin/master, then it will.
 be only ${build.version}. -->

 <!-- By default ${build.number} is -LOCAL. -->
 <!-- If the BUILD_NUMBER variable is set, then it will be -b[number]. -->
 <!-- If GIT_BRANCH variable is set to origin/master, then it will.
 be the empty string. -->
 <finalName>${project.name}-${revision}${build.number}</finalName>

 <defaultGoal>clean package</defaultGoal>
 <resources>
 <resource>
 <directory>src/main/resources</directory>
 <filtering>true</filtering>
 </resource>
 <resource>
 <directory>src/main/resources/locales</directory>
 <targetPath>./locales</targetPath>
 <filtering>false</filtering>
 </resource>
 </resources>
 <plugins>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-clean-plugin</artifactId>
 <version>3.1.0</version>
 </plugin>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-resources-plugin</artifactId>
 <version>3.1.0</version>
 </plugin>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <version>3.0.0-M5</version>
 <configuration>
 <argLine>
 ${argLine}
 --add-opens java.base/java.lang=ALL-UNNAMED
 --add-opens java.base/java.math=ALL-UNNAMED
 --add-opens java.base/java.io=ALL-UNNAMED
 --add-opens java.base/java.util=ALL-UNNAMED
 --add-opens
 java.base/java.util.stream=ALL-UNNAMED
 --add-opens java.base/java.text=ALL-UNNAMED
 --add-opens
 java.base/java.util.regex=ALL-UNNAMED
 --add-opens
 java.base/java.nio.channels.spi=ALL-UNNAMED
 --add-opens java.base/sun.nio.ch=ALL-UNNAMED
 --add-opens java.base/java.net=ALL-UNNAMED
 --add-opens
 java.base/java.util.concurrent=ALL-UNNAMED
 --add-opens java.base/sun.nio.fs=ALL-UNNAMED
 --add-opens java.base/sun.nio.cs=ALL-UNNAMED
 --add-opens java.base/java.nio.file=ALL-UNNAMED
 --add-opens
 java.base/java.nio.charset=ALL-UNNAMED
 --add-opens
 java.base/java.lang.reflect=ALL-UNNAMED
 --add-opens
 java.logging/java.util.logging=ALL-UNNAMED
 --add-opens java.base/java.lang.ref=ALL-UNNAMED
 --add-opens java.base/java.util.jar=ALL-UNNAMED
 --add-opens java.base/java.util.zip=ALL-UNNAMED
 </argLine>
 </configuration>
 </plugin>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-jar-plugin</artifactId>
 <version>3.1.0</version>
 </plugin>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-install-plugin</artifactId>
 <version>2.5.2</version>
 </plugin>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-deploy-plugin</artifactId>
 <version>2.8.2</version>
 </plugin>
 <plugin>
 <groupId>org.jacoco</groupId>
 <artifactId>jacoco-maven-plugin</artifactId>
 <version>0.8.7</version>
 <configuration>
 <append>true</append>
 <excludes>
 <!-- This is required to prevent Jacoco from adding.
 synthetic fields to a JavaBean class (causes errors in testing) -->
 <exclude>**/*Names*</exclude>
 </excludes>
 </configuration>
 <executions>
 <execution>
 <id>prepare-agent</id>
 <goals>
 <goal>prepare-agent</goal>
 </goals>
 </execution>
 <execution>
 <id>report</id>
 <goals>
 <goal>report</goal>
 </goals>
 <configuration>
 <formats>
 <format>XML</format>
 </formats>
 </configuration>
 </execution>
 </executions>
 </plugin>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>3.7.0</version>
 <configuration>
 <release>${java.version}</release>
 </configuration>
 </plugin>
 </plugins>
 </build>

</project>

Hocam bu kodlar bir plugin içersinden ve bir plugine bağlantılı. Bentobox adlı plugine bağlı ve ne yolla bağlanış bilmiyorum. Bunu başka plugine bağlamak mümkün müdür acaba?

İstediğiniz kod jar dosyası olursa paylaşabilirim.
Bu yolladığın şey bir maven pom.xmli olması lazım, proje ile alakalı bilgileri, nelere bağımlı olduğunu vb. tutan bir config dosyası yani, bu dosyadaki bilgilerle bir java projesi build edilebilir. Dediğim gibi minecraft pluginleri hakkında bir bilgim yok, senin de doğrudan bir plugin alıp editlemeden önce bir maven-java projesi nasıl derlenebilir gibi temel bilgileri öğrenmen lazım. Üzgünüm, yardımcı olamayacağım.
 
Bu yolladığın şey bir maven pom. XML'i olması lazım, proje ile alakalı bilgileri, nelere bağımlı olduğunu vb. tutan bir Config dosyası yani, bu dosyadaki bilgilerle bir Java projesi Build edilebilir. Dediğim gibi Minecraft pluginleri hakkında bir bilgim yok, senin de doğrudan bir plugin alıp editlemeden önce bir maven-Java projesi nasıl derlenebilir gibi temel bilgileri öğrenmen lazım. Üzgünüm, yardımcı olamayacağım.

İntelij idea ile direk olarak derlenebiliyormuş bende bugün öğrendim.
 

Yeni konular

Geri
Yukarı