类org.bukkit.GameMode源码实例Demo

下面列出了怎么用org.bukkit.GameMode的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void shouldNotBypassBecauseBypassDisabled() {
    // given
    Player player = mock(Player.class);
    given(player.getName()).willReturn("Bob");
    given(player.getGameMode()).willReturn(GameMode.SURVIVAL);
    Group from = mockGroup("test_group", GameMode.SURVIVAL, true);
    Group to = mockGroup("other_group", GameMode.SURVIVAL, true);
    given(settings.getProperty(PwiProperties.SEPARATE_GAMEMODE_INVENTORIES)).willReturn(true);
    given(settings.getProperty(PwiProperties.DISABLE_BYPASS)).willReturn(true);

    // when
    process.processWorldChange(player, from, to);

    // then
    verify(bukkitService).callEvent(any(InventoryLoadEvent.class));
}
 
@Test
public void shouldNotBypassNoPermission() {
    // given
    Player player = mock(Player.class);

    Group group = mockGroup("world");

    GameMode newGameMode = GameMode.CREATIVE;
    given(permissionManager.hasPermission(player, PlayerPermission.BYPASS_GAMEMODE)).willReturn(false);
    given(settings.getProperty(PwiProperties.SEPARATE_GAMEMODE_INVENTORIES)).willReturn(true);
    given(settings.getProperty(PwiProperties.DISABLE_BYPASS)).willReturn(false);

    // when
    process.processGameModeChange(player, newGameMode, group);

    // then
    verify(bukkitService).callEvent(any(InventoryLoadEvent.class));
}
 
源代码3 项目: PerWorldInventory   文件: PWIPlayerManagerTest.java
private Player mockPlayer(String name, GameMode gameMode) {
    Player mock = mock(Player.class);
    PlayerInventory inv = mock(PlayerInventory.class);
    inv.setContents(new ItemStack[39]);
    inv.setArmorContents(new ItemStack[4]);

    Inventory enderChest = mock(Inventory.class);
    enderChest.setContents(new ItemStack[27]);

    given(mock.getInventory()).willReturn(inv);
    given(mock.getEnderChest()).willReturn(enderChest);
    given(mock.getName()).willReturn(name);
    given(mock.getUniqueId()).willReturn(TestHelper.TEST_UUID);
    given(mock.getGameMode()).willReturn(gameMode);
    AttributeInstance attribute = mock(AttributeInstance.class);
    given(mock.getAttribute(Attribute.GENERIC_MAX_HEALTH)).willReturn(attribute);
    given(attribute.getBaseValue()).willReturn(20.0);

    return mock;
}
 
源代码4 项目: PerWorldInventory   文件: FlatFile.java
@Override
public void saveToDatabase(Group group, GameMode gamemode, PWIPlayer player) {
    File file = getFile(gamemode, group, player.getUuid());
    ConsoleLogger.debug("Saving data for player '" + player.getName() + "' in file '" + file.getPath() + "'");

    try {
        createFileIfNotExists(file);
    } catch (IOException ex) {
        if (!(ex instanceof FileAlreadyExistsException)) {
            ConsoleLogger.severe("Error creating file '" + file.getPath() + "':", ex);
            return;
        }
    }

    ConsoleLogger.debug("Writing player data for player '" + player.getName() + "' to file");

    String data = playerSerializer.serialize(player);
    writeData(file, data);
}
 
源代码5 项目: HubBasics   文件: DoubleJump.java
@EventHandler
public void onJump(PlayerToggleFlightEvent event) {
    Player player = event.getPlayer();
    if (player.getGameMode() == GameMode.CREATIVE) return;
    if (!isEnabledInWorld(player.getWorld())) return;

    Section section = getWorldConfiguration(player.getWorld().getName());

    event.setCancelled(true);
    player.setAllowFlight(false);
    player.setFlying(false);
    Sound sound = FinderUtil.findSound(section.getString("Sound", "NOPE"));
    player.setVelocity(player.getLocation().getDirection().multiply(section.getDouble("Force", 1.0)).setY(1));
    if (sound != null) {
        player.playSound(player.getLocation(), sound, 1.0F, -5.0F);
    }
}
 
源代码6 项目: Slimefun4   文件: Splint.java
@Override
public ItemUseHandler getItemHandler() {
    return e -> {
        Player p = e.getPlayer();

        // Player is neither burning nor injured
        if (p.getFireTicks() <= 0 && p.getHealth() >= p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()) {
            return;
        }

        if (p.getGameMode() != GameMode.CREATIVE) {
            ItemUtils.consumeItem(e.getItem(), false);
        }

        p.getWorld().playSound(p.getLocation(), Sound.ENTITY_SKELETON_HURT, 1, 1);
        p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 0));

        e.cancel();
    };
}
 
源代码7 项目: NyaaUtils   文件: ExhibitionCommands.java
@SubCommand(value = "set", permission = "nu.exhibition.set")
public void commandSet(CommandSender sender, Arguments args) {
    Player p = asPlayer(sender);
    ExhibitionFrame f = ExhibitionFrame.fromPlayerEye(p);
    if (f == null) {
        msg(sender, "user.exhibition.no_item_frame");
        return;
    }
    if (!f.hasItem()) {
        msg(sender, "user.exhibition.no_item");
        return;
    }
    if (f.isSet()) {
        msg(sender, "user.exhibition.already_set");
        return;
    }
    if (p.getGameMode() == GameMode.SURVIVAL) {
        p.getWorld().dropItem(p.getEyeLocation(), f.getItemFrame().getItem());
    }
    f.set(p);
}
 
源代码8 项目: BetonQuest   文件: QuestItemHandler.java
@EventHandler(ignoreCancelled = true)
public void onItemFrameClick(final PlayerInteractEntityEvent event) {
    if (event.getPlayer().getGameMode() == GameMode.CREATIVE) {
        return;
    }
    // this prevents the journal from being placed inside of item frame
    if (event.getRightClicked() instanceof ItemFrame) {
        ItemStack item = null;
        item = (event.getHand() == EquipmentSlot.HAND) ? event.getPlayer().getInventory().getItemInMainHand()
                : event.getPlayer().getInventory().getItemInOffHand();

        final String playerID = PlayerConverter.getID(event.getPlayer());
        if (Journal.isJournal(playerID, item) || Utils.isQuestItem(item)) {
            event.setCancelled(true);
        }
    }
}
 
源代码9 项目: VoxelGamesLibv2   文件: SpectatorFeature.java
@GameEvent(filterPlayers = false, filterSpectators = true)
public void onJoin(GameJoinEvent event) {
    event.getUser().getPlayer().setGameMode(GameMode.SPECTATOR);

    // spawn
    Optional<SpawnFeature> spawnFeature = getPhase().getOptionalFeature(SpawnFeature.class);
    if (spawns.size() > 0) {
        Location location = spawns.get(ThreadLocalRandom.current().nextInt(spawns.size()))
                .toLocation(map.getLoadedName(getPhase().getGame().getUuid())).add(0.5, 0, 0.5);
        event.getUser().getPlayer().teleportAsync(location);
    } else if (spawnFeature.isPresent()) {
        event.getUser().getPlayer().teleportAsync(spawnFeature.get().getSpawn(event.getUser().getUuid()));
    } else if (event.getGame().getPlayers().size() > 0) {
        event.getUser().getPlayer().teleportAsync(event.getGame().getPlayers().get(0).getPlayer().getLocation());
    } else {
        log.warning("Could not figure out a spectator spawn point");
    }
}
 
@Test
public void shouldNotBypassBecauseBypassDisabled() {
    // given
    Player player = mock(Player.class);

    Group group = mockGroup("world");

    GameMode newGameMode = GameMode.CREATIVE;
    given(settings.getProperty(PwiProperties.SEPARATE_GAMEMODE_INVENTORIES)).willReturn(true);
    given(settings.getProperty(PwiProperties.DISABLE_BYPASS)).willReturn(true);

    // when
    process.processGameModeChange(player, newGameMode, group);

    // then
    verify(bukkitService).callEvent(any(InventoryLoadEvent.class));
}
 
@Test
public void shouldNotBypassBecauseBypassDisabled() {
    // given
    Player player = mock(Player.class);
    given(player.getName()).willReturn("Bob");
    given(player.getGameMode()).willReturn(GameMode.SURVIVAL);
    Group from = mockGroup("test_group", GameMode.SURVIVAL, true);
    Group to = mockGroup("other_group", GameMode.SURVIVAL, true);
    given(settings.getProperty(PwiProperties.SEPARATE_GAMEMODE_INVENTORIES)).willReturn(true);
    given(settings.getProperty(PwiProperties.DISABLE_BYPASS)).willReturn(true);

    // when
    process.processWorldChange(player, from, to);

    // then
    verify(bukkitService).callEvent(any(InventoryLoadEvent.class));
}
 
@Test
public void shouldChangeInventoryEvenIfGroupsNotConfigured() {
    // given
    Player player = mock(Player.class);
    given(player.getName()).willReturn("Bob");
    given(player.getGameMode()).willReturn(GameMode.SURVIVAL);
    Group from = mockGroup("test_group", GameMode.SURVIVAL, false);
    Group to = mockGroup("other_group", GameMode.SURVIVAL, false);
    given(settings.getProperty(PwiProperties.SHARE_IF_UNCONFIGURED)).willReturn(false);
    given(settings.getProperty(PwiProperties.DISABLE_BYPASS)).willReturn(false);
    given(settings.getProperty(PwiProperties.SEPARATE_GAMEMODE_INVENTORIES)).willReturn(true);
    given(permissionManager.hasPermission(player, PlayerPermission.BYPASS_WORLDS)).willReturn(false);

    // when
    process.processWorldChange(player, from, to);

    // then
    verify(permissionManager).hasPermission(player, PlayerPermission.BYPASS_WORLDS);
    verify(bukkitService).callEvent(any(InventoryLoadEvent.class));
}
 
源代码13 项目: PerWorldInventory   文件: GroupManagerTest.java
@Test
public void addGroupWithUppercaseNameLowercaseGet() {
    // given
    groupManager.clearGroups(); // Clear any existing groups
    String name = "TeSt";
    Set<String> worlds = new HashSet<>();
    worlds.add(name);
    GameMode gameMode = GameMode.SURVIVAL;

    // when
    groupManager.addGroup(name, worlds, gameMode);

    // then
    Group expected = mockGroup(name, worlds, gameMode);
    Group actual = groupManager.getGroup("test");

    assertThat(actual.getName(), equalTo(expected.getName()));
    assertThat(actual.getWorlds(), equalTo(expected.getWorlds()));
    assertThat(actual.getGameMode(), equalTo(expected.getGameMode()));
}
 
源代码14 项目: AnnihilationPro   文件: KitLoading.java
@EventHandler(priority = EventPriority.HIGHEST)
public void ClassChanger(final PlayerPortalEvent event)
{
	if(Game.isGameRunning() && event.getPlayer().getGameMode() != GameMode.CREATIVE)
	{
		AnniPlayer p = AnniPlayer.getPlayer(event.getPlayer().getUniqueId());
		if(p != null)
		{
			event.setCancelled(true);
			if(p.getTeam() != null)
			{
				final Player pl = event.getPlayer();
				pl.teleport(p.getTeam().getRandomSpawn());
				Bukkit.getScheduler().runTaskLater(AnnihilationMain.getInstance(), new Runnable(){

					@Override
					public void run()
					{
						openKitMap(pl);
					}}, 40);
			}
		}
	}
}
 
源代码15 项目: QualityArmory   文件: Grenade.java
public void removeGrenade(Player player) {
	if (player.getGameMode() != GameMode.CREATIVE) {
		int slot = -56;
		ItemStack stack = null;
		for (int i = 0; i < player.getInventory().getContents().length; i++) {
			if ((stack = player.getInventory().getItem(i)) != null && MaterialStorage.getMS(stack) == getItemData()) {
				slot = i;
				break;
			}
		}
		if (slot >= -1) {
			if (stack.getAmount() > 1) {
				stack.setAmount(stack.getAmount() - 1);
			} else {
				stack = null;
			}
			player.getInventory().setItem(slot, stack);
		}
	}
}
 
源代码16 项目: QualityArmory   文件: QualityArmory.java
public static boolean removeAmmoFromInventory(Player player, Ammo a, int amount) {
	int remaining = amount;
	if(player.getGameMode()==GameMode.CREATIVE)
		return true;
	for (int i = 0; i < player.getInventory().getSize(); i++) {
		ItemStack is = player.getInventory().getItem(i);
		if (is != null && QualityArmory.isAmmo(is)&&QualityArmory.getAmmo(is).equals(a)) {
			int temp = is.getAmount();
			if (remaining < is.getAmount()) {
				is.setAmount(is.getAmount() - remaining);
			} else {
				is.setType(Material.AIR);
			}
			remaining -= temp;
			player.getInventory().setItem(i, is);
			if (remaining <= 0)
				break;

		}
	}
	return remaining <= 0;
}
 
源代码17 项目: AnnihilationPro   文件: GameMap.java
@SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void blockPlaceCheck(BlockPlaceEvent event)
{
	if(event.getPlayer().getGameMode() != GameMode.CREATIVE)
	{
		Block b = event.getBlock();
		UnplaceableBlock block = this.unplaceableBlocks.get(b.getType());
		if(block != null)
		{
			if(block.isData((byte)-1) || block.isData(b.getData()))
				event.setCancelled(true);
		}
	}
}
 
源代码18 项目: GriefDefender   文件: CommonEntityEventHandler.java
private void checkPlayerGameMode(GDPermissionUser user, GDClaim fromClaim, GDClaim toClaim) {
    if (user == null) {
        return;
    }
    final Player player = user.getOnlinePlayer();
    if (player == null) {
        // Most likely Citizens NPC
        return;
    }
    if (!GDOptions.isOptionEnabled(Options.PLAYER_GAMEMODE)) {
        return;
    }

    final GDPlayerData playerData = user.getInternalPlayerData();
    final GameMode currentGameMode = player.getGameMode();
    final GameModeType gameModeType = GDPermissionManager.getInstance().getInternalOptionValue(TypeToken.of(GameModeType.class), playerData.getSubject(), Options.PLAYER_GAMEMODE, toClaim);
    if (gameModeType == GameModeTypes.UNDEFINED && playerData.lastGameMode != GameModeTypes.UNDEFINED) {
        player.setGameMode(PlayerUtil.GAMEMODE_MAP.get(playerData.lastGameMode));
        return;
    }

    final boolean bypassOption = playerData.userOptionBypassPlayerGamemode;
    if (!bypassOption && gameModeType != null && gameModeType != GameModeTypes.UNDEFINED) {
        final GameMode newGameMode = PlayerUtil.GAMEMODE_MAP.get(gameModeType);
        if (currentGameMode != newGameMode) {
            playerData.lastGameMode = PlayerUtil.GAMEMODE_MAP.inverse().get(gameModeType);
            player.setGameMode(newGameMode);
            final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.OPTION_APPLY_PLAYER_GAMEMODE,
                    ImmutableMap.of(
                    "gamemode", gameModeType.getName()));
            GriefDefenderPlugin.sendMessage(player, message);
        }
    }
}
 
源代码19 项目: AnnihilationPro   文件: Areas.java
@EventHandler(priority = EventPriority.LOWEST,ignoreCancelled = true)
public void checkBreaks(BlockPlaceEvent e)
{
	if(e.getPlayer().getGameMode() != GameMode.CREATIVE)
	{
		Area a = this.getArea(new Loc(e.getBlock().getLocation(),false));
		if(a != null)
		{
			e.setCancelled(true);
		}
	}
}
 
源代码20 项目: ServerTutorial   文件: CreateTutorial.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
    try {
        GameMode gm = GameMode.valueOf(input.toUpperCase());
        context.setSessionData("gamemode", gm.toString().toUpperCase());
        return new EndCommandTypeMessage();
    } catch (IllegalArgumentException e) {
        return new GamemodeMessage();
    }
}
 
源代码21 项目: Slimefun4   文件: Research.java
/**
 * Checks if the {@link Player} can unlock this {@link Research}.
 * 
 * @param p
 *            The {@link Player} to check
 * @return Whether that {@link Player} can unlock this {@link Research}
 */
public boolean canUnlock(Player p) {
    if (!isEnabled()) {
        return true;
    }

    boolean creativeResearch = p.getGameMode() == GameMode.CREATIVE && SlimefunPlugin.getRegistry().isFreeCreativeResearchingEnabled();
    return creativeResearch || p.getLevel() >= cost;
}
 
源代码22 项目: AnnihilationPro   文件: Signs.java
@EventHandler(priority = EventPriority.LOW,ignoreCancelled = true)
public void signBreakCheck(BlockBreakEvent event)
{
	if(event.getBlock() != null && event.getPlayer().getGameMode() != GameMode.CREATIVE)
	{
		if(event.getBlock().getType() == Material.WALL_SIGN || event.getBlock().getType() == Material.SIGN_POST)
		{
			MapKey key = MapKey.getKey(event.getBlock().getLocation());
			if(this.signs.containsKey(key))
				event.setCancelled(true);
		}
	}
}
 
源代码23 项目: Transport-Pipes   文件: DuctListener.java
private void decreaseHandItem(Player p, EquipmentSlot hand) {
    if (p.getGameMode() == GameMode.CREATIVE) {
        return;
    }
    ItemStack item = hand == EquipmentSlot.HAND ? p.getInventory().getItemInMainHand() : p.getInventory().getItemInOffHand();
    if (item != null) {
        if (item.getAmount() <= 1) {
            item = null;
        } else {
            item.setAmount(item.getAmount() - 1);
        }
        if (hand == EquipmentSlot.HAND) p.getInventory().setItemInMainHand(item);
        else p.getInventory().setItemInOffHand(item);
    }
}
 
源代码24 项目: Slimefun4   文件: StormStaff.java
private void useItem(Player p, ItemStack item, Location loc) {
    loc.getWorld().strikeLightning(loc);

    if (p.getInventory().getItemInMainHand().getType() == Material.SHEARS) {
        return;
    }

    if (p.getGameMode() != GameMode.CREATIVE) {
        FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 4);
        Bukkit.getPluginManager().callEvent(event);

        if (!event.isCancelled()) {
            p.setFoodLevel(event.getFoodLevel());
        }
    }

    ItemMeta meta = item.getItemMeta();
    int usesLeft = meta.getPersistentDataContainer().getOrDefault(usageKey, PersistentDataType.INTEGER, MAX_USES);

    if (usesLeft == 1) {
        p.playSound(p.getLocation(), Sound.ENTITY_ITEM_BREAK, 1, 1);
        item.setAmount(0);
    }
    else {
        usesLeft--;
        meta.getPersistentDataContainer().set(usageKey, PersistentDataType.INTEGER, usesLeft);

        List<String> lore = meta.getLore();
        lore.set(4, ChatColors.color("&e" + usesLeft + ' ' + (usesLeft > 1 ? "Uses" : "Use") + " &7left"));
        meta.setLore(lore);

        item.setItemMeta(meta);
    }
}
 
源代码25 项目: ShopChest   文件: ClickType.java
public SelectClickType(GameMode gameMode, int amount, double buyPrice, double sellPrice, ShopType shopType) {
    super(EnumClickType.SELECT_ITEM);
    this.gameMode = gameMode;
    this.amount = amount;
    this.sellPrice = sellPrice;
    this.buyPrice = buyPrice;
    this.shopType = shopType;
}
 
源代码26 项目: PerWorldInventory   文件: InventoryLoadEvent.java
public InventoryLoadEvent(Player player, DeserializeCause cause, GameMode newGameMode, Group group) {
    this.player = player;
    this.cause = cause;
    this.newGameMode = newGameMode;
    this.group = group;
    this.cancelled = false;
}
 
源代码27 项目: PGM   文件: GamemodeTool.java
private GameMode getOppositeMode(GameMode mode) {
  switch (mode) {
    case CREATIVE:
      return GameMode.SPECTATOR;
    case SPECTATOR:
      return GameMode.CREATIVE;
    default:
      return mode;
  }
}
 
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent event)
{
	Player player = event.getPlayer();
	
	if (player.getGameMode() != GameMode.CREATIVE && !this.essentialsPlugin.getUser(player).isAuthorized("essentials.fly"))
	{
		//Essentials now turns off flight, fuck him
		Boolean value = this.plugin.getWorldGuardCommunicator().getSessionManager().get(player).getHandler(FlyFlagHandler.class).getCurrentValue();
		if (value != null)
		{
			player.setAllowFlight(value);
		}
	}
}
 
源代码29 项目: ServerTutorial   文件: CreateTutorial.java
@Override
public String getPromptText(ConversationContext conversationContext) {
    String s = "&8>&7Choose a gamemode for the tutorial (it will be restored after the tutorial)\n";

    for (GameMode gm : GameMode.values()) {
        s += "&8>&6" + gm.toString().toUpperCase() + "\n";
    }

    s += "&8>&7>&6> &7Type a gamemode to continue:";
    return TutorialUtils.color(s);
}
 
源代码30 项目: MarriageMaster   文件: BackpackCommand.java
private void openBackpack(MarriagePlayer opener, MarriagePlayer partner)
{
	Player sender = opener.getPlayerOnline();
	if(sender.getGameMode() == GameMode.SURVIVAL || sender.hasPermission(Permissions.BYPASS_BACKPACK_GAME_MODE)) //TODO use minepacks settings
	{
		Player partnerPlayer = partner.getPlayerOnline();
		if(partnerPlayer == null || !partnerPlayer.isOnline())
		{
			((MarriageMaster) getMarriagePlugin()).messagePartnerOffline.send(sender);
		}
		else if(partner.isSharingBackpack())
		{
			if(getMarriagePlugin().isInRangeSquared(sender, partnerPlayer, range))
			{
				((MarriageMaster) getMarriagePlugin()).getBackpacksIntegration().openBackpack(sender, partnerPlayer, true);
				messageOpened.send(partnerPlayer);
			}
			else
			{
				((MarriageMaster) getMarriagePlugin()).messagePartnerNotInRange.send(sender);
			}
		}
		else
		{
			messageShareDenied.send(sender);
		}
	}
	else
	{
		messageOnlyInSurvival.send(sender);
	}
}
 
 类所在包
 同包方法