Compare commits

...

10 Commits

Author SHA1 Message Date
Len 66276fbf47 Improve support for mypet 2024-04-20 15:12:13 +02:00
Len 1672fccced Automatically update version in plugin.yml 2023-12-30 22:37:03 +01:00
Len 1e7d3c7d93 Add Jenkinsfile 2023-12-30 21:34:09 +01:00
Len d179384954 Fix bossbar not working when mypet is not enabled 2023-12-30 13:52:33 +01:00
Len 687e063ad9 Add buildnumber 2023-12-25 14:35:44 +01:00
Len cf9619d0f9 Update .gitignore 2023-12-17 13:14:50 +01:00
Len a00d7cc599 Update to 1.20.4 2023-12-17 13:11:06 +01:00
Len 88ac1e40ad Do not set setSleepingIgnored, functionality is included in Galaxy 2023-08-11 20:55:03 +02:00
Len 25b9a6733e Do not kick staff while they are vanished 2023-07-31 13:29:28 +02:00
Len 4a21cb3d33 Send pet away when player goes AFK 2023-07-31 13:20:44 +02:00
10 changed files with 85 additions and 20 deletions

4
.gitignore vendored
View File

@ -36,4 +36,6 @@ target/
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.gradle
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar

20
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,20 @@
pipeline {
agent any
stages {
stage('Gradle') {
steps {
sh './gradlew build'
}
}
stage('Archive') {
steps {
archiveArtifacts artifacts: 'build/libs/', followSymlinks: false
}
}
stage('discord') {
steps {
discordSend description: "Build: ${BUILD_NUMBER}", showChangeset: true, result: currentBuild.currentResult, title: currentBuild.fullProjectName, webhookURL: env.discordwebhook
}
}
}
}

View File

@ -1,4 +1,4 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
import java.io.ByteArrayOutputStream
plugins {
id("java")
@ -6,7 +6,7 @@ plugins {
}
group = "com.alttd"
version = "2.1.5"
version = System.getenv("BUILD_NUMBER") ?: gitCommit()
description = "Altitude AFK Detector plugin."
apply<JavaLibraryPlugin>()
@ -25,23 +25,30 @@ tasks {
options.encoding = Charsets.UTF_8.name()
}
shadowJar {
dependsOn(getByName("relocateJars") as ConfigureShadowRelocation)
archiveFileName.set("${project.name}-${project.version}.jar")
minimize()
configurations = listOf(project.configurations.shadow.get())
jar {
archiveFileName.set("${rootProject.name}.jar")
}
build {
dependsOn(shadowJar)
}
create<ConfigureShadowRelocation>("relocateJars") {
target = shadowJar.get()
prefix = "${project.name}.lib"
processResources {
filteringCharset = Charsets.UTF_8.name()
duplicatesStrategy = DuplicatesStrategy.INCLUDE
filesMatching("plugin.yml") {
expand(Pair("projectVersion", project.version))
}
}
}
dependencies {
implementation("com.alttd:Galaxy-API:1.20.1-R0.1-SNAPSHOT")
implementation("com.alttd:Galaxy-API:1.20.4-R0.1-SNAPSHOT")
compileOnly("de.keyle:mypet:3.11-SNAPSHOT")
}
fun gitCommit(): String {
val os = ByteArrayOutputStream()
project.exec {
isIgnoreExitValue = true
commandLine = "git rev-parse --short HEAD".split(" ")
standardOutput = os
}
return String(os.toByteArray()).trim()
}

BIN
gradle/wrapper/gradle-wrapper.jar vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@ -87,7 +87,7 @@ public class AFKCheckTimer extends BukkitRunnable {
private void resetAFKPlayer(Location pastLocation, Player player, AFKPlayer afkPlayer) {
afkPlayer.setPlayerToSphereCenter(pastLocation);
afkPlayer.setStandingTime(System.currentTimeMillis());
player.setSleepingIgnored(false);
// player.setSleepingIgnored(false);
afkPlayer.resetAFK();
MessageTimer currentTimer = plugin.messageTimers.get(player.getUniqueId());
@ -98,7 +98,7 @@ public class AFKCheckTimer extends BukkitRunnable {
private void setPlayerAFK(AFKPlayer afkPlayer, Player player) {
afkPlayer.setAFK(player);
player.setSleepingIgnored(true);
// player.setSleepingIgnored(true);
//player.setCanPickupItems(false);
if (Config.AFK_TOGGLE_MESSAGES) {
TagResolver placeholders = TagResolver.resolver(

View File

@ -46,6 +46,8 @@ public class AFKDetector extends JavaPlugin implements Listener {
public static MiniMessage miniMessage;
public static boolean myPetEnabled = false;
@Override
public void onEnable() {
try {
@ -58,6 +60,7 @@ public class AFKDetector extends JavaPlugin implements Listener {
getCommand("afkcheck").setExecutor(new AFKCheckCommand(this));
getCommand("reloadafkdetector").setExecutor(new ReloadCommand(this));
new AFKCheckTimer(this).init();
myPetEnabled = getServer().getPluginManager().getPlugin("MyPet") != null;
} catch (Throwable t) {
getLogger().severe("An error has occured while loading AFKDetector");
if (!(t instanceof ExceptionInInitializerError)) {

View File

@ -11,6 +11,7 @@ import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import net.kyori.adventure.title.Title;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.Date;
@ -49,7 +50,7 @@ public class MessageTimer extends BukkitRunnable {
public void run() {
Player player = Bukkit.getPlayer(uuid);
if (plugin.messageTimers.containsKey(uuid)) {
if (player == null || player.hasPermission("afkdetector.kickexempt")) {
if (player == null || player.hasPermission("afkdetector.kickexempt") || isVanished(player)) {
cancel();
return;
}
@ -88,4 +89,12 @@ public class MessageTimer extends BukkitRunnable {
}
}
}
private boolean isVanished(Player player) {
for (MetadataValue meta : player.getMetadata("vanished")) {
if (meta.asBoolean()) return true;
}
return false;
}
}

View File

@ -3,6 +3,9 @@ package com.alttd.afkdectector.afkplayer;
import com.alttd.afkdectector.AFKDetector;
import com.alttd.afkdectector.config.Config;
import com.alttd.afkdectector.config.Messages;
import de.Keyle.MyPet.MyPetApi;
import de.Keyle.MyPet.api.entity.MyPet;
import de.Keyle.MyPet.api.player.MyPetPlayer;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
@ -94,6 +97,9 @@ public class AFKPlayer {
}
public void setAFK(Player player) {
if (AFKDetector.myPetEnabled)
sendPetAway();
bossBar.setTitle(afkKickSoon);
bossBar.setColor(BarColor.RED);
player.setAfk(true);
@ -127,4 +133,15 @@ public class AFKPlayer {
double toggleSeconds = TimeUnit.MINUTES.toSeconds(totalAllowedMinutes);
bossBar.setProgress(Math.min(afkSeconds / toggleSeconds, 1));
}
void sendPetAway() {
if (!AFKDetector.myPetEnabled) return;
MyPetPlayer myPetPlayer = MyPetApi.getPlayerManager().getMyPetPlayer(player);
if (myPetPlayer == null || !myPetPlayer.hasMyPet() || !myPetPlayer.getMyPet().getStatus().equals(MyPet.PetState.Here))
return;
MyPet myPet = myPetPlayer.getMyPet();
myPet.removePet();
}
}

View File

@ -1,8 +1,10 @@
main: com.alttd.afkdectector.AFKDetector
name: AFKDetector
version: 2.0
version: ${projectVersion}
api-version: 1.18
author: Destro174
softdepend:
- MyPet
description: Checks if a player is afk.