Skip to content
This repository was archived by the owner on Oct 7, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
20 changes: 7 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,9 @@
* PersistentData API 접근성 개선

* #### Supported minecraft versions
* 1.18
* 1.18.1
* 1.18.2
* 1.19
* 1.19.1
* 1.19.2
* 1.19.3
* 1.19.4
* 1.20
* 1.20.1
* 1.21.4



---

Expand All @@ -48,7 +41,7 @@ repositories {

```kotlin
dependencies {
implementation("io.github.monun:tap-api:<version>")
implementation("io.github.highright1234:tap-api:<version>")
}
```

Expand All @@ -59,19 +52,20 @@ name: ...
version: ...
main: ...
libraries:
- io.github.monun:tap-core:<version>
- io.github.highright1234:tap-core:<version>
```

#### !!주의!!

* `Gradle`과 `plugin.yml`의 의존성 패키지가 다르므로 주의해주세요.
* 모든 코드는 ShadowJar를 고려하여 작성되지 않았습니다.
* 기존의 Tap의 경우에는 ShadowJar를 지원하지 않았지만, 현재는 ShadowJar를 지원합니다

---

### NOTE

* 라이센스는 GPL-3.0이며 변경 혹은 삭제를 금합니다.
* 1.20.1 이후의 버전의 지원을 원하시면 issue를 넣어주시거나, 디스코드 `highright_`로 연락해주세요!

---

Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ subprojects {
apply(plugin = "org.jetbrains.kotlin.plugin.serialization")

repositories {
maven("https://papermc.io/repo/repository/maven-public/")
maven("https://repo.papermc.io/repository/maven-public/")
}

dependencies {
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package io.github.monun.tap.fake

import org.bukkit.entity.Entity
import org.bukkit.entity.Player
import org.bukkit.event.HandlerList
import org.bukkit.event.player.PlayerEvent
import org.bukkit.inventory.EquipmentSlot

class PlayerInteractFakeEntityEvent(
player: Player,
val fakeEntity: FakeEntity<out Entity>,
val isAttack: Boolean,
val hand: EquipmentSlot,
): PlayerEvent(player) {

val server: FakeEntityServer get() = fakeEntity.server

companion object {
private val handlerList = HandlerList()
@JvmStatic
fun getHandlerList() = handlerList
}
override fun getHandlers() = handlerList
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package io.github.monun.tap.util

import io.github.monun.tap.loader.LibraryLoader
import org.bukkit.entity.Entity
import org.bukkit.entity.Player

interface DamageCalculator {
companion object: DamageCalculator by LibraryLoader.loadNMS(DamageCalculator::class.java)

/*
* 공격할수 없을시 -1을 리턴함
*/
fun getDamage(player: Player, target: Entity): Float
}


fun Player.getDamage(target: Entity) = DamageCalculator.getDamage(this, target)
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,21 @@

package io.github.monun.tap.fake.internal

import com.destroystokyo.paper.event.player.PlayerUseUnknownEntityEvent
import com.destroystokyo.paper.profile.ProfileProperty
import com.google.common.collect.ImmutableList
import io.github.monun.tap.fake.*
import net.kyori.adventure.text.Component
import org.bukkit.Bukkit
import org.bukkit.Location
import org.bukkit.block.data.BlockData
import org.bukkit.entity.Entity
import org.bukkit.entity.FallingBlock
import org.bukkit.entity.Item
import org.bukkit.entity.Player
import org.bukkit.entity.*
import org.bukkit.event.EventHandler
import org.bukkit.event.EventPriority
import org.bukkit.event.HandlerList
import org.bukkit.event.Listener
import org.bukkit.event.entity.PlayerDeathEvent
import org.bukkit.event.player.PlayerKickEvent
import org.bukkit.event.player.PlayerQuitEvent
import org.bukkit.inventory.ItemStack
import org.bukkit.plugin.java.JavaPlugin
Expand Down Expand Up @@ -227,6 +228,34 @@ class FakeEntityServerImpl(plugin: JavaPlugin) : FakeEntityServer {
fun onPlayerQuit(event: PlayerQuitEvent) {
trackersByPlayer.remove(event.player)?.clear()
}

@EventHandler(priority = EventPriority.HIGH)
fun onInteract(event: PlayerUseUnknownEntityEvent) {
if (event.player !in trackersByPlayer) return
val fakeEntity = entities.find { it.bukkitEntity.entityId == event.entityId } ?: return
val entity = fakeEntity.bukkitEntity
if (
entity !is Item &&
entity !is ExperienceOrb &&
entity !is AbstractArrow
// (entity !== event.player || event.player.gameMode == GameMode.SPECTATOR)
// 위에 기능은 카메라 시점기능인데 구현하기 뭐한감이 있어 삭제
) {
if (event.isAttack) event.player.resetCooldown()
PlayerInteractFakeEntityEvent(
event.player,
fakeEntity,
event.isAttack,
event.hand
).callEvent()
} else {
event.player.kick(
Component.translatable("multiplayer.disconnect.invalid_entity_attacked"),
PlayerKickEvent.Cause.INVALID_ENTITY_ATTACKED
)
Bukkit.getLogger().warning("Player ${event.player.name} tried to attack an invalid entity")
}
}
}
}

2 changes: 1 addition & 1 deletion tap-dongle/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import io.papermc.paperweight.tasks.RemapJar

plugins {
id("io.papermc.paperweight.userdev") version "1.5.5" apply false
id("io.papermc.paperweight.userdev") version "2.0.0-beta.14" apply false
}

subprojects {
Expand Down

This file was deleted.

Loading