This commit is contained in:
Frizth Lyco Tatierra 2025-01-14 14:33:58 +08:00
parent 11d430ba67
commit 701d76167a
24 changed files with 381 additions and 0 deletions

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

View File

@ -0,0 +1,9 @@
<component name="ArtifactManager">
<artifact type="jar" name="servercore_za:jar">
<output-path>$PROJECT_DIR$/out/artifacts/servercore_za_jar</output-path>
<root id="archive" name="servercore_za.jar">
<element id="module-output" name="servercore_za" />
<element id="file-copy" path="$PROJECT_DIR$/src/main/resources/plugin.yml" />
</root>
</artifact>
</component>

13
.idea/compiler.xml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="servercore_za" />
</profile>
</annotationProcessing>
</component>
</project>

7
.idea/encodings.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

35
.idea/jarRepositories.xml Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="sonatype" />
<option name="name" value="sonatype" />
<option name="url" value="https://oss.sonatype.org/content/groups/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="spigotmc-repo" />
<option name="name" value="spigotmc-repo" />
<option name="url" value="https://hub.spigotmc.org/nexus/content/repositories/snapshots/" />
</remote-repository>
<remote-repository>
<option name="id" value="jitpack" />
<option name="name" value="jitpack" />
<option name="url" value="https://jitpack.io" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

14
.idea/misc.xml Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="23" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/servercore_za.iml" filepath="$PROJECT_DIR$/servercore_za.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

Binary file not shown.

83
pom.xml Normal file
View File

@ -0,0 +1,83 @@
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>net.thedawnph</groupId>
<artifactId>servercore_za</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>servercore_za</name>
<properties>
<java.version>21</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<defaultGoal>clean package</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</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.5.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<repositories>
<repository>
<id>jitpack</id>
<url>https://jitpack.io</url>
</repository>
<repository>
<id>spigotmc-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.21.3-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.ericdebouwer</groupId>
<artifactId>ZombieApocalypse</artifactId>
<version>1.4.11</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/lib/ZombieApocalypse.jar</systemPath>
</dependency>
</dependencies>
</project>

13
servercore_za.iml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>SPIGOT</platformType>
</autoDetectTypes>
<projectReimportVersion>1</projectReimportVersion>
</configuration>
</facet>
</component>
</module>

View File

@ -0,0 +1,19 @@
package net.thedawnph.servercore_za;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import java.util.Objects;
public class DisableMonsters implements Listener {
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
Server server = Bukkit.getServer();
Objects.requireNonNull(server.getWorld("world")).setSpawnFlags(false, true);
}
}

View File

@ -0,0 +1,50 @@
package net.thedawnph.servercore_za;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.Bukkit;
import java.io.IOException;
import java.util.Objects;
import java.util.logging.Logger;
import com.ericdebouwer.zombieapocalypse.api.ApocalypseAPI;
public final class Servercore_za extends JavaPlugin {
private static final Logger LOGGER=Logger.getLogger("servercore_za");
FileConfiguration config = getConfig();
@Override
public void onEnable()
{
LOGGER.info("ZA ServerCore has been enabled!");
registerEvents();
// Create config folder if it doesn't exist
if (!getDataFolder().exists()) {
if (getDataFolder().mkdir()) {
getLogger().info("Data folder created: " + getDataFolder().getAbsolutePath());
} else {
getLogger().info("Failed to create data folder: " + getDataFolder().getAbsolutePath() + ". It might exists?.");
}
}
// Save default configuration file
saveDefaultConfig();
}
@Override
public void onDisable()
{
LOGGER.info("ZA ServerCore disabled");
}
private void registerEvents() {
getServer().getPluginManager().registerEvents(new ZombieKill(), this);
getServer().getPluginManager().registerEvents(new DisableMonsters(), this);
getServer().getPluginManager().registerEvents(new StartNighttimeTask(), this);
}
}

View File

@ -0,0 +1,21 @@
package net.thedawnph.servercore_za;
import com.ericdebouwer.zombieapocalypse.api.ApocalypseAPI;
import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
public class StartNighttimeTask implements Listener {
public StartNighttimeTask() {
Bukkit.getScheduler().runTaskTimer(Servercore_za.getPlugin(Servercore_za.class), () -> {
ApocalypseAPI apocalypseAPI = ApocalypseAPI.getInstance();
long time = Bukkit.getWorlds().getFirst().getTime(); // Get the time of the first world
if (time >= 13000 && time <= 23000) { // Check if it is nighttime
boolean isApocalyptic = apocalypseAPI.isApocalypse("world");
if (isApocalyptic) {
apocalypseAPI.startApocalypse("world", 300, 1, true);
Bukkit.getWorlds().getFirst().playSound(Bukkit.getWorlds().getFirst().getSpawnLocation(), "block.bell.use", 1, 1);
}
}
}, 0, 1200L); // Run every minute
}
}

View File

@ -0,0 +1,34 @@
package net.thedawnph.servercore_za;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.entity.EntityType;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import java.util.List;
import java.util.Objects;
public class ZombieKill implements Listener {
// randomizer function
public static int randomizer(int min, int max) {
return (int) ((Math.random() * (max - min)) + min);
}
private FileConfiguration getConfig() {
return JavaPlugin.getPlugin(Servercore_za.class).getConfig();
}
@EventHandler
public void onEntityDeath(EntityDeathEvent event) {
if (event.getEntity().getType().equals(EntityType.ZOMBIE)) {
event.getDrops().clear();
List<String> items = getConfig().getStringList("zombie-drops");
event.getDrops().add(new ItemStack(Objects.requireNonNull(Material.getMaterial(Objects.requireNonNull(items.get(randomizer(0, items.size())))))));
}
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
zombie-drops:
- "IRON_INGOT"
- "GOLD_INGOT"
- "DIAMOND"
- "EMERALD"
- "DEAD_BUSH"
- "BREAD"
- "STICK"
- "LEATHER"
- "BONE"
- "LEATHER_HELMET"
- "LEATHER_CHESTPLATE"
- "LEATHER_LEGGINGS"
- "LEATHER_BOOTS"

View File

@ -0,0 +1,19 @@
name: servercore_za
version: '1.0-SNAPSHOT'
main: net.thedawnph.servercore_za.Servercore_za
api-version: '1.20'
load: STARTUP
authors: [ princepines ]
description: Server Core for TheDawnPH Zombie Apocalypse
website: https://thedawnph.net
depend: [ZombieApocalypse]
commands:
coreinfo:
description: Server Core for TheDawnPH Zombie Apocalypse
usage: /coreinfo
permission: servercore_za.command
permission-message: You do not have permission to use this command.
permissions:
servercore_za.command:
description: Permission to use Server Core for TheDawnPH Zombie Apocalypse
default: op

14
target/classes/config.yml Normal file
View File

@ -0,0 +1,14 @@
zombie-drops:
- "IRON_INGOT"
- "GOLD_INGOT"
- "DIAMOND"
- "EMERALD"
- "DEAD_BUSH"
- "BREAD"
- "STICK"
- "LEATHER"
- "BONE"
- "LEATHER_HELMET"
- "LEATHER_CHESTPLATE"
- "LEATHER_LEGGINGS"
- "LEATHER_BOOTS"

19
target/classes/plugin.yml Normal file
View File

@ -0,0 +1,19 @@
name: servercore_za
version: '1.0-SNAPSHOT'
main: net.thedawnph.servercore_za.Servercore_za
api-version: '1.20'
load: STARTUP
authors: [ princepines ]
description: Server Core for TheDawnPH Zombie Apocalypse
website: https://thedawnph.net
depend: [ZombieApocalypse]
commands:
coreinfo:
description: Server Core for TheDawnPH Zombie Apocalypse
usage: /coreinfo
permission: servercore_za.command
permission-message: You do not have permission to use this command.
permissions:
servercore_za.command:
description: Permission to use Server Core for TheDawnPH Zombie Apocalypse
default: op