This commit is contained in:
Debucquoy Anthony 2024-01-21 11:50:58 +01:00
parent ad7ed2b2ab
commit 762ab5f926
Signed by: tonitch
GPG Key ID: A78D6421F083D42E
7 changed files with 194 additions and 9 deletions

1
.gitignore vendored
View File

@ -10,3 +10,4 @@ bin/
.idea/ .idea/
.settings/ .settings/
.project .project
.classpath

View File

@ -0,0 +1,68 @@
package ovh.herisson.thevoidroad.Commands;
import org.bukkit.Location;
import org.bukkit.WorldBorder;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class VoidCommands implements CommandExecutor{
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
//balance
if(args.length == 0){
if(sender instanceof Player ply){
// long voids = ply.getPersistentDataContainer().has(TheVoidRoad.voids) ? ply.getPersistentDataContainer().get(TheVoidRoad.voids, PersistentDataType.LONG) : 0;
// ply.sendMessage(Component.text("Vous avez : ").append(Component.text(voids).color(NamedTextColor.GREEN).append(Component.text(TheVoidRoad.CoinGlyph))));
return true;
}
return false;
}
//Args
switch (args[0].toLowerCase()) {
case "event":
case "give":
sender.sendMessage("TODO");
return true;
case "manage":
if(sender.hasPermission("TheVoidRoad.manage"))
return manage(sender, args);
else
sender.sendMessage("You don't have the permissions to do that!");
}
return false;
}
// Manage sub command
private boolean manage(CommandSender sender, String[] args) {
switch(args[1]){
case "balance":
switch (args[2]) {
case "set":
// Player ply = Bukkit.getServer().getPlayer(args[3]);
// ply.getPersistentDataContainer().set(TheVoidRoad.voids, PersistentDataType.LONG, Long.parseLong(args[4]));
return true;
}
case "setspawn":
if(sender instanceof Player ply){
Location loc = ply.getLocation();
WorldBorder border = ply.getWorld().getWorldBorder();
ply.getWorld().setSpawnLocation(loc);
border.setCenter(loc);
border.setSize(750);
return true;
}
break;
case "init":
break;
}
return false;
}
}

View File

@ -0,0 +1,39 @@
package ovh.herisson.thevoidroad;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import org.bukkit.Bukkit;
public class DatabaseManager {
private static DatabaseManager instance;
public static DatabaseManager getInstance(){
if (instance != null) return instance;
try { instance = new DatabaseManager();}
catch(SQLException e){ Bukkit.getLogger().warning("Could not Initiate database : " + e); }
return instance;
}
private Connection con;
private DatabaseManager() throws SQLException{
new File("plugins/TheVoidRoad").mkdirs();
con = DriverManager.getConnection("jdbc:sqlite:plugins/TheVoidRoad/voids.db");
InitTables();
}
private void InitTables() throws SQLException{
String query = "CREATE TABLE IF NOT EXISTS voids (\n"
+ "id integer PRIMARY KEY,\n"
+ "uuid text NOT NULL,\n"
+ "ammount INTEGER DEFAULT 0)";
Statement st = con.createStatement();
st.execute(query);
}
}

View File

@ -0,0 +1,39 @@
package ovh.herisson.thevoidroad.Entity;
import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Villager;
import org.bukkit.event.Listener;
//Unique, so singleton patern
public class Merchand implements Listener{
private static Merchand instance;
public static Merchand getInstance(){
if(instance != null)
return instance;
return new Merchand();
}
private Villager m ;
private Merchand() {
int x = new Random().nextInt(750 * 2) - 750, z = new Random().nextInt(750 * 2) - 750;
m = (Villager) Bukkit.getWorld("world").spawnEntity(new Location(Bukkit.getWorld("world"), x, 300, z), EntityType.VILLAGER);
m.setGlowing(true);
m.setInvulnerable(true);
}
public void regenerate(){
m.remove();
int x = new Random().nextInt(750 * 2) - 750, z = new Random().nextInt(750 * 2) - 750;
m = (Villager) Bukkit.getWorld("world").spawnEntity(new Location(Bukkit.getWorld("world"), x, 300, z), EntityType.VILLAGER);
m.setGlowing(true);
m.setInvulnerable(true);
}
}

View File

@ -0,0 +1,27 @@
package ovh.herisson.thevoidroad.Event;
import java.time.LocalTime;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import com.destroystokyo.paper.event.server.ServerTickStartEvent;
public class NewHourEvent implements Listener{
public int hour = 0;
@EventHandler
public void onHour(ServerTickStartEvent e){
if(LocalTime.now().getHour() != hour){
hour = LocalTime.now().getHour();
hourEvent();
}
}
//This function will be called once per hours
private void hourEvent() {
Bukkit.getLogger().info("test"); //TODO
}
}

View File

@ -1,17 +1,24 @@
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package ovh.herisson.thevoidroad; package ovh.herisson.thevoidroad;
import java.util.logging.Level; import org.bukkit.event.Listener;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
public class TheVoidRoad extends JavaPlugin{ import ovh.herisson.thevoidroad.Commands.VoidCommands;
import ovh.herisson.thevoidroad.Event.NewHourEvent;
public class TheVoidRoad extends JavaPlugin implements Listener{
public static String CoinGlyph = ""; // Ɣ, , , , ṿ
@Override @Override
public void onEnable(){ public void onEnable(){
Bukkit.getLogger().log(Level.INFO, "Hello World!");
DatabaseManager db = DatabaseManager.getInstance();
//Commands
getCommand("void").setExecutor(new VoidCommands());
//Events
getServer().getPluginManager().registerEvents(new NewHourEvent(), this);
} }
} }

View File

@ -5,3 +5,7 @@ description: This is a plugin for the void road's server
author: Tonitch author: Tonitch
website: herisson.ovh website: herisson.ovh
api-version: '1.20' api-version: '1.20'
commands:
void:
description: Interact with the void road plugin
usage: "/void <give|manage>"