类com.google.common.io.ByteArrayDataInput源码实例Demo

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

源代码1 项目: TAB   文件: PluginMessenger.java
public void onPluginMessageReceived(String channel, Player player, byte[] bytes){
	if (!channel.equalsIgnoreCase(Shared.CHANNEL_NAME)) return;
	ByteArrayDataInput in = ByteStreams.newDataInput(bytes);
	String subChannel = in.readUTF();
	if (subChannel.equalsIgnoreCase("Placeholder")){
		String placeholder = in.readUTF();
		long start = System.nanoTime();
		String output = PluginHooks.PlaceholderAPI_setPlaceholders(player, placeholder);
		long time = System.nanoTime() - start;

		ByteArrayDataOutput out = ByteStreams.newDataOutput();
		out.writeUTF("Placeholder");
		out.writeUTF(placeholder);
		out.writeUTF(output);
		out.writeLong(time);
		player.sendPluginMessage(plugin, Shared.CHANNEL_NAME, out.toByteArray());
	}
}
 
源代码2 项目: bartworks   文件: RendererPacket.java
@Override
public GT_Packet decode(ByteArrayDataInput dataInput) {

    byte[] buffer = new byte[19];
    dataInput.readFully(buffer);

    this.coords = new Coords(ByteBuffer.wrap(buffer).getInt(0), ByteBuffer.wrap(buffer).getShort(4), ByteBuffer.wrap(buffer).getInt(6), ByteBuffer.wrap(buffer).getInt(10));
    int[] rgb = {ByteBuffer.wrap(buffer).get(14) - Byte.MIN_VALUE, ByteBuffer.wrap(buffer).get(15) - Byte.MIN_VALUE, ByteBuffer.wrap(buffer).get(16) - Byte.MIN_VALUE};
    this.integer = BW_ColorUtil.getColorFromRGBArray(rgb);
    this.removal = ByteBuffer.wrap(buffer).get(17);

    byte checksum = (byte) (this.coords.x % 25 + this.coords.y % 25 + this.coords.z % 25 + this.coords.wID % 25 + this.integer % 25 + this.removal);

    if (checksum != ByteBuffer.wrap(buffer).get(18)) {
        MainMod.LOGGER.error("BW Packet was corrupted or modified!");
        return null;
    }

    return new RendererPacket(this.coords, this.integer, this.removal == 1);
}
 
源代码3 项目: bartworks   文件: MetaBlockPacket.java
@Override
public GT_Packet decode(ByteArrayDataInput byteArrayDataInput) {
    byte[] tmp = new byte[16];
    byteArrayDataInput.readFully(tmp);
    ByteBuffer buff = ByteBuffer.wrap(tmp);
    this.x = buff.getInt();
    this.z = buff.getInt();
    this.y = buff.getShort();
    this.meta = buff.getShort();
    MetaBlockPacket todecode = new MetaBlockPacket(this.x, this.y, this.z, this.meta);
    if (buff.getInt() != MurmurHash3.murmurhash3_x86_32(ByteBuffer.allocate(12).putInt(this.x).putInt(this.z).putShort(this.y).putShort(this.meta).array(), 0, 12, 31)) {
        MainMod.LOGGER.error("PACKET HASH DOES NOT MATCH!");
        return null;
    }
    return todecode;
}
 
源代码4 项目: helper   文件: SettingMapFactory.java
/**
 * Decodes the given byte array to a {@link SettingMap}.
 *
 * <p>Operates on the reverse of {@link SettingMap#encode()}.</p>
 *
 * @param buf the byte array
 * @return the decoded map
 */
public SettingMap<S, V> decode(byte[] buf) {
    if (buf.length == 0) {
        return newMap();
    }

    ByteArrayDataInput in = ByteStreams.newDataInput(buf);
    int n = Byte.toUnsignedInt(in.readByte());

    byte[] states = Arrays.copyOf(this.defaultStates, this.defaultStates.length);

    for (int i = 0; i < n; i++) {
        int settingOrdinal = Byte.toUnsignedInt(in.readByte());
        byte stateByte = in.readByte();

        states[settingOrdinal] = stateByte;
    }

    return new SettingMap<>(this, states);
}
 
源代码5 项目: Parties   文件: PartiesPacket.java
public static PartiesPacket read(ADPPlugin plugin, byte[] bytes) {
	PartiesPacket ret = null;
	try {
		ByteArrayDataInput input = ByteStreams.newDataInput(bytes);
		String foundVersion = input.readUTF();
		
		if (foundVersion.equals(plugin.getVersion())) {
			PartiesPacket packet = new PartiesPacket(foundVersion);
			packet.type = PacketType.valueOf(input.readUTF());
			packet.partyName = input.readUTF();
			packet.playerUuid = UUID.fromString(input.readUTF());
			packet.payload = input.readUTF();
			ret = packet;
		} else {
			plugin.getLoggerManager().printError(Constants.DEBUG_LOG_MESSAGING_FAILED_VERSION
					.replace("{current}", plugin.getVersion())
					.replace("{version}", foundVersion));
		}
	} catch (Exception ex) {
		plugin.getLoggerManager().printError(Constants.DEBUG_LOG_MESSAGING_FAILED_READ
				.replace("{message}", ex.getMessage()));
	}
	return ret;
}
 
源代码6 项目: LuckPerms   文件: PluginMessageMessenger.java
@Subscribe
public void onPluginMessage(PluginMessageEvent e) {
    // compare the underlying text representation of the channel
    // the namespaced representation is used by legacy servers too, so we
    // are able to support both. :)
    if (!e.getIdentifier().getId().equals(CHANNEL.getId())) {
        return;
    }

    e.setResult(ForwardResult.handled());

    if (e.getSource() instanceof Player) {
        return;
    }

    ByteArrayDataInput in = e.dataAsDataStream();
    String msg = in.readUTF();

    if (this.consumer.consumeIncomingMessageAsString(msg)) {
        // Forward to other servers
        this.plugin.getBootstrap().getScheduler().executeAsync(() -> dispatchMessage(e.getData()));
    }
}
 
源代码7 项目: stratio-cassandra   文件: MerkleTreeTest.java
@Test
public void testSerialization() throws Exception
{
    Range<Token> full = new Range<>(tok(-1), tok(-1));

    // populate and validate the tree
    mt.maxsize(256);
    mt.init();
    for (TreeRange range : mt.invalids())
        range.addAll(new HIterator(range.right));

    byte[] initialhash = mt.hash(full);

    DataOutputBuffer out = new DataOutputBuffer();
    MerkleTree.serializer.serialize(mt, out, MessagingService.current_version);
    byte[] serialized = out.toByteArray();

    ByteArrayDataInput in = ByteStreams.newDataInput(serialized);
    MerkleTree restored = MerkleTree.serializer.deserialize(in, MessagingService.current_version);

    assertHashEquals(initialhash, restored.hash(full));
}
 
源代码8 项目: ScoreboardStats   文件: BungeeCordVariables.java
@Override
public void onPluginMessageReceived(String channel, Player player, byte[] message) {
    if (!channel.equals(BUNGEE_CHANNEL)) {
        return;
    }

    ByteArrayDataInput in = ByteStreams.newDataInput(message);
    String subChannel = in.readUTF();
    if ("PlayerCount".equals(subChannel)) {
        try {
            String server = in.readUTF();
            int count = in.readInt();

            if ("ALL".equals(server)) {
                onlinePlayers = count;
            }
        } catch (Exception eofException) {
            //happens if bungeecord doesn't know the server
            //ignore the admin should be notified by seeing the -1
        }
    }
}
 
@EventHandler
public void pluginMessageReceived(PluginMessageEvent event) {
    if(!plugin.isEnabled() || !event.getTag().equals("rp:plugin") || !(event.getSender() instanceof Server))
        return;

    ByteArrayDataInput in = ByteStreams.newDataInput(event.getData());
    String subchannel = in.readUTF();
    if("authMeLogin".equals(subchannel)) {
        String playerName = in.readUTF();
        UUID playerId = UUID.fromString(in.readUTF());

        plugin.setAuthenticated(playerId, true);
        if(!plugin.hasBackend(playerId) && plugin.getConfig().getBoolean("useauth", false)) {
            ProxiedPlayer player = plugin.getProxy().getPlayer(playerId);
            if(player != null) {
                String serverName = "";
                if(player.getServer() != null) {
                    serverName = player.getServer().getInfo().getName();
                }
                plugin.getPackManager().applyPack(playerId, serverName);
            }
        }
    }
}
 
源代码10 项目: AuthMeReloaded   文件: BungeeReceiver.java
@Override
public void onPluginMessageReceived(final String channel, final Player player, final byte[] data) {
    if (!isEnabled) {
        return;
    }

    final ByteArrayDataInput in = ByteStreams.newDataInput(data);

    // Check subchannel
    final String subChannel = in.readUTF();
    if ("AuthMe.v2.Broadcast".equals(subChannel)) {
        handleBroadcast(in);
    } else if ("AuthMe.v2".equals(subChannel)) {
        handle(in);
    }
}
 
源代码11 项目: rya   文件: StatementPatternStorage.java
@Override
public Tuple getNext() throws IOException {
    try {
        if (reader.nextKeyValue()) {
            Key key = reader.getCurrentKey();
            org.apache.accumulo.core.data.Value value = reader.getCurrentValue();
            ByteArrayDataInput input = ByteStreams.newDataInput(key.getRow().getBytes());
            RyaStatement ryaStatement = ryaContext.deserializeTriple(layout, new TripleRow(key.getRow().getBytes(),
                    key.getColumnFamily().getBytes(), key.getColumnQualifier().getBytes()));

            Tuple tuple = TupleFactory.getInstance().newTuple(7);
            tuple.set(0, ryaStatement.getSubject().getData());
            tuple.set(1, ryaStatement.getPredicate().getData());
            tuple.set(2, ryaStatement.getObject().getData());
            tuple.set(3, (ryaStatement.getContext() != null) ? (ryaStatement.getContext().getData()) : (null));
            tuple.set(4, ryaStatement.getSubject().getDataType());
            tuple.set(5, ryaStatement.getPredicate().getDataType());
            tuple.set(6, ryaStatement.getObject().getDataType());
            return tuple;
        }
    } catch (Exception e) {
        throw new IOException(e);
    }
    return null;
}
 
源代码12 项目: ChangeSkin   文件: PluginMessageListener.java
@EventHandler
public void onPluginMessage(PluginMessageEvent messageEvent) {
    String channel = messageEvent.getTag();
    if (messageEvent.isCancelled() || !channel.startsWith(plugin.getName().toLowerCase())) {
        return;
    }

    ByteArrayDataInput dataInput = ByteStreams.newDataInput(messageEvent.getData());

    ProxiedPlayer invoker = (ProxiedPlayer) messageEvent.getReceiver();
    if (channel.equals(permissionResultChannel)) {
        PermResultMessage message = new PermResultMessage();
        message.readFrom(dataInput);
        if (message.isAllowed()) {
            onPermissionSuccess(message, invoker);
        } else {
            plugin.sendMessage(invoker, "no-permission");
        }
    } else if (channel.equals(forwardCommandChannel)) {
        onCommandForward(invoker, dataInput);
    }
}
 
源代码13 项目: ChangeSkin   文件: PluginMessageListener.java
private void onCommandForward(CommandSender invoker, ByteArrayDataInput dataInput) {
    ForwardMessage message = new ForwardMessage();
    message.readFrom(dataInput);

    if (message.isOP() && message.isSource()) {
        //bukkit op and it won't run as bungee console
        invoker.addGroups(plugin.getName() + "-OP");
    }

    String line = message.getCommandName() + ' ' + message.getArgs();
    if (message.isSource()) {
        //the player is the actual invoker other it's the console
        ProxyServer.getInstance().getPluginManager().dispatchCommand(invoker, line);
    } else {
        CommandSender console = ProxyServer.getInstance().getConsole();
        ProxyServer.getInstance().getPluginManager().dispatchCommand(console, line);
    }
}
 
源代码14 项目: TAB   文件: PluginMessenger.java
@EventHandler
public void on(PluginMessageEvent event){
	if (!event.getTag().equalsIgnoreCase(Shared.CHANNEL_NAME)) return;
	ByteArrayDataInput in = ByteStreams.newDataInput(event.getData());
	String subChannel = in.readUTF();
	if (event.getReceiver() instanceof ProxiedPlayer && subChannel.equalsIgnoreCase("Placeholder")){
		event.setCancelled(true);
		ITabPlayer receiver = Shared.getPlayer(((ProxiedPlayer) event.getReceiver()).getUniqueId());
		if (receiver == null) return;
		String placeholder = in.readUTF();
		String output = in.readUTF();
		long cpu = in.readLong();
		PlayerPlaceholder pl = (PlayerPlaceholder) Placeholders.getPlaceholder(placeholder); //all bridge placeholders are marked as player
		if (pl != null) {
			pl.lastValue.put(receiver.getName(), output);
			pl.lastValue.put("null", output);
			Set<Refreshable> update = PlaceholderManager.getPlaceholderUsage(pl.getIdentifier());
			Shared.featureCpu.runTask("refreshing", new Runnable() {

				@Override
				public void run() {
					for (Refreshable r : update) {
						long startTime = System.nanoTime();
						r.refresh(receiver, false);
						Shared.featureCpu.addTime(r.getRefreshCPU(), System.nanoTime()-startTime);
					}
				}
			});
			Shared.bukkitBridgePlaceholderCpu.addTime(pl.getIdentifier(), cpu);
		} else {
			Shared.debug("Received output for unknown placeholder " + placeholder);
		}
	}
}
 
源代码15 项目: TAB   文件: PluginMessenger.java
@Subscribe
public void on(PluginMessageEvent event){
	if (!event.getIdentifier().getId().equalsIgnoreCase(Shared.CHANNEL_NAME)) return;
	ByteArrayDataInput in = ByteStreams.newDataInput(event.getData());
	String subChannel = in.readUTF();
	if (event.getTarget() instanceof Player && subChannel.equalsIgnoreCase("Placeholder")){
		event.setResult(ForwardResult.handled());
		ITabPlayer receiver = Shared.getPlayer(((Player) event.getTarget()).getUniqueId());
		if (receiver == null) return;
		String placeholder = in.readUTF();
		String output = in.readUTF();
		long cpu = in.readLong();
		PlayerPlaceholder pl = (PlayerPlaceholder) Placeholders.getPlaceholder(placeholder); //all bridge placeholders are marked as player
		if (pl != null) {
			pl.lastValue.put(receiver.getName(), output);
			pl.lastValue.put("null", output);
			Set<Refreshable> update = PlaceholderManager.getPlaceholderUsage(pl.getIdentifier());
			Shared.featureCpu.runTask("refreshing", new Runnable() {

				@Override
				public void run() {
					for (Refreshable r : update) {
						long startTime = System.nanoTime();
						r.refresh(receiver, false);
						Shared.featureCpu.addTime(r.getRefreshCPU(), System.nanoTime()-startTime);
					}
				}
			});
			Shared.bukkitBridgePlaceholderCpu.addTime(pl.getIdentifier(), cpu);
		} else {
			Shared.debug("Received output for unknown placeholder " + placeholder);
		}
	}
}
 
源代码16 项目: ExtraCells1   文件: PacketTerminalFluid.java
@Override
public void read(ByteArrayDataInput in) throws ProtocolException
{
	type = in.readByte();
	world = DimensionManager.getWorld(in.readInt());
	x = in.readInt();
	y = in.readInt();
	z = in.readInt();
	fluidID = in.readInt();
	amount = in.readInt();
}
 
源代码17 项目: CloudNet   文件: ProxiedListener.java
@EventHandler
public void handleChannel(PluginMessageEvent pluginMessageEvent) {
    if (!(pluginMessageEvent.getReceiver() instanceof ProxiedPlayer)) {
        return;
    }
    if (pluginMessageEvent.getTag().equalsIgnoreCase("cloudnet:main")) {
        ByteArrayDataInput byteArrayDataInput = ByteStreams.newDataInput(pluginMessageEvent.getData());
        switch (byteArrayDataInput.readUTF().toLowerCase()) {
            case "connect":
                List<String> servers = CloudProxy.getInstance().getServers(byteArrayDataInput.readUTF());
                if (servers.size() == 0) {
                    return;
                }
                ((ProxiedPlayer) pluginMessageEvent.getReceiver()).connect(ProxyServer.getInstance()
                                                                                      .getServerInfo(servers.get(NetworkUtils.RANDOM.nextInt(
                                                                                          servers.size()))));
                break;
            case "fallback":
                ((ProxiedPlayer) pluginMessageEvent.getReceiver()).connect(ProxyServer.getInstance()
                                                                                      .getServerInfo(CloudProxy.getInstance()
                                                                                                               .fallback(((ProxiedPlayer) pluginMessageEvent
                                                                                                                   .getReceiver()))));
                break;
            case "command":
                ProxyServer.getInstance().getPluginManager().dispatchCommand(((ProxiedPlayer) pluginMessageEvent.getReceiver()),
                                                                             byteArrayDataInput.readUTF());
                break;
        }
    }
}
 
源代码18 项目: ExtraCells1   文件: PacketLevelEmitterFluid.java
@Override
public void read(ByteArrayDataInput in) throws ProtocolException
{
	world = DimensionManager.getWorld(in.readInt());
	x = in.readInt();
	y = in.readInt();
	z = in.readInt();
	filterAmount = in.readLong();
	type = in.readInt();
}
 
源代码19 项目: helper   文件: BungeeCordImpl.java
@Override
public boolean acceptResponse(Player receiver, ByteArrayDataInput in) {
    String ip = in.readUTF();
    int port = in.readInt();
    this.callback.supply(Maps.immutableEntry(ip, port));
    return true;
}
 
源代码20 项目: helper   文件: BungeeCordImpl.java
@Override
public boolean acceptResponse(Player receiver, ByteArrayDataInput in) {
    in.readUTF();
    int count = in.readInt();
    this.callback.supply(count);
    return true;
}
 
源代码21 项目: helper   文件: BungeeCordImpl.java
@Override
public boolean acceptResponse(Player receiver, ByteArrayDataInput in) {
    in.readUTF();
    String csv = in.readUTF();

    if (csv.isEmpty()) {
        this.callback.supply(ImmutableList.of());
        return true;
    }

    this.callback.supply(ImmutableList.copyOf(Splitter.on(", ").splitToList(csv)));
    return true;
}
 
源代码22 项目: helper   文件: BungeeCordImpl.java
@Override
public boolean acceptResponse(Player receiver, ByteArrayDataInput in) {
    String csv = in.readUTF();

    if (csv.isEmpty()) {
        this.callback.supply(ImmutableList.of());
        return true;
    }

    this.callback.supply(ImmutableList.copyOf(Splitter.on(", ").splitToList(csv)));
    return true;
}
 
源代码23 项目: helper   文件: BungeeCordImpl.java
@Override
public boolean acceptResponse(Player receiver, ByteArrayDataInput in) {
    in.readUTF();
    String uuid = in.readUTF();
    this.callback.supply(UUID.fromString(uuid));
    return true;
}
 
源代码24 项目: helper   文件: BungeeCordImpl.java
@Override
public boolean acceptResponse(Player receiver, ByteArrayDataInput in) {
    in.readUTF();
    String ip = in.readUTF();
    int port = in.readInt();
    this.callback.supply(Maps.immutableEntry(ip, port));
    return true;
}
 
源代码25 项目: helper   文件: BungeeCordImpl.java
@Override
public boolean acceptResponse(Player receiver, ByteArrayDataInput in) {
    short len = in.readShort();
    byte[] data = new byte[len];
    in.readFully(data);

    return this.callback.test(data);
}
 
源代码26 项目: adventure   文件: ReadWriteTest.java
@SuppressWarnings("UnstableApiUsage")
private <T extends BinaryTag> T writeRead(final T a, final BinaryTagType<T> type) throws IOException {
  final ByteArrayDataOutput output = ByteStreams.newDataOutput();
  type.write(a, output);
  final ByteArrayDataInput input = ByteStreams.newDataInput(output.toByteArray());
  return type.read(input);
}
 
源代码27 项目: NickNamer   文件: NickNamerPlugin.java
@Override
public void onPluginMessageReceived(String s, Player player, byte[] bytes) {
	if (!bungeecord) { return; }
	if (channelIdentifier.equals(s)) {
		ByteArrayDataInput in = ByteStreams.newDataInput(bytes);
		String sub = in.readUTF();
		UUID who = UUID.fromString(in.readUTF());
		if ("name".equals(sub)) {
			String name = in.readUTF();

			if (name == null || "reset".equals(name)) {
				getAPI().removeNick(who);
			} else {
				getAPI().setNick(who, name);
			}
		} else if ("skin".equals(sub)) {
			String skin = in.readUTF();

			if (skin == null || "reset".equals(skin)) {
				getAPI().removeSkin(who);
			} else {
				getAPI().setSkin(who, skin);
			}
		} else if ("data".equals(sub)) {
			try {
				String owner = in.readUTF();
				JsonObject data = new JsonParser().parse(in.readUTF()).getAsJsonObject();
				SkinLoaderBridge.getSkinProvider().put(owner, new GameProfileWrapper(data).toJson());
			} catch (JsonParseException e) {
				e.printStackTrace();
			}
		} else {
			getLogger().warning("Unknown incoming plugin message: " + sub);
		}
	}
}
 
源代码28 项目: LuckPerms   文件: PluginMessageMessenger.java
@Override
public void onPluginMessageReceived(String s, @NonNull Player player, @NonNull byte[] bytes) {
    if (!s.equals(CHANNEL)) {
        return;
    }

    ByteArrayDataInput in = ByteStreams.newDataInput(bytes);
    String msg = in.readUTF();

    this.consumer.consumeIncomingMessageAsString(msg);
}
 
源代码29 项目: turbine   文件: ConstantPoolReader.java
/** Reads the CONSTANT_Class_info at the given index. */
public String classInfo(int index) {
  ByteArrayDataInput reader = byteReader.seek(constantPool[index - 1]);
  byte tag = reader.readByte();
  if (tag != CONSTANT_CLASS) {
    throw new AssertionError(String.format("bad tag: %x", tag));
  }
  int nameIndex = reader.readUnsignedShort();
  return utf8(nameIndex);
}
 
源代码30 项目: AuthMeReloaded   文件: BungeeReceiver.java
/**
 * Processes the given data input and attempts to translate it to a message for the "AuthMe.v2.Broadcast" channel.
 *
 * @param in the input to handle
 */
private void handleBroadcast(final ByteArrayDataInput in) {
    // Read data byte array
    final short dataLength = in.readShort();
    final byte[] dataBytes = new byte[dataLength];
    in.readFully(dataBytes);
    final ByteArrayDataInput dataIn = ByteStreams.newDataInput(dataBytes);

    // Parse type
    final String typeId = dataIn.readUTF();
    final Optional<MessageType> type = MessageType.fromId(typeId);
    if (!type.isPresent()) {
        logger.debug("Received unsupported forwarded bungeecord message type! ({0})", typeId);
        return;
    }

    // Parse argument
    final String argument;
    try {
        argument = dataIn.readUTF();
    } catch (IllegalStateException e) {
        logger.warning("Received invalid forwarded plugin message of type " + type.get().name()
            + ": argument is missing!");
        return;
    }

    // Handle type
    switch (type.get()) {
        case UNREGISTER:
            dataSource.invalidateCache(argument);
            break;
        case REFRESH_PASSWORD:
        case REFRESH_QUITLOC:
        case REFRESH_EMAIL:
        case REFRESH:
            dataSource.refreshCache(argument);
            break;
        default:
    }
}