Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
36c58cf
Adding a NetworkAPI module for external plugins to access the Network…
LM-Wolfert Jul 15, 2025
277302c
Expanding api and started splitting off regions.
LM-Wolfert Aug 10, 2025
ff7d818
Started splitting movement listener in network and region, reworked c…
LM-Wolfert Aug 16, 2025
0eb59ea
Split the movement and teleport listener, region code is completely s…
LM-Wolfert Aug 24, 2025
83fb302
More progress fixing stuff for new structure.
LM-Wolfert Aug 24, 2025
7411a7b
Timer API and region user adding/removing.
LM-Wolfert Aug 25, 2025
3748be8
Rework command manager, migrating commands.
LM-Wolfert Aug 25, 2025
b58d070
Converting more commands.
LM-Wolfert Aug 26, 2025
b6bf5ba
distance includes y, so use custom distance
LM-Wolfert Aug 26, 2025
31a88a6
Completed command migration.
LM-Wolfert Aug 27, 2025
a21f0a1
Migrate event manager.
LM-Wolfert Aug 27, 2025
c401f3f
Started gui migration, added BTEUKLIB as gui manager.
LM-Wolfert Aug 27, 2025
03a4ef7
Migrated all plot system gui's.
LM-Wolfert Aug 28, 2025
a250872
Migrated all region and staff gui's.
LM-Wolfert Aug 28, 2025
fdd81ed
Finished migrating the gui's.
LM-Wolfert Aug 29, 2025
154b287
Fix remaining compiler errors, commented out code that is unused/broken.
LM-Wolfert Aug 30, 2025
3643672
Update version, regions only use plotAPI if plot system is enabled.
LM-Wolfert Aug 30, 2025
536e1b6
Fixing issues.
LM-Wolfert Aug 30, 2025
84133c3
Making sure region related functions are only used if enabled in config.
LM-Wolfert Sep 7, 2025
d2e9fa1
Bug fixes:
LM-Wolfert Sep 27, 2025
acb9218
Bug fixes: order of initialisation, took SocketHandler out of CustomC…
LM-Wolfert Oct 20, 2025
650ce86
Update t-- to 1.21.4 release version, no longer requiring custom bteu…
LM-Wolfert Oct 20, 2025
6660906
Add registerEvent to the EventAPI to allow other plugins to use the e…
LM-Wolfert Oct 20, 2025
e23f8e6
PlotAPI expansion and publish javadocs.
LM-Wolfert Oct 21, 2025
e48dac8
Move some plotsystem stuff to API to make is accessible.
LM-Wolfert Oct 21, 2025
be2de40
Network impl of getEventAPI
LM-Wolfert Oct 21, 2025
0ad912b
Expand API for plotsystem.
LM-Wolfert Oct 24, 2025
fae3957
Fix compiler error.
LM-Wolfert Oct 24, 2025
a5af8bd
More plot system api methods.
LM-Wolfert Oct 25, 2025
cd774e4
More plot system api methods.
LM-Wolfert Oct 27, 2025
653ed8c
Impl
LM-Wolfert Oct 27, 2025
faa7ec0
Removed type column from events.
LM-Wolfert Oct 27, 2025
f9d9426
More api methods.
LM-Wolfert Nov 1, 2025
4cb0a3c
Expand plotAPI added implementation for all plot api methods.
LM-Wolfert Nov 1, 2025
66ae8e9
More API
LM-Wolfert Nov 2, 2025
9cc10b0
Some more API and fixed plotsystem events.
LM-Wolfert Nov 2, 2025
0031bb7
Some more plot api methods.
LM-Wolfert Nov 12, 2025
a195adc
Only use PlotAPI in api, not PlotSQL.
LM-Wolfert Nov 15, 2025
209469c
Fix compiler errors.
LM-Wolfert Nov 15, 2025
96f5dce
RoleAPI for the plotsystem.
LM-Wolfert Nov 15, 2025
0e7609f
Send discord message in ChatAPI
LM-Wolfert Nov 15, 2025
b2bca83
Naming convention API
LM-Wolfert Nov 15, 2025
99dfad6
More PlotAPI methods for verification.
LM-Wolfert Nov 15, 2025
0c82879
PlotAPI methods for inactivity.
LM-Wolfert Nov 15, 2025
dc37a50
Small fixes and gui improvements.
LM-Wolfert Nov 30, 2025
7542ab2
Region menu button should still show in the plotsystem.
LM-Wolfert Nov 30, 2025
82ce283
Fix sql query bug.
LM-Wolfert Dec 9, 2025
d38e47f
Fixed some events still using the old format.
LM-Wolfert Dec 9, 2025
68692b8
Fixed tips and lobby portal timer interval.
LM-Wolfert Dec 10, 2025
b5a2c63
Fixed issue with review button in staff menu not working and issue wi…
LM-Wolfert Dec 11, 2025
0fce990
When teleporting to a player check if they are online, so if they hav…
LM-Wolfert Dec 11, 2025
1c7147a
Fix SQL query to get plot reviewer.
LM-Wolfert Dec 14, 2025
c9f7440
Fix SQL query for feedback book reviewer.
LM-Wolfert Dec 17, 2025
ec92fc8
Make timer delay in milliseconds instead of ticks.
LM-Wolfert Dec 18, 2025
8952f4c
Also update the display name on the player.
LM-Wolfert Dec 19, 2025
fca33ec
/nick to change displayname (except in direct messages)
LM-Wolfert Dec 19, 2025
af91051
Default displayname always white, added tabcompleter for reset.
LM-Wolfert Dec 19, 2025
af22010
Add /nick reset <name> for mods to reset the nickname of another player.
LM-Wolfert Dec 19, 2025
2dafaa9
Bugfixes and tabcompleter for /nick reset
LM-Wolfert Dec 21, 2025
4632f80
Add provisions to allow more configuration of who can claim regions, …
Jan 18, 2026
2634579
Bugfix with updating feedback while verifying a plot.
LM-Wolfert Jan 19, 2026
61ac8e9
Socket Handler changes to fix bugs in standalone mode.
Jan 19, 2026
bbed462
If in standalone mode, now calls to create a new user if not already …
Jan 19, 2026
c6e47f5
Now allows for opening of the tutorial gui even if no tutorial server…
Jan 19, 2026
f70a0b8
Fixes to remove 'starter tutorial redo' and 'next tutorial' options f…
Jan 19, 2026
5426724
Fix to conditional statement so that /st will always open the staff m…
Jan 19, 2026
75f7af9
Merge remote-tracking branch 'origin/feature/modular' into feature/mo…
Jan 19, 2026
e1f1692
Set command preprocess priority to low as a workaround for a T+- bug,…
LM-Wolfert Jan 24, 2026
dbbf42b
Merge remote-tracking branch 'main/feature/modular' into feature/modular
LM-Wolfert Jan 24, 2026
a65c87d
Reorder Connect, Chat and RegionManager initialisation to ensure corr…
Jan 25, 2026
ab0f599
Merge remote-tracking branch 'origin/feature/modular' into feature/mo…
Jan 25, 2026
b4bd736
Add standalone getter to NetworkAPI, so that Plotsystem or other plug…
Jan 25, 2026
1f6850a
Fix parent version
Jan 25, 2026
f0f05af
Remove the duplicate 'locationExists/hasLocation'
Jan 28, 2026
b1214f3
Fix for switch server - now serverAPI is enabled to maintain compatib…
Jan 28, 2026
be9f903
Fix to allow /where in Plot world under single-server plotsystem setup.
Jan 28, 2026
63682e1
Fix the registering of new region entered, and fix the handling of of…
Feb 12, 2026
a5e4a07
Fix return button in verified review menu not showing if you have nev…
LM-Wolfert Feb 21, 2026
646f2cd
In standalone mode proxy functionality will be handled directly by th…
LM-Wolfert Feb 23, 2026
d2dc85c
Fix head in tab and enable chat listener.
LM-Wolfert Feb 24, 2026
89b529a
Merge remote-tracking branch 'origin/develop' into feature/modular
Mar 2, 2026
7731d6c
Merge remote-tracking branch 'main/feature/modular' into feature/stan…
LM-Wolfert Mar 3, 2026
220bd26
Update dependencies and update jitpack to only build the api module.
LM-Wolfert Mar 3, 2026
9569bd7
Update jitpack to include papercore.
LM-Wolfert Mar 3, 2026
6e05eb3
Fix database query in plot api.
LM-Wolfert Mar 3, 2026
9b5a723
#38 Added Survey feature
Mar 9, 2026
c70c800
Add DB insert pathway mechanism for new surveys
Mar 15, 2026
f82895e
Update plugin version to 1.10.0
Mar 15, 2026
39fb2b1
Update config version to 1.10.0
Mar 15, 2026
1fff228
Bug fixes and added underline to selection
Mar 15, 2026
f98f350
SQL bug fixes
Mar 15, 2026
9d6aa09
Remove unneeded components
Mar 15, 2026
f803b0f
Remove all listener logic and associated components
Mar 15, 2026
b65b9dd
Remove all listener logic and associated components
Mar 15, 2026
5830ee4
Merge remote-tracking branch 'origin/38-survey-features' into 38-surv…
Mar 15, 2026
b3f231f
Implemented a custom page changing mechanism in order to maintain pag…
Mar 15, 2026
3e38fcc
Changed menu item slightly
Mar 15, 2026
131a0bf
Reformatting based on code standards
Mar 15, 2026
60a25a6
Say thank you after saving
Mar 15, 2026
cae148b
Merge branch 'develop' into 38-survey-features
Mar 15, 2026
4483ceb
Merge remote-tracking branch 'origin/develop' into 38-survey-features
Mar 15, 2026
1f7c7c7
Fix building command initialisation again
Mar 15, 2026
b6400d6
Changes after review
Mar 18, 2026
a1e3540
Move the AnswerOption enum outside of the SurveyBook class
Mar 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Core/src/main/java/net/bteuk/network/core/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@
public record Constants(String serverName, ServerType serverType, boolean standalone, boolean regionsEnabled, long regionInactivity, boolean tpllEnabled,
boolean tpllRequiresPermission, int maxY, int minY, String earthWorld, boolean staffChat, boolean tips, boolean tutorials, boolean ll, boolean progressMap,
boolean progression, boolean announceOveralLevelUps, boolean announceSeasonLevelUps, boolean sidebarEnabled, String sidebarTitle,
List<String> sidebarContent, boolean motdEnabled, String motdContent, String minrankGeneration, String minrankRegionClaim, String minrankZoneJoin, boolean plotSystemEnabled, boolean moderationEnabled, boolean warpsEnabled,
List<String> sidebarContent, boolean motdEnabled, String motdContent, String minrankGeneration, String minrankRegionClaim, String minrankZoneJoin,
boolean plotSystemEnabled, boolean moderationEnabled, boolean warpsEnabled,
boolean homesEnabled, boolean announcePromotions, String discordLink, boolean skullsEnabled, String progressMapLink, String chatSocketOutputIP,
int chatSocketOutputPort, int chatSocketInputPort, int tipsFrequency, boolean regionStaffRequestAlways, int regionStaffRequestRadius, int progressMapID,
String mapHubAPIKey, int navigationRadius, boolean compulsoryTutorial, int afkTime, boolean mapEnabled, String mapServer, NetworkLocation mapLocation,
NetworkLocation spawnLocation) {
NetworkLocation spawnLocation, boolean UKSurvey) {
}
6 changes: 5 additions & 1 deletion Plugin/src/main/java/net/bteuk/network/Network.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import net.bteuk.network.commands.Reply;
import net.bteuk.network.commands.Rules;
import net.bteuk.network.commands.Speed;
import net.bteuk.network.commands.Survey;
import net.bteuk.network.commands.TipsToggle;
import net.bteuk.network.commands.Where;
import net.bteuk.network.commands.Zone;
Expand Down Expand Up @@ -418,13 +419,16 @@ public void enablePlugin() {
commandManager.registerCommand(new Homes(this));
}

if (constants.UKSurvey()) {
commandManager.registerCommand(new Survey(this, globalSQL));
}

/*
* Utility commands.
*/
commandManager.registerCommand(new Buildings(this, plotSQL, constants));
commandManager.registerCommand(new Discord(this, roleAPI, constants, messageSender));
commandManager.registerCommand(new Focus(this, messageSender));
commandManager.registerCommand(new Buildings(this, plotSQL, constants));

commandManager.registerCommand(nightvision);
commandManager.registerCommand(new Speed());
Expand Down
115 changes: 115 additions & 0 deletions Plugin/src/main/java/net/bteuk/network/commands/Survey.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
package net.bteuk.network.commands;

import io.papermc.paper.command.brigadier.CommandSourceStack;
import lombok.extern.java.Log;
import net.bteuk.network.CustomChat;
import net.bteuk.network.Network;
import net.bteuk.network.core.Time;
import net.bteuk.network.lib.dto.UserUpdate;
import net.bteuk.network.lib.utils.ChatUtils;
import net.bteuk.network.socket.MessageSender;
import net.bteuk.network.sql.GlobalSQL;
import net.bteuk.network.survey.SurveyAnswerOption;
import net.bteuk.network.survey.SurveyBook;
import net.bteuk.network.utils.NetworkUser;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jspecify.annotations.NonNull;

import java.util.logging.Level;

@Log
public class Survey extends AbstractCommand {

private final Network instance;
private final GlobalSQL globalSQL;

public Survey(Network instance, GlobalSQL globalSQL) {
this.instance = instance;
this.globalSQL = globalSQL;
}

@Override
public void execute(@NotNull CommandSourceStack stack, String @NonNull [] args) {

// Check if the sender is a player.
Player player = getPlayer(stack);
if (player == null) {
return;
}

NetworkUser user = instance.getUser(player);

// If u is null, cancel.
if (user == null) {
log.severe("User " + player.getName() + " can not be found!");
player.sendMessage(ChatUtils.error("User can not be found, please relog!"));
return;
}

if (args.length == 0) {
SurveyBook.openSurvey(user, globalSQL);
} else if (args.length == 1 && args[0].equalsIgnoreCase("save")) {
SurveyBook surveyBook = SurveyBook.getOpenSurvey(user);
if (surveyBook != null) {
surveyBook.saveSurvey();
}
} else if (args.length == 2) {
SurveyBook surveyBook = SurveyBook.getOpenSurvey(user);
if (surveyBook == null)
return;

SurveyAnswerOption answerOption;

try {
answerOption = SurveyAnswerOption.valueOf(args[0].toUpperCase());
}
catch (IllegalArgumentException e) {
log.log(Level.WARNING, "Invalid answer option at command survey: " + args[0], e);
return;
}

boolean bYes = args[1].equals("Y");
switch (answerOption) {
case Q1_BTUK -> surveyBook.getSurvey().setBFoundViaBTUK(bYes);
case Q1_BTE -> surveyBook.getSurvey().setBFoundViaBTE(bYes);
case Q1_BTUK_EXTERNAL -> surveyBook.getSurvey().setBFoundViaBTUKExternal(bYes);
case Q1_BTE_EXTERNAL -> surveyBook.getSurvey().setBFoundViaBTEExternal(bYes);
case Q1_FRIEND -> surveyBook.getSurvey().setBFoundViaFriend(bYes);
case Q2_TIKTOK -> surveyBook.getSurvey().setBMediumTiktok(bYes);
case Q2_YT_SHORT -> surveyBook.getSurvey().setBMediumYoutubeShorts(bYes);
case Q2_YT_LONG -> surveyBook.getSurvey().setBMediumYoutubeLongform(bYes);
case Q2_INSTAGRAM -> surveyBook.getSurvey().setBMediumInstagram(bYes);
case Q2_SEARCH -> surveyBook.getSurvey().setBSearchEngineBrowsing(bYes);
case Q2_ONLINE_NEWS -> surveyBook.getSurvey().setBOnlineNews(bYes);
case Q2_TV_NEWS -> surveyBook.getSurvey().setBTVNews(bYes);
case Q2_NEWSPAPER -> surveyBook.getSurvey().setBPhysicalNewspaper(bYes);
case Q3_TIKTOK -> surveyBook.getSurvey().setBSocialsTiktok(bYes);
case Q3_YOUTUBE_SHORTS -> surveyBook.getSurvey().setBSocialsYoutubeShorts(bYes);
case Q3_YOUTUBE_LONG -> surveyBook.getSurvey().setBSocialsYoutubeLongform(bYes);
case Q3_INSTAGRAM -> surveyBook.getSurvey().setBSocialsInstagram(bYes);
case CHANGE_PAGE -> {
try {
int toPage = Integer.parseInt(args[1]);
surveyBook.changePage(toPage);
}
catch (NumberFormatException e) {
log.log(Level.WARNING, "Invalid page number: " + args[1], e);
}
}
}
surveyBook.updateSurveyBooks();
surveyBook.openCurrentPage();
}
}

@Override
public String getLabel() {
return "survey";
}

@Override
public String getDescription() {
return "Complete the UK Survey";
}
}
8 changes: 8 additions & 0 deletions Plugin/src/main/java/net/bteuk/network/gui/NavigatorGui.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.bteuk.network.gui;

import net.bteuk.network.Network;
import net.bteuk.network.api.EventAPI;
import net.bteuk.network.api.ServerAPI;
import net.bteuk.network.api.entity.NetworkLocation;
Expand All @@ -14,6 +15,7 @@
import net.bteuk.network.papercore.LocationAdapter;
import net.bteuk.network.papercore.PlayerAdapter;
import net.bteuk.network.sql.GlobalSQL;
import net.bteuk.network.survey.SurveyBook;
import net.bteuk.network.utils.LightsOut;
import net.bteuk.network.utils.NetworkUser;
import net.bteuk.network.utils.Utils;
Expand Down Expand Up @@ -104,6 +106,12 @@ public NavigatorGui(GuiProvider provider) {
Utils.line("You can also use the command ").append(Component.text("/nightvision", NamedTextColor.GRAY)).append(Utils.line(" or "))
.append(Component.text("/nv", NamedTextColor.GRAY))), nightvision::toggleNightvision);

// Survey
if (constants.UKSurvey())
setItem(18, Utils.createItem(Material.PAPER, 1, Utils.title("UK Survey"), Utils.line("Assist us with our PR strategy.")), (NetworkUser u) -> {
SurveyBook.openSurvey(u, globalSQL);
});

setItem(19, Utils.createItem(Material.REDSTONE_LAMP, 1, Utils.title("Lights Out"), Utils.line("Play a game of Lights Out.")), (NetworkUser u) -> {
if (u.lightsOut == null) {

Expand Down
83 changes: 83 additions & 0 deletions Plugin/src/main/java/net/bteuk/network/sql/GlobalSQL.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import net.bteuk.network.core.Time;
import net.bteuk.network.core.sql.AbstractSQL;
import net.bteuk.network.lib.dto.DirectMessage;
import net.bteuk.network.survey.Survey;
import net.bteuk.network.utils.Coordinate;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import org.bukkit.Bukkit;
Expand All @@ -19,8 +20,12 @@
import java.sql.SQLException;
import java.sql.Statement;
import java.time.LocalDateTime;
import java.sql.Timestamp;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.logging.Level;

@Log
public class GlobalSQL extends AbstractSQL {
Expand Down Expand Up @@ -320,4 +325,82 @@ public boolean createUser(String uuid, String name, String playerSkin) {
} else
return true;
}

public Survey getSurveyOfUser(UUID uuid) {
Survey survey;
try (
Connection conn = conn();
PreparedStatement statement = conn.prepareStatement(
"SELECT survey_completed_at, survey_last_edited, found_via_btuk, found_via_bte, found_via_btuk_external, found_via_bte_external,found_via_friend," +
"medium_tiktok, medium_youtube_shorts, medium_youtube_longform, medium_instagram," +
"medium_search_engine_browsing, medium_online_news, medium_tvnews, medium_physical_newspaper," +
"socials_tiktok, socials_youtube_shorts, socials_youtube_longform, socials_instagram FROM survey WHERE player=?;"
)
) {
statement.setString(1, uuid.toString());
ResultSet results = statement.executeQuery();

if (results.next()) {
survey = new Survey(true, results.getTimestamp(1), results.getTimestamp(2),
results.getBoolean(3), results.getBoolean(4), results.getBoolean(5), results.getBoolean(6), results.getBoolean(7),
results.getBoolean(8), results.getBoolean(9), results.getBoolean(10), results.getBoolean(11),
results.getBoolean(12), results.getBoolean(13), results.getBoolean(14), results.getBoolean(15),
results.getBoolean(16), results.getBoolean(17), results.getBoolean(18), results.getBoolean(19));
return survey;
} else
return null;

} catch (SQLException e) {
log.log(Level.SEVERE, e.getMessage(), e);
return null;
}
}

public void saveSurveyOfUser(UUID user, Survey survey) {
try (
Connection conn = conn();
PreparedStatement statement = (survey.isExisting()) ?
conn.prepareStatement("UPDATE survey SET survey_last_edited=?, found_via_btuk=?, found_via_bte=?, " +
"found_via_btuk_external=?, found_via_bte_external=?, found_via_friend=?," +
"medium_tiktok=?, medium_youtube_shorts=?, medium_youtube_longform=?, medium_instagram=?," +
"medium_search_engine_browsing=?, medium_online_news=?, medium_tvnews=?, medium_physical_newspaper=?," +
"socials_tiktok=?, socials_youtube_shorts=?, socials_youtube_longform=?, socials_instagram=? WHERE player=?;")
:
conn.prepareStatement("INSERT INTO survey (survey_completed_at, survey_last_edited, found_via_btuk, found_via_bte, " +
"found_via_btuk_external, found_via_bte_external, found_via_friend, " +
"medium_tiktok, medium_youtube_shorts, medium_youtube_longform, medium_instagram, " +
"medium_search_engine_browsing, medium_online_news, medium_tvnews, medium_physical_newspaper, " +
"socials_tiktok, socials_youtube_shorts, socials_youtube_longform, socials_instagram, player)" +
"VALUES (NOW(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);")
) {
statement.setTimestamp(1, Timestamp.from(Instant.now()));
statement.setBoolean(2, survey.isBFoundViaBTUK());
statement.setBoolean(3, survey.isBFoundViaBTE());
statement.setBoolean(4, survey.isBFoundViaBTUKExternal());
statement.setBoolean(5, survey.isBFoundViaBTEExternal());
statement.setBoolean(6, survey.isBFoundViaFriend());

statement.setBoolean(7, survey.isBMediumTiktok());
statement.setBoolean(8, survey.isBMediumYoutubeShorts());
statement.setBoolean(9, survey.isBMediumYoutubeLongform());
statement.setBoolean(10, survey.isBMediumInstagram());
statement.setBoolean(11, survey.isBSearchEngineBrowsing());
statement.setBoolean(12, survey.isBOnlineNews());
statement.setBoolean(13, survey.isBTVNews());
statement.setBoolean(14, survey.isBPhysicalNewspaper());

statement.setBoolean(15, survey.isBSocialsTiktok());
statement.setBoolean(16, survey.isBSocialsYoutubeShorts());
statement.setBoolean(17, survey.isBSocialsYoutubeLongform());
statement.setBoolean(18, survey.isBSocialsInstagram());

statement.setString(19, user.toString());

if (statement.executeUpdate() == 1)
survey.setExisting(true);

} catch (SQLException sql) {
log.log(Level.SEVERE, sql.getMessage(), sql);
}
}
}
41 changes: 41 additions & 0 deletions Plugin/src/main/java/net/bteuk/network/survey/Survey.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package net.bteuk.network.survey;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.sql.Timestamp;

/**
* Stores survey answers
*/
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class Survey {
private boolean isExisting;

Timestamp SurveyCompleted;
Timestamp SurveyLastEdited;
boolean bFoundViaBTUK;
boolean bFoundViaBTE;
boolean bFoundViaBTUKExternal;
boolean bFoundViaBTEExternal;
boolean bFoundViaFriend;

boolean bMediumTiktok;
boolean bMediumYoutubeShorts;
boolean bMediumYoutubeLongform;
boolean bMediumInstagram;
boolean bSearchEngineBrowsing;
boolean bOnlineNews;
boolean bTVNews;
boolean bPhysicalNewspaper;

boolean bSocialsTiktok;
boolean bSocialsYoutubeShorts;
boolean bSocialsYoutubeLongform;
boolean bSocialsInstagram;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package net.bteuk.network.survey;

public enum SurveyAnswerOption {
Q1_BTUK,
Q1_BTE,
Q1_BTUK_EXTERNAL,
Q1_BTE_EXTERNAL,
Q1_FRIEND,
Q2_TIKTOK,
Q2_YT_SHORT,
Q2_YT_LONG,
Q2_INSTAGRAM,
Q2_SEARCH,
Q2_ONLINE_NEWS,
Q2_TV_NEWS,
Q2_NEWSPAPER,
Q3_TIKTOK,
Q3_YOUTUBE_SHORTS,
Q3_YOUTUBE_LONG,
Q3_INSTAGRAM,
CHANGE_PAGE
}
Loading