A claim plugin based on FTB Chunks
1package dev.keii.keiichunks.events;
2
3import com.destroystokyo.paper.profile.PlayerProfile;
4import com.destroystokyo.paper.profile.ProfileProperty;
5import com.fasterxml.jackson.databind.ObjectMapper;
6import dev.keii.keiichunks.DatabaseConnector;
7import dev.keii.keiichunks.KeiiChunks;
8import dev.keii.keiichunks.RuntimeError;
9import dev.keii.keiichunks.error.Result;
10import net.kyori.adventure.text.Component;
11import net.kyori.adventure.text.format.NamedTextColor;
12import org.bukkit.Bukkit;
13import org.bukkit.entity.Player;
14import org.bukkit.event.EventHandler;
15import org.bukkit.event.Listener;
16import org.bukkit.event.player.PlayerJoinEvent;
17
18import java.sql.Connection;
19import java.sql.ResultSet;
20import java.sql.SQLException;
21import java.sql.Statement;
22import java.util.Set;
23
24public class PlayerJoin implements Listener {
25
26 @EventHandler
27 public void onPlayerJoin(PlayerJoinEvent event)
28 {
29 Player player = event.getPlayer();
30
31 String resourcePackURL = "https://github.com/shykeiichi/plugin-resourcepack/raw/main/release.zip";
32 player.setResourcePack(resourcePackURL);
33
34 try {
35 Connection connection = DatabaseConnector.getConnection();
36 Statement statement = connection.createStatement();
37
38 String userQuery = "SELECT id FROM user WHERE uuid = \"" + player.getUniqueId() + "\"";
39 ResultSet userResultSet = statement.executeQuery(userQuery);
40
41 if (!userResultSet.next()) { // User does not exist
42 userResultSet.close();
43 String createUserQuery = "INSERT INTO user (uuid, nickname, claim_power) VALUES (\"" + player.getUniqueId() + "\", \"" + player.getName() + "\", 15)";
44 statement.execute(createUserQuery);
45
46 statement.close();
47 connection.close();
48 return;
49 }
50
51 userResultSet.close();
52 statement.close();
53 connection.close();
54 } catch (SQLException e) {
55 Bukkit.getServer().broadcast(Component.text("Fatal Database Error: " + e.getMessage()).color(NamedTextColor.RED));
56 }
57 }
58}