001package net.tnemc.plugincore.core.compatibility;
002
003/*
004 * The New Plugin Core
005 * Copyright (C) 2022 - 2024 Daniel "creatorfromhell" Vidmar
006 *
007 * This program is free software: you can redistribute it and/or modify
008 * it under the terms of the GNU Affero General Public License as published by
009 * the Free Software Foundation, either version 3 of the License, or
010 * (at your option) any later version.
011 *
012 * This program is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
015 * GNU Affero General Public License for more details.
016 *
017 * You should have received a copy of the GNU Affero General Public License
018 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
019 */
020
021/**
022 * ProxyProvider represents a Proxy method instances such as Bungee/Velocity in an implementation.
023 *
024 * @author creatorfromhell
025 * @since 0.1.2.0
026 */
027public interface ProxyProvider {
028
029  /**
030   * Used to register a plugin message channel.
031   * @param channel The channel to register.
032   */
033  void registerChannel(final String channel);
034
035  /**
036   * Used to send a message through a specific plugin message channel.
037   * @param channel The channel to send the message through.
038   * @param bytes The byte data to send.
039   */
040  void send(final String channel, final byte[] bytes);
041}