Warning: fwrite() expects parameter 1 to be resource, boolean given in /plugins/HereAuth_v1.0-Dev#229/src/HereAuth/Logger/StreamAuditLogger.php on line 58
HereAuth hasn't yet been updated for the latest API: you could either try to fix it yourself and submit a PR (probably you only need to fix changes to certain class paths), or ask the author politely! Here's the official repo: https://github.com/PEMapModder/HereAuth
* What OS are you using? * Please show your config file * Please make sure your server has write permissions to your files.
I tried on linux and windows too Config: Spoiler Code: --- # HereAuth configuration file DefaultSettings: AutoAuth: ClientSecretAuth: false IPAuth: false UUIDAuth: false Masking: Location: Enabled: false Inventory: false MultiAuth: Skin: false IP: false MultiAuthTimeout: 14 Blocking: # Move Move: # Move from one place to one place. Locomotion: true # Rotate head Rotation: true # Get hurt Damage: true # Touch other entities Attack: true # Drop items from inventory DropItem: true Touch: true # Pick a dropped item into inventory Pick: true # Eat food by long-clicking the screen Eat: true MultiSesCtrl: Enabled: true CheckIP: false BlockPasswordChat: true # Send chat/tip/popup to remind player to register/login RemindLogin: # Messages to send to players Message: Register: Please register by typing password into chat Login: Please login by typing password into chat # Type of message. # Options: chat, popup, tip, none Type: popup # Frequency interval, in seconds, of how often to send the message # Value is rounded down to 0.05 second Interval: 0.5 # Force players to register before playing ForceRegister: # If this is set to false, players have to execute /register to register. Enabled: true Reminder: "[HereAuth] Protip: type '/register' in chat to register so that other people can't impersonate you." # The place to store data Database: # The type of database to use. # Currently, only "JSON" and "MySQL" are available. # JSON: one JSON per account, plus one metadata JSON file, plus one lightweight SQLite database for storing # registering rate against IP addresses Type: JSON # Please check this if you are using JSON. JSON: # The path of the accounts data folder # If you want to specify an absolute path, use "accounts" instead. DataFolder: accounts # If this is set to "true", the file for "steve" will be located at .../s/steve.json # If this is set to "false", the file for "steve" will be located at .../steve.json EnableLeadingIndex: false # You MUST correct these if you are using MySQL MySQL: # The connection details of your database Connection: # IP address/DNS address to your MySQL database # If it is hosted on the same machine, "localhost" is also OK, but it sometimes doesn't work # (or you need to fill in the "socket" line) Address: example.com # Port of the MySQL database. It is 3306 by default. Port: 3306 # Username to the MySQL account. # Avoid using "root", in case the plugin accidentally does complete destruction to your whole database # (e.g. including other schemas) Username: root # Password to the MySQL account. # Yes, this has to be in plaintext, so make sure to keep this file secret (unless your password is blank, # which is highly discouraged). Password: "" # Schema for HereAuth in the MySQL database. # If it is not created yet, HereAuth will automatically create it. Schema: hereauth # Socket to connect to the MySQL database. # This may be required if you are using localhost on a Unix-like machine. # Otherwise, just ignore this one. Socket: "" # Prefix for table names # If your database provider only provides you with one schema, you may want to add a prefix to the table names to # avoid duplicating table names. TablePrefix: ha Commands: # The number of lines of content in each /help-alike command response, e.g. /opt # This does not include the header and footer lines (e.g. Showing /opt page of ? of ?) HelpPageSize: 8 # Options related to MultiAuth MultiAuth: # If an MFA timeout (in days) is small, it is between 0 and... SmallBound: 1 # If an MFA timeout (in days) is big, it is greater than... BigBound: 30 # Options related to audit logger AuditLogger: # Where to log in? # This is only the folder, relative to the plugin's data folder. # If you want to specify an absolute path, start the file with "/". # If you want to specify another drive (Windows), e.g. on E drive (E:), put the file name like this: # file://E:/path/to/your/directory # This can also be any **writable** URIs supported by [URL]http://php.net/wrappers[/URL] LogFolder: audit/ # What to log? # These should be file names relative to LogFolder mentioned above, or start with a / for absolute paths # Put /NUL (Windows only) if you don't want to log that entry. Log: # Log registering # Columns: time, name, IP # You usually don't need to do this, since the same data are saved in Database as well Register: /NUL # Log successful logins. Regisitering and players who didn't register (and don't need to register) are not included. # Columns: time, name, IP, login method (secret, uuid, ip, password) Login: logins.log # Log "push" incidents, where a player is kicked because he rejoined from the same device. # This usually happens when a player crashed, and this (>99.9% of the time) does not reflect two different players # joining with the same username. # Columns: time, name, old IP, new IP Push: /NUL # Log "bump" incidents, where a player cannot join because another player (from another device) of the same username # is already online on the server # This may reflect chances of account occupying, where a player cannot join because someone else is online with his # username (with or without authenticating). # Columns: time, name, old IP, new IP, old UUID, new UUID, old player's status (loading, register, login, auth, noreg) Bump: bumps.log # Log failure of logins, where wrong password is typed # Columns: time, name, IP Invalid: failure.log # Log incidents where players are kicked because they could not login within the time limited by Login.Timeout # Columns: time, name, IP Timeout: timeout.log # Log incidents where players are kicked because multi-factor authentication failed. # Columns: time, name, wrong data type (e.g. "skin", "ip"), wrong data value (e.g. name + a base64-encoded dump of # the wrong skin) Factor: factor.log # Options related to registering Registration: # Registration throttle. Limits number of registrations from an IP per time. # If ForceRegister is set to false, players who didn't register will not be counted as a registration. RateLimit: Accounts: 3 Days: 30 # Minimum password length, in UTF-8 bytes. (i.e. if you put 6 here, you have to at least type two Chinese characters, # since one Chinese character takes 3 bytes in UTF-8) MinLength: 4 # Maximum password length, in UTF-8 bytes. # Put -1 for infinity (non-modded MCPE will limit it, though) MaxLength: -1 # Enable this to disallow the password to be purely letters (26 alphabets of two cases) BanPureLetters: false # Enable this to disallow the password to be purely numbers BanPureNumbers: false # Disallow passwords starting with slashes # This may be useful for stopping players from typing their passwords with /register or /login DisallowSlashes: true # Require the player to repeat their password after typing for the first time. RequireConfirm: true # Extra information to require (mandatory) when registering # These data will be stored into the database (into the `opts` column), but HereAuth will not automatically do # anything about it. # If you want these data to be handled, e.g. if you want an email to be sent to that address, please request/make # another plugin that will handle them. The developer documentation has a tutorial for that. # The "RegExp" line is optional. If the player input does **not** match your regular expression (if any), it will be # rejected, just like how password is rejected if it is too short. # The RegExp used here is interpreted using PCRE (Perl-Compatible Regular Expression). Please be careful to comply # with YAML formats (especially with backslashes). # The "ErrorMessage" line is required if the "RegExp" line is present. It will be sent if the regular experssion is # violated. ExtraFields: # - Message: "[HereAuth] Please enter your email." # FieldName: email # RegExp: "/^[A-z0-9_\\-]+[@][A-z0-9_\\-]+([.][A-z0-9_\\-]+)+[A-z.]{2,4}$/" # ErrorMessage: This is not a valid email address! ## Delete the # on the above three lines to enable. You can also duplicate it to make another field. # Options related to login Login: # Kick the player if he can't login in this number of attempts. MaxAttempts: 5 # Number of seconds to block the player's IP address if MaxAttempts is exceeded MaxAttemptsBlock: 600 # Kick the player if he can't login in this period. Unit: seconds Timeout: 120 # Make players' appearance change if they have not been authenticated Appearance: # Make unauthenticated/logged-out players invisible # This uses the "potion effect invisibility" style of invisibility, where modded players may be able to see the player # and would be able to click on the player (but the player can be protected with the Blocking.Damage config) # but without potion effect bubbles Invisible: false # Add text before player nametag PrependNametag: "§c[" # Add text after player nametag AppendNametag: "]" ...