Skip to content

Instantly share code, notes, and snippets.

@EventHandler
public void onEntityExplode(EntityExplodeEvent e){
Entity entity = e.getEntity();
if(entity instanceof TNTPrimed){
List<Block> lb = e.blockList();
Location loc = entity.getLocation();
TNTExprotion(loc, lb);
return;
}
}
@keepoff07
keepoff07 / gist:7cd05a6e38eacd9388d8
Last active August 29, 2015 14:07
Schedulerのサンプル
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
final Player p = e.getPlayer();
ItemStack item = p.getItemInHand();
if(e.getAction().equals(Action.RIGHT_CLICK_AIR)||e.getAction().equals(Action.RIGHT_CLICK_BLOCK)){
if(item.getType().equals(Material.SUGAR)){
Bukkit.getScheduler().runTaskLater(this, new Runnable(){
public void run(){
Bukkit.broadcastMessage("Delay:"+p.getName());
}
@keepoff07
keepoff07 / gist:8a6f0690e7d6b5889b5b
Created October 4, 2014 06:34
TNTPrimedEventSample
@EventHandler
public void onTNTPrimed(TNTPrimedEvent event){
//着火済みTNTが火打石による着火なら
if(event.getReason().equals(TNTPrimedEvent.SpawnReson.IGNITE)){
Player player = event.getPlayer();
player.sendMessage("You ignition TNT !");
}
}
@EventHandler
public void onPlayerDeath(PlayerDeathEvent e){
//死亡したプレイヤーの取得
Player player = e.getEntity();
//最後のダメージイベントがnullでなければ
if(player.getLastDamageCause() != null){
//最後のダメージイベントを取得
EntityDamageEvent damageE = player.getLastDamageCause();
@keepoff07
keepoff07 / DefWorld.java
Last active August 29, 2015 14:07
[Bukkit] DefWorld: get DefaultWorld
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.plugin.java.JavaPlugin;
@keepoff07
keepoff07 / ExpManager.java
Created October 11, 2014 16:05
[Bukkit] TimerSample
package com.github.keepoff07.hiyaserver.blockparty.timer;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
public class ExpManager {
private JavaPlugin main;
public static void setMain(JavaPlugin plugin){
@keepoff07
keepoff07 / 2015-04-07.md
Last active August 29, 2015 14:19
ポーション

なにこれ

[この前のやつ][1]使ってダメージ値から[PotionEffect][2]を返すものを作った。

ポーションは初期状態で細かいデータタグを何も持っていないため、
[PotionMeta][3]のgetCustomEffects()から取得するが出来ません。
だからこんな面倒なもの書いてみました。

説明

PotionEffectの三次元配列用意して色々。
第一位配列のサイズは2、ここで飲むポーション(0)か、スプラッシュ(1)か。

@keepoff07
keepoff07 / DefaultPotion.java
Created April 27, 2015 09:30
[Bukkit] DefaultPotion (for 1.8.x): ダメージ値でデフォルトのPotionEffectを返す
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
public class DefaultPotion {
private static PotionEffect[][][] effect = {
{
{
null,
null,
null,
@keepoff07
keepoff07 / ChestLockReflect.java
Last active August 29, 2015 14:20
[Bukkit] NBTデータタグの「Lock」を編集する
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import org.bukkit.Bukkit;
import org.bukkit.block.Block;
public class ChestLockReflect {
private static String version;
private static boolean v1_8 = false;
static {
@keepoff07
keepoff07 / 2015-06-18.md
Last active August 29, 2015 14:23
printf("「えーと、次のレベルまで…ネスは"+getTotalExp(ネス)+"。それはそうと何の用だい?」");

Exp now

問題提起

BukkitAPIにおいて、Playerクラスから使えるメソッドの内、経験値に関係するものがいくつかあります。

totalExp(これまで取得した経験値量の合計)関係

  • getTotalExperience() : int - Player: _totalExp_を取得する
  • setTotalExperience(int arg) : void - Player: _totalExp_をセットする

exp(現在のXPゲージの割合。0.0~1.0で表す)関係

  • getExp() : float - Player: _exp_を取得する