mirror of
https://github.com/Xiao-MoMi/Custom-Fishing.git
synced 2025-12-30 20:39:18 +00:00
2.0.11.2
This commit is contained in:
@@ -17,9 +17,11 @@
|
||||
|
||||
package net.momirealms.customfishing.mechanic.fishing;
|
||||
|
||||
import com.comphenix.protocol.events.PacketContainer;
|
||||
import com.destroystokyo.paper.event.player.PlayerJumpEvent;
|
||||
import de.tr7zw.changeme.nbtapi.NBTCompound;
|
||||
import de.tr7zw.changeme.nbtapi.NBTItem;
|
||||
import io.lumine.mythic.lib.api.event.AttackEvent;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import net.kyori.adventure.sound.Sound;
|
||||
import net.momirealms.customfishing.CustomFishingPluginImpl;
|
||||
@@ -157,10 +159,11 @@ public class FishingManagerImpl implements Listener, FishingManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Known bug: When you fish, both left click air and right click air
|
||||
* Known bug: This is a Minecraft packet limitation
|
||||
* When you fish, both left click air and right click air
|
||||
* are triggered. And you can't cancel the left click event.
|
||||
*/
|
||||
@EventHandler
|
||||
@EventHandler (ignoreCancelled = false)
|
||||
public void onLeftClick(PlayerInteractEvent event) {
|
||||
if (event.getAction() != Action.LEFT_CLICK_AIR)
|
||||
return;
|
||||
@@ -175,9 +178,8 @@ public class FishingManagerImpl implements Listener, FishingManager {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@EventHandler (ignoreCancelled = true)
|
||||
public void onSwapHand(PlayerSwapHandItemsEvent event) {
|
||||
if (event.isCancelled()) return;
|
||||
GamingPlayer gamingPlayer = gamingPlayerMap.get(event.getPlayer().getUniqueId());
|
||||
if (gamingPlayer != null) {
|
||||
if (gamingPlayer.onSwapHand())
|
||||
|
||||
@@ -504,11 +504,13 @@ public class GameManagerImpl implements GameManager {
|
||||
|
||||
var title = section.getString("title","<red>{click}");
|
||||
var subtitle = section.getString("subtitle", "<gray>Click <white>{clicks} <gray>times to win. Time left <white>{time}s");
|
||||
var left = section.getBoolean("left-click", true);
|
||||
|
||||
return (player, fishHook, settings) -> new AbstractGamingPlayer(player, fishHook, settings) {
|
||||
|
||||
private int clickedTimes;
|
||||
private final int requiredTimes = settings.getDifficulty();
|
||||
private boolean preventFirst = true;
|
||||
|
||||
@Override
|
||||
public void arrangeTask() {
|
||||
@@ -522,6 +524,11 @@ public class GameManagerImpl implements GameManager {
|
||||
|
||||
@Override
|
||||
public boolean onRightClick() {
|
||||
if (left) {
|
||||
setGameResult(false);
|
||||
endGame();
|
||||
return true;
|
||||
}
|
||||
clickedTimes++;
|
||||
if (clickedTimes >= requiredTimes) {
|
||||
setGameResult(true);
|
||||
@@ -530,6 +537,23 @@ public class GameManagerImpl implements GameManager {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onLeftClick() {
|
||||
if (!left) {
|
||||
return false;
|
||||
}
|
||||
if (preventFirst) {
|
||||
preventFirst = false;
|
||||
return false;
|
||||
}
|
||||
clickedTimes++;
|
||||
if (clickedTimes >= requiredTimes) {
|
||||
setGameResult(true);
|
||||
endGame();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void showUI() {
|
||||
AdventureManagerImpl.getInstance().sendTitle(
|
||||
player,
|
||||
@@ -722,6 +746,8 @@ public class GameManagerImpl implements GameManager {
|
||||
var barImage = section.getString("subtitle.bar");
|
||||
var tip = section.getString("tip");
|
||||
|
||||
var left = section.getBoolean("left-click", true);
|
||||
|
||||
return (player, fishHook, settings) -> new AbstractGamingPlayer(player, fishHook, settings) {
|
||||
private double hold_time;
|
||||
private double judgement_position;
|
||||
@@ -731,6 +757,7 @@ public class GameManagerImpl implements GameManager {
|
||||
private int timer;
|
||||
private final int time_requirement = timeRequirements[ThreadLocalRandom.current().nextInt(timeRequirements.length)] * 1000;
|
||||
private boolean played;
|
||||
private boolean preventFirst = true;
|
||||
|
||||
@Override
|
||||
public void arrangeTask() {
|
||||
@@ -814,11 +841,29 @@ public class GameManagerImpl implements GameManager {
|
||||
|
||||
@Override
|
||||
public boolean onRightClick() {
|
||||
if (left) {
|
||||
setGameResult(false);
|
||||
endGame();
|
||||
return true;
|
||||
}
|
||||
played = true;
|
||||
fish_velocity = pullingStrength;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onLeftClick() {
|
||||
if (preventFirst) {
|
||||
preventFirst = false;
|
||||
return false;
|
||||
}
|
||||
if (left) {
|
||||
played = true;
|
||||
fish_velocity = pullingStrength;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void showUI() {
|
||||
String bar = FontUtils.surroundWithFont(barImage, font)
|
||||
+ OffsetUtils.getOffsetChars((int) (judgementAreaOffset + judgement_position))
|
||||
|
||||
Reference in New Issue
Block a user