Compare commits
10 Commits
a862cbe21f
...
66276fbf47
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
66276fbf47 | ||
|
|
1672fccced | ||
|
|
1e7d3c7d93 | ||
|
|
d179384954 | ||
|
|
687e063ad9 | ||
|
|
cf9619d0f9 | ||
|
|
a00d7cc599 | ||
|
|
88ac1e40ad | ||
|
|
25b9a6733e | ||
|
|
4a21cb3d33 |
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -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
20
Jenkinsfile
vendored
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
5
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
5
gradle/wrapper/gradle-wrapper.properties
vendored
Normal 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
|
||||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user