Registering Papers

From this section, you can learn how to create papers and use them.

Types


PaperContext

Field
Type
Description

id

string

Unique id of the paper

label

string

Label of the paper

price

number?

Price of the paper

icon

string?

Fontawesome icon to use in menus.

canPublish

function(source: number): boolean

Function that determines is player allowed to publish article from this paper.

canDelete

function(source: number): boolean

Function that determines is player allowed to delete article from this paper.

onPurchased

function(source: number)?

Function that executes when someone purchased a newspaper from this paper.

How to Register Paper?


You can register paper using API.RegisterPaper. You can find default WeazelNews paper in

no-newspaper/newspapers/sh_weazelnews.lua You can copy this file and edit variables to create a new paper or you can register paper from another resource using API. API examples can be found in no-newspaper/api/server/examples.lua

Examples


local API = exports["no-newspaper"]
local WeazelNews = API:RegisterPaper({
    id = "weazelnews",
    label = "Weazel News",
    canPublish = function(source)
        local player = ESX.GetPlayerFromId(source)
        return player and player.job.name == "weazelnews"
    end,
    canDelete = function(source)
        local player = ESX.GetPlayerFromId(source)
        return player and player.job.name == "weazelnews"
    end
})

local function PrintArticles(articles)
    for _, article in pairs(articles) do
        print(article.id)
        print(article.header)
        print(article.author)
        print(article.content)
        print(article.image)
        print(article.date)
    end
end

local function PrintAllArticles()
    local articles = WeazelNews:GetAllArticles()

    PrintArticles(articles)
end

local function PrintArticlesByDate(date)
    local articles = WeazelNews:GetArticles(date)

    PrintArticles(articles)
end

RegisterNetEvent("jail:player", function(source, months)
    local player = ESX.GetPlayerFromId(source)

    if not player then return end

    local fullname = player.get("firstname") .. " " .. player.get("lastname")

    WeazelNews:Publish({
        header = "Jail Sentence",
        author = "Bolingbroke Penitentiary",
        content = fullname .. " sentenced for " .. months .. " months in jail!"
    })
end)

Last updated