Compare commits
3 Commits
refactor_c
...
dbbb60280b
| Author | SHA1 | Date | |
|---|---|---|---|
| dbbb60280b | |||
| 750042d7a9 | |||
| 1bac43b3fe |
@@ -3,7 +3,7 @@ name: Build and Release Minecraft Plugin
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- release
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
65
.gitea/workflows/test-release.yml
Normal file
65
.gitea/workflows/test-release.yml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
name: Build and Release Minecraft Plugin
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- testing
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up Java 17
|
||||||
|
uses: actions/setup-java@v2
|
||||||
|
with:
|
||||||
|
java-version: '17'
|
||||||
|
distribution: 'adopt' # Verwenden Sie 'adopt' für Java 17
|
||||||
|
|
||||||
|
- name: Update Apt
|
||||||
|
run: apt update -y
|
||||||
|
|
||||||
|
- name: Update CA certificates
|
||||||
|
run: apt-get install --reinstall ca-certificates -y
|
||||||
|
|
||||||
|
- name: Install Maven
|
||||||
|
run: apt install maven -y
|
||||||
|
|
||||||
|
- name: Build with Maven
|
||||||
|
run: mvn clean install
|
||||||
|
|
||||||
|
- name: Upload Artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: BetterMinecraft-stable.jar
|
||||||
|
path: target/BetterMinecraft-stable.jar
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Get letzte Release-Version
|
||||||
|
id: get_version
|
||||||
|
run: echo "::set-output name=version::$(git describe --tags --abbrev=0 || echo '0.0.0')"
|
||||||
|
|
||||||
|
- name: Incrementiere Version
|
||||||
|
id: increment_version
|
||||||
|
run: |
|
||||||
|
IFS='.' read -ra VERSION <<< "${{ steps.get_version.outputs.version }}"
|
||||||
|
MAJOR="${VERSION[0]}"
|
||||||
|
MINOR="${VERSION[1]}"
|
||||||
|
PATCH="${VERSION[2]}"
|
||||||
|
echo "::set-output name=major::$(($MAJOR + 1))"
|
||||||
|
echo "::set-output name=minor::$(($MINOR + 1))"
|
||||||
|
echo "::set-output name=patch::$(($PATCH + 1))"
|
||||||
|
|
||||||
|
- name: Create Release
|
||||||
|
id: create_release
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
target/BetterMinecraft-beta.jar
|
||||||
|
tag_name: ${{ steps.increment_version.outputs.major }}.${{ steps.increment_version.outputs.minor }}.${{ steps.increment_version.outputs.patch }}
|
||||||
|
release_name: Release ${{ steps.increment_version.outputs.major }}.${{ steps.increment_version.outputs.minor }}.${{ steps.increment_version.outputs.patch }}
|
||||||
|
draft: false
|
||||||
|
prerelease: true
|
||||||
2
changelog.txt
Normal file
2
changelog.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
+ added system type changelog
|
||||||
|
+ added custom type changelog
|
||||||
4
pom.xml
4
pom.xml
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>de.steev.bm</groupId>
|
<groupId>de.steev.bm</groupId>
|
||||||
<artifactId>BetterMinecraft</artifactId>
|
<artifactId>BetterMinecraft</artifactId>
|
||||||
<version>1.2.2</version>
|
<version>stable</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>17</maven.compiler.source>
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.21.1-R0.1-SNAPSHOT</version>
|
<version>1.20.1-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@@ -5,80 +5,89 @@ import de.steev.bm.Listener.BedListener;
|
|||||||
import de.steev.bm.Listener.InteractListener;
|
import de.steev.bm.Listener.InteractListener;
|
||||||
import de.steev.bm.Listener.KillListener;
|
import de.steev.bm.Listener.KillListener;
|
||||||
import de.steev.bm.Manager.GameManager;
|
import de.steev.bm.Manager.GameManager;
|
||||||
import de.steev.bm.utils.Config;
|
|
||||||
import de.steev.bm.utils.exceptions.ConfigEntryExceptions;
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import static de.steev.bm.utils.Constants.*;
|
|
||||||
|
|
||||||
public class BetterMinecraft extends JavaPlugin implements Listener {
|
public class BetterMinecraft extends JavaPlugin implements Listener {
|
||||||
|
|
||||||
// Global Variables that might come helpfull later
|
// Global Variables that might come helpfull later
|
||||||
public int playerInBed = 0;
|
public int playerInBed = 0;
|
||||||
public World world;
|
public World world;
|
||||||
|
String version = "1.2";
|
||||||
|
|
||||||
// Custom Playerdata File
|
// Custom Playerdata File
|
||||||
private Config playerData = new Config(playerDataFilename, this);
|
private File playerdata;
|
||||||
|
private FileConfiguration playerDataConfig;
|
||||||
|
private final String playerdatafilename = "playerdata.yml";
|
||||||
|
private static String prefix = ChatColor.GRAY + "[" + ChatColor.AQUA + "BetterMinecraft" + ChatColor.GRAY + "]";
|
||||||
|
|
||||||
private GameManager gameManager;
|
private GameManager gameManager;
|
||||||
|
|
||||||
// Handles initialisation
|
// Handles initialisation
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
// Messaging
|
// Messaging
|
||||||
this.getLogger().info(prefix + ChatColor.WHITE + "Plugin Startup");
|
this.getLogger().info(prefix + ChatColor.WHITE + "Plugin Startet");
|
||||||
this.getLogger().info(prefix + ChatColor.WHITE + "Initializing Gamemanager");
|
this.getLogger().info(prefix + ChatColor.WHITE + "Initializing Gamemanager");
|
||||||
gameManager = new GameManager(this);
|
gameManager = new GameManager(this);
|
||||||
|
|
||||||
// Registers Events
|
// Registers Events
|
||||||
this.getLogger().info(prefix + ChatColor.WHITE + "Load Events");
|
this.getLogger().info(prefix + ChatColor.WHITE + "Lade Events");
|
||||||
this.getServer().getPluginManager().registerEvents(new BedListener(this.gameManager), this);
|
this.getServer().getPluginManager().registerEvents(new BedListener(this.gameManager), this);
|
||||||
this.getServer().getPluginManager().registerEvents(new KillListener(this.gameManager), this);
|
this.getServer().getPluginManager().registerEvents(new KillListener(this.gameManager), this);
|
||||||
this.getServer().getPluginManager().registerEvents(new InteractListener(this.gameManager), this);
|
this.getServer().getPluginManager().registerEvents(new InteractListener(this.gameManager), this);
|
||||||
this.getServer().getPluginManager().registerEvents(this, this);
|
this.getServer().getPluginManager().registerEvents(this, this);
|
||||||
|
|
||||||
Objects.requireNonNull(this.getCommand("back")).setExecutor(new back(this.gameManager));
|
this.getCommand("back").setExecutor(new back(this.gameManager));
|
||||||
|
|
||||||
// PlayerData
|
// PlayerData
|
||||||
try {
|
playerdata = new File(this.getDataFolder(), playerdatafilename);
|
||||||
this.playerData.saveConfig(playerDataFilename);
|
playerDataConfig = YamlConfiguration.loadConfiguration(playerdata);
|
||||||
} catch (IOException e) {
|
saveplayerdata();
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// More Messaging
|
// More Messaging
|
||||||
this.getLogger().info(ChatColor.AQUA + "Startup complete :D");
|
this.getLogger().info(ChatColor.AQUA + "Ich bin Fertig :D");
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onPlayerJoin(PlayerJoinEvent e) {
|
void onPlayerJoin(PlayerJoinEvent e) {
|
||||||
Player p = (Player) e.getPlayer();
|
Player p = (Player) e.getPlayer();
|
||||||
UUID uuid = p.getUniqueId();
|
UUID uuid = p.getUniqueId();
|
||||||
|
// prevent this allways resetting the job count
|
||||||
|
if (this.playerDataConfig.get(uuid + "." + version + ".read") == null) {
|
||||||
|
p.sendMessage("================= Better Minecraft " + version + " =================");
|
||||||
|
p.sendMessage("Command: /back eingefügt");
|
||||||
|
p.sendMessage("=====================================================");
|
||||||
|
|
||||||
try {
|
this.playerDataConfig.set(uuid + ".name", p.getName());
|
||||||
if (this.playerData.readBooleanFromConfig(uuid + "." + Version + ".read")) {
|
this.playerDataConfig.set(uuid + "." + version + ".read", "true");
|
||||||
p.sendMessage("================= Better Minecraft " + Version + " =================");
|
saveplayerdata();
|
||||||
p.sendMessage("Amboss Kostengrenze entfernt");
|
|
||||||
p.sendMessage("=====================================================");
|
|
||||||
|
|
||||||
this.playerData.writeStringToConfig(uuid + ".name", p.getName());
|
|
||||||
this.playerData.writeStringToConfig(uuid + "." + Version + ".read", "true");
|
|
||||||
this.playerData.saveConfig(playerDataFilename);
|
|
||||||
}
|
|
||||||
} catch (ConfigEntryExceptions cee) {
|
|
||||||
this.getLogger().warning("reading config failed with error: " + cee.getMessage());
|
|
||||||
} catch (IOException ioe) {
|
|
||||||
throw new RuntimeException(ioe);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void saveplayerdata() {
|
||||||
|
try {
|
||||||
|
playerDataConfig.save(playerdata);
|
||||||
|
} catch (IOException e) {
|
||||||
|
this.getLogger().warning("Unable to save " + playerdatafilename); // shouldn't really happen, but save
|
||||||
|
// throws the exception
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileConfiguration getPlayerDataConfig(){
|
||||||
|
return this.playerDataConfig;
|
||||||
|
}
|
||||||
public static String LoggerPrefix(){
|
public static String LoggerPrefix(){
|
||||||
return prefix;
|
return prefix;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
package de.steev.bm.utils;
|
|
||||||
|
|
||||||
import de.steev.bm.Manager.GameManager;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
enum ChangelogType {
|
|
||||||
SystemChangeLog,
|
|
||||||
CustomChangelog
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Changelog {
|
|
||||||
private GameManager plugin;
|
|
||||||
|
|
||||||
public Changelog(GameManager plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* handles getting changelog and sending it to the player
|
|
||||||
* @param player the receiving player
|
|
||||||
*/
|
|
||||||
public void SendChangelog(Player player) {
|
|
||||||
//player.sendMessage(createChangelog());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* handles checking the playerdata if a player already saw the changelog
|
|
||||||
* @param player the player to lookup
|
|
||||||
* @return boolean which tells whether a player has seen the changelog or not
|
|
||||||
*/
|
|
||||||
private boolean hasPlayerSeenChangelog(ChangelogType changelogType, Player player) {
|
|
||||||
// TODO: read from header what version the changelog is for
|
|
||||||
// TODO: read from playerdata.yml if the player has seen the changelog for that type
|
|
||||||
// TODO: return found result
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***
|
|
||||||
* reads the set changlog file
|
|
||||||
* @return the resulting changelog as string
|
|
||||||
*/
|
|
||||||
private String createChangelog(ChangelogType changelogType) {
|
|
||||||
// TODO: FETCH from
|
|
||||||
|
|
||||||
/*switch (changelogType) {
|
|
||||||
case SystemChangeLog:
|
|
||||||
// TODO: get changelog url from config
|
|
||||||
// TODO: fetch version changelog from git
|
|
||||||
// TODO: proccess changelog
|
|
||||||
break;
|
|
||||||
case CustomChangelog:
|
|
||||||
// TODO: fetch changes from changes.txt found in plugin folder or from configured destination
|
|
||||||
// TODO: proccess changelog
|
|
||||||
break;
|
|
||||||
|
|
||||||
}*/
|
|
||||||
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
package de.steev.bm.utils;
|
|
||||||
|
|
||||||
import de.steev.bm.BetterMinecraft;
|
|
||||||
import de.steev.bm.utils.exceptions.ConfigEntryExceptions;
|
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import static de.steev.bm.utils.Constants.playerDataFilename;
|
|
||||||
|
|
||||||
public class Config {
|
|
||||||
private String name;
|
|
||||||
private File configFile;
|
|
||||||
private FileConfiguration fileConfiguration;
|
|
||||||
private BetterMinecraft plugin;
|
|
||||||
|
|
||||||
public Config(String name, BetterMinecraft plugin) {
|
|
||||||
this.name = name;
|
|
||||||
this.plugin = plugin;
|
|
||||||
configFile = new File(this.plugin.getDataFolder(), playerDataFilename);
|
|
||||||
fileConfiguration = YamlConfiguration.loadConfiguration(configFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void saveConfig(String name) throws IOException {
|
|
||||||
try {
|
|
||||||
fileConfiguration.save(configFile);
|
|
||||||
} catch (IOException e) {
|
|
||||||
this.plugin.getLogger().warning("Unable to save " + playerDataFilename); // shouldn't really happen, but save
|
|
||||||
// throws the exception
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void writeStringToConfig(String path, String value) {
|
|
||||||
this.fileConfiguration.set(path, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String readStringFromConfig(String path) throws ConfigEntryExceptions {
|
|
||||||
|
|
||||||
if (this.fileConfiguration.get(path) == null) {
|
|
||||||
throw new ConfigEntryExceptions("entry at: " + path + " found null");
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.fileConfiguration.getString(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int readIntFromConfig(String path) throws ConfigEntryExceptions {
|
|
||||||
if (this.fileConfiguration.get(path) == null) {
|
|
||||||
throw new ConfigEntryExceptions("entry at: " + path + " found null");
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.fileConfiguration.getInt(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean readBooleanFromConfig(String path) throws ConfigEntryExceptions {
|
|
||||||
if (this.fileConfiguration.get(path) == null) {
|
|
||||||
throw new ConfigEntryExceptions("entry at: " + path + " found null");
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.fileConfiguration.getBoolean(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
public FileConfiguration getConfig() {
|
|
||||||
return this.fileConfiguration;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return this.name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package de.steev.bm.utils;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
|
|
||||||
public class Constants {
|
|
||||||
public static final String prefix = ChatColor.GRAY + "[" + ChatColor.AQUA + "BetterMinecraft" + ChatColor.GRAY + "]";
|
|
||||||
public static final String playerDataFilename = "playerdata.yml";
|
|
||||||
public static final String Version = "1.2.2";
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package de.steev.bm.utils.exceptions;
|
|
||||||
|
|
||||||
public class ConfigEntryExceptions extends Exception {
|
|
||||||
public ConfigEntryExceptions() {}
|
|
||||||
|
|
||||||
public ConfigEntryExceptions(String message) {
|
|
||||||
super(message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
# changelog
|
|
||||||
system_changelog: true
|
|
||||||
system_changelog_location: https://git.slpnetwork.de/Steev/betterminecraft/src/branch/main/changelog.txt
|
|
||||||
custom_changelog: true
|
|
||||||
custom_changelog_location: custom_changelog.txt
|
|
||||||
|
|
||||||
# features
|
|
||||||
changelog: true # if this is toggled the whole changelog system is enabled or disabled
|
|
||||||
improved_bed: true # toggles whether the night should be skipped when half the server players sleep
|
|
||||||
custom_drops: false # toggles if custom drops should be enabled
|
|
||||||
custom_recipes: false # toggles if custom recipes should be enabled
|
|
||||||
replanting: true # toggles the right click replant feature
|
|
||||||
back_command: true # toggles the back to death point feature
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
name: BetterMinecraft
|
name: BetterMinecraft
|
||||||
main: de.steev.bm.BetterMinecraft
|
main: de.steev.bm.BetterMinecraft
|
||||||
version: 1.2.2
|
version: 1.0
|
||||||
api-version: 1.21
|
api-version: 1.17
|
||||||
commands:
|
commands:
|
||||||
back:
|
back:
|
||||||
description: "teleports players back to their deathpoint"
|
description: "teleports players back to their deathpoint"
|
||||||
Reference in New Issue
Block a user