Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
bb5d457
Laying groundwork part 1
Paldiu Jul 19, 2026
1eb9c4b
Groundwork establishment part 2
Paldiu Jul 19, 2026
d9da8bf
Repository compaction, addendums
Paldiu Jul 20, 2026
bf5625b
Merge branch 'prod' into scope/sql-config-rewrite
Paldiu Jul 27, 2026
6e023f5
pushign this shit because i need it OFF MY STASH
Paldiu Jul 27, 2026
6492bca
Merge branch 'prod' into scope/sql-config-rewrite
Paldiu Jul 28, 2026
9d3fdb4
Merge branch 'prod' into scope/sql-config-rewrite
Paldiu Jul 30, 2026
b5af338
adjust stuff
Paldiu Jul 30, 2026
2791c3c
Update AdminList.java
Paldiu Jul 30, 2026
b7f84c6
Should be the final push, will run through after work tonight before …
Paldiu Jul 30, 2026
88137cb
Final pass-through before PR can be reviewed
Paldiu Jul 31, 2026
ceebdd4
sqlite fixes
Paldiu Aug 3, 2026
63c96a8
adds sign text + book text to filter
gamingto12 Aug 3, 2026
2decf58
tab completion update
luke560 Aug 4, 2026
4349b01
Fix SQLite login deadlock in findByUsername
luke560 Aug 4, 2026
00b3eb4
Fix rank lookup deadlock and updated_at migration on SQLite
luke560 Aug 4, 2026
03cc2f5
Merge branch 'release/v26.9-sirius' into fix/sqlite-player-login-dead…
Paldiu Aug 4, 2026
16b74c1
Restore SQLiteAdapter and return Optional from findByUsername
luke560 Aug 4, 2026
bd314b0
jesus christ i forgot to commit while working :(
Paldiu Aug 4, 2026
cba736f
Add /signspy command and service
luke560 Aug 1, 2026
5b8ced0
Suppress no-op sign edits and blank placements
luke560 Aug 1, 2026
7a31d11
Rework chat format
luke560 Aug 1, 2026
68f0b2f
remove comments
luke560 Aug 2, 2026
3447e69
Add bookspy, streamline spy modes
luke560 Aug 4, 2026
3a53fda
update wording
Paldiu Aug 4, 2026
6e3d1f6
Update Title.java
Paldiu Aug 4, 2026
81f3ad8
Screen book pages before relaying to admins
luke560 Aug 4, 2026
d2cd1ae
Merge pull request #59 from luke560/feat/bookspy
Paldiu Aug 4, 2026
b758c81
Merge pull request #60 from luke560/fix/sqlite-player-login-deadlock
Paldiu Aug 5, 2026
71bb8c9
Convert JDA to Discord4J
Paldiu Aug 5, 2026
e212930
Merge branch 'prod' into scope/discord-rewrite
Paldiu Aug 5, 2026
d3d3044
add table for signspy
Paldiu Aug 5, 2026
7a8d4ef
Merge branch 'release/v26.9-sirius' into scope/discord-rewrite
Paldiu Aug 5, 2026
6c7ff89
Merge pull request #63 from tfreedomorg/scope/discord-rewrite
Paldiu Aug 5, 2026
95ee36e
permission fixes, reconciliation fixes, prevent use of disciplinary c…
Paldiu Aug 5, 2026
d824c6c
Import Formatting Plugin
Paldiu Aug 5, 2026
f34d425
Update rewrite.yml
Paldiu Aug 5, 2026
874b1f4
Update rewrite.yml
Paldiu Aug 5, 2026
0c9aad2
Complete import reorganization and pruning
Paldiu Aug 5, 2026
ff3b0c9
Merge branch 'pr-58' into release/v26.9-sirius
Paldiu Aug 5, 2026
208a17b
reconcile with pr
Paldiu Aug 5, 2026
1fe700d
literally git is such a fucking ballsack
Paldiu Aug 5, 2026
7b54bc7
Merge branch 'tfreedomorg:prod' into prod
gamingto12 Aug 5, 2026
d550f05
Merge pull request #65 from gamingto12/prod
Paldiu Aug 5, 2026
dcb2198
Persist /jlm toggle and restore its non-op permission
luke560 Aug 6, 2026
d33530b
Merge pull request #66 from luke560/fix/jlm-persistence
luke560 Aug 7, 2026
02e8ee6
Fix json overwriting sql state on every startup
luke560 Aug 6, 2026
f21ad52
Load ranks from SQL and fix role deserialisation
luke560 Aug 6, 2026
b5269f4
Fix rank registration
luke560 Aug 6, 2026
377e079
Fix timestamps
luke560 Aug 6, 2026
f48689e
I'm ready to be a single mother
luke560 Aug 6, 2026
d263f0f
Write THEN prune in strike/saved-flag reconciles
luke560 Aug 6, 2026
6b8fec6
Stop rewriting the whole bans table on every change
luke560 Aug 7, 2026
13bf233
Match player rows case-insensitively
luke560 Aug 7, 2026
406a916
Give uuidless bans a key so they can be updated
luke560 Aug 7, 2026
c0e6825
Compare snapshot and row timestamps at storage resolution
luke560 Aug 7, 2026
9b5531b
Refresh an empty snapshot from database
luke560 Aug 7, 2026
8c053be
Require a usename on permban rows
luke560 Aug 7, 2026
e7021b9
Re-resolve console bindings when the rank set changes
luke560 Aug 7, 2026
bd148f9
Merge pull request #67 from luke560/fix/json-reconcile-overwrites-sql
Paldiu Aug 7, 2026
af49ffd
Merge branch 'prod' into release/v26.9-sirius
Paldiu Aug 7, 2026
22d6fc8
restrict /opall gamemode switches to admins
luke560 Aug 7, 2026
fd84197
Fix titles never reaching SQL; add title completers and self-grant guard
luke560 Aug 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# TotalFreedomMod r03
![Release](https://img.shields.io/github/v/release/tfreedomorg/TotalFreedomMod?include_prereleases&style=plastic)
![Version](https://img.shields.io/badge/version-26.7-green?style=plastic)
![Version](https://img.shields.io/badge/version-26.7.1-green?style=plastic)
![License](https://img.shields.io/badge/license-TFGL%20v2.0-orange?style=plastic)
![Code size](https://img.shields.io/github/languages/code-size/tfreedomorg/TotalFreedomMod?style=plastic)

Expand Down
48 changes: 36 additions & 12 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,17 +1,26 @@
plugins {
id 'java'
id 'com.gorylenko.gradle-git-properties' version '2.5.7'
id 'org.openrewrite.rewrite' version '7.38.0'
}

group = 'me.totalfreedom'
version = '26.7.1'
version = '26.9'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(25)
}
}

rewrite {
activeRecipe(
"org.openrewrite.java.RemoveUnusedImports",
"org.openrewrite.java.OrderImports"
)
activeStyle("me.totalfreedom.totalfreedommod.WildcardStyle")
}

repositories {
mavenCentral()
maven {
Expand Down Expand Up @@ -39,28 +48,43 @@ repositories {
}

dependencies {
compileOnly 'io.papermc.paper:paper-api:26.1.2.build.61-stable'
// deprecated
compileOnly 'org.projectlombok:lombok:1.18.42'
annotationProcessor 'org.projectlombok:lombok:1.18.42'
compileOnly 'org.apache.commons:commons-lang3:3.14.0'
compileOnly 'commons-io:commons-io:2.16.1'
compileOnly 'net.kyori:adventure-text-serializer-ansi:4.17.0'
compileOnly 'net.milkbowl.vault:VaultUnlockedAPI:2.16'

// paper
compileOnly 'io.papermc.paper:paper-api:26.1.2.build.61-stable'
compileOnly 'net.kyori:adventure-text-serializer-ansi:4.17.0'

// plugins
compileOnly('com.sk89q.worldedit:worldedit-bukkit:7.3.10') { transitive = false }
compileOnly('com.sk89q.worldedit:worldedit-core:7.3.10') { transitive = false }
compileOnly "net.coreprotect:coreprotect:22.4"

compileOnly 'org.apache.sshd:sshd-core:2.17.1'
// packets
compileOnly 'com.github.retrooper:packetevents-spigot:2.12.1'

compileOnly 'org.jline:jline:3.28.0'
compileOnly 'org.apache.logging.log4j:log4j-core:2.24.3'
// discord stuff
compileOnly 'com.discord4j:discord4j-core:3.3.2'

compileOnly 'net.dv8tion:JDA:5.6.1'
// ssh
compileOnly 'org.apache.sshd:sshd-core:2.17.1'

compileOnly 'com.github.retrooper:packetevents-spigot:2.12.1'
// sql
compileOnly 'io.projectreactor:reactor-core:3.8.3'
compileOnly 'org.postgresql:postgresql:42.7.7'
compileOnly 'org.xerial:sqlite-jdbc:3.49.1.0'
compileOnly 'com.mysql:mysql-connector-j:9.3.0'
compileOnly 'com.zaxxer:HikariCP:6.3.0'

compileOnly "net.coreprotect:coreprotect:22.4"
// logging
compileOnly 'org.jline:jline:3.28.0'
compileOnly 'org.apache.logging.log4j:log4j-core:2.24.3'
}

// ... is this really necessary???
configurations.all {
resolutionStrategy {
force 'io.papermc.paper:paper-api:26.1.2.build.61-stable'
Expand Down Expand Up @@ -136,8 +160,8 @@ processResources {
}

expand(
buildAuthor: project.findProperty('buildAuthor') ?: 'Ivanomoly',
buildCodeName: project.findProperty('buildCodeName') ?: 'Polaris',
buildAuthor: project.findProperty('buildAuthor') ?: 'TotalFreedom', // Collective Effort :)
buildCodeName: project.findProperty('buildCodeName') ?: 'Sirius',
buildNumber: buildNumber,
buildVersion: project.version
)
Expand Down
File renamed without changes.
42 changes: 42 additions & 0 deletions rewrite.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
type: specs.openrewrite.org/v1beta/style
name: me.totalfreedom.totalfreedommod.WildcardStyle
styleConfigs:
- org.openrewrite.java.style.ImportLayoutStyle:
# anything lower than 5 will cause conflicts, 5 or higher is a good standard.
classCountToUseStarImport: 5
nameCountToUseStarImport: 5
layout:
# JDK
- import java.*
- import javax.*
- <blank line>
# server platform
- import com.destroystokyo.*
- import com.mojang.*
- import io.papermc.*
- import org.bukkit.*
- <blank line>
# adventure
- import net.kyori.*
- <blank line>
# third-party plugins
- import com.sk89q.*
- import net.coreprotect.*
- import net.milkbowl.*
- <blank line>
# github imports
- import com.github.*
- <blank line>
# reactive
- import discord4j.*
- import io.netty.*
- import reactor.*
- <blank line>
# project
- import me.totalfreedom.*
- <blank line>
# everything else
- import all other imports
- <blank line>
- import static all other imports
11 changes: 7 additions & 4 deletions src/main/java/me/totalfreedom/totalfreedommod/Announcer.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package me.totalfreedom.totalfreedommod;

import com.google.common.collect.Lists;
import java.util.Collections;
import java.util.List;
import lombok.Getter;

import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;

import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.util.FTask;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;

import com.google.common.collect.Lists;
import lombok.Getter;

public class Announcer extends FreedomService
{
Expand Down
11 changes: 7 additions & 4 deletions src/main/java/me/totalfreedom/totalfreedommod/AntiDrop.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import java.util.Iterator;
import java.util.List;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.kyori.adventure.text.format.NamedTextColor;

import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
Expand All @@ -14,6 +11,12 @@
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.inventory.ItemStack;

import net.kyori.adventure.text.format.NamedTextColor;

import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.util.FUtil;

public class AntiDrop extends FreedomService
{

Expand Down
10 changes: 6 additions & 4 deletions src/main/java/me/totalfreedom/totalfreedommod/AntiNuke.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
package me.totalfreedom.totalfreedommod;

import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;

import net.kyori.adventure.text.format.NamedTextColor;

import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.util.FUtil;

public class AntiNuke extends FreedomService
{

Expand Down
17 changes: 10 additions & 7 deletions src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,25 @@
package me.totalfreedom.totalfreedommod;

import io.papermc.paper.event.player.AsyncChatEvent;
import java.util.Locale;
import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import io.papermc.paper.event.player.AsyncChatEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;

import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;

import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.ChatSpamData;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.util.AdventureUtil;
import me.totalfreedom.totalfreedommod.util.FSync;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;

public class AntiSpam extends FreedomService
{
Expand Down
11 changes: 7 additions & 4 deletions src/main/java/me/totalfreedom/totalfreedommod/AutoEject.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,17 @@
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;

import net.kyori.adventure.text.format.NamedTextColor;

import me.totalfreedom.totalfreedommod.banning.Ban;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;

public class AutoEject extends FreedomService
{
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/me/totalfreedom/totalfreedommod/AutoKick.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package me.totalfreedom.totalfreedommod;

import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.util.FTask;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;

import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.util.FTask;
import me.totalfreedom.totalfreedommod.util.FUtil;

public class AutoKick extends FreedomService
{

Expand Down
Loading